diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2013-01-08 05:53:17 -0500 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2013-01-17 16:23:47 -0500 |
commit | eef90ccb8a4d50b219a95cc53878ebb007315b32 (patch) | |
tree | e10ef8121e9b6f0c061df75967c7af77a942feb3 /include/uapi | |
parent | ed5982e6ce5f106abcbf071f80730db344a6da42 (diff) |
drm/i915: Use the reloc.handle as an index into the execbuffer array
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).
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'include/uapi')
-rw-r--r-- | include/uapi/drm/i915_drm.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/include/uapi/drm/i915_drm.h b/include/uapi/drm/i915_drm.h index 2430b6ad6a85..07d59419fe6b 100644 --- a/include/uapi/drm/i915_drm.h +++ b/include/uapi/drm/i915_drm.h | |||
@@ -309,6 +309,7 @@ typedef struct drm_i915_irq_wait { | |||
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 { | |||
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) \ |