Using copywinwin10 as an example that is dependent upon emitting a lot of relocations (2 per operation), we see improvements of: c2d/gm45: 618000.0/sec to 623000.0/sec. i3-330m: 748000.0/sec to 789000.0/sec. (measured relative to a baseline with neither optimisations applied).
Showing the changes to include/uapi (1 of 3 files). Show all
Unified · Split
| @@ -309,6 +309,7 @@ typedef struct drm_i915_irq_wait { · 308 unmodified lines | |||
| 309 | #define I915_PARAM_HAS_SECURE_BATCHES 23 | 309 | #define I915_PARAM_HAS_SECURE_BATCHES 23 |
| 310 | #define I915_PARAM_HAS_PINNED_BATCHES 24 | 310 | #define I915_PARAM_HAS_PINNED_BATCHES 24 |
| 311 | #define I915_PARAM_HAS_EXEC_NO_RELOC 25 | 311 | #define I915_PARAM_HAS_EXEC_NO_RELOC 25 |
| 312 | #define I915_PARAM_HAS_EXEC_HANDLE_LUT 26 | ||
| 312 | 313 | ||
| 313 | typedef struct drm_i915_getparam { | 314 | typedef struct drm_i915_getparam { |
| 314 | int param; | 315 | int param; |
| @@ -699,7 +700,12 @@ struct drm_i915_gem_execbuffer2 { · 384 unmodified lines | |||
| 699 | */ | 700 | */ |
| 700 | #define I915_EXEC_NO_RELOC (1<<11) | 701 | #define I915_EXEC_NO_RELOC (1<<11) |
| 701 | 702 | ||
| 702 | #define __I915_EXEC_UNKNOWN_FLAGS -(I915_EXEC_NO_RELOC<<1) | 703 | /** Use the reloc.handle as an index into the exec object array rather |
| 704 | * than as the per-file handle. | ||
| 705 | */ | ||
| 706 | #define I915_EXEC_HANDLE_LUT (1<<12) | ||
| 707 | |||
| 708 | #define __I915_EXEC_UNKNOWN_FLAGS -(I915_EXEC_HANDLE_LUT<<1) | ||
| 703 | 709 | ||
| 704 | #define I915_EXEC_CONTEXT_ID_MASK (0xffffffff) | 710 | #define I915_EXEC_CONTEXT_ID_MASK (0xffffffff) |
| 705 | #define i915_execbuffer2_set_context_id(eb2, context) \ | 711 | #define i915_execbuffer2_set_context_id(eb2, context) \ |