[Intel-gfx] [PATCH] drm/i915: Relax the need-mappable? flag for execbuffers
Chris Wilson
chris at chris-wilson.co.uk
Sun Mar 25 18:56:09 CEST 2012
Since we now can rewrite relocation pointers using the CPU domain, for
those cases we do not need to force a mappable GTT allocation.
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
---
drivers/gpu/drm/i915/i915_gem_execbuffer.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
index 0a7b509..286c0e1 100644
--- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c
+++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
@@ -490,7 +490,7 @@ pin_and_fence_object(struct drm_i915_gem_object *obj,
entry->flags & EXEC_OBJECT_NEEDS_FENCE &&
obj->tiling_mode != I915_TILING_NONE;
need_mappable =
- entry->relocation_count ? true : need_fence;
+ need_fence ?: entry->relocation_count && obj->base.write_domain != I915_GEM_DOMAIN_CPU;
ret = i915_gem_object_pin(obj, entry->alignment, need_mappable, false);
if (ret)
@@ -548,7 +548,7 @@ i915_gem_execbuffer_reserve(struct intel_ring_buffer *ring,
entry->flags & EXEC_OBJECT_NEEDS_FENCE &&
obj->tiling_mode != I915_TILING_NONE;
need_mappable =
- entry->relocation_count ? true : need_fence;
+ need_fence ?: entry->relocation_count && obj->base.write_domain != I915_GEM_DOMAIN_CPU;
if (need_mappable)
list_move(&obj->exec_list, &ordered_objects);
@@ -589,7 +589,7 @@ i915_gem_execbuffer_reserve(struct intel_ring_buffer *ring,
entry->flags & EXEC_OBJECT_NEEDS_FENCE &&
obj->tiling_mode != I915_TILING_NONE;
need_mappable =
- entry->relocation_count ? true : need_fence;
+ need_fence ?: entry->relocation_count && obj->base.write_domain != I915_GEM_DOMAIN_CPU;
if ((entry->alignment && obj->gtt_offset & (entry->alignment - 1)) ||
(need_mappable && !obj->map_and_fenceable))
--
1.7.9.1
More information about the Intel-gfx
mailing list