aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_ringbuffer.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2010-09-24 16:15:47 -0400
committerChris Wilson <chris@chris-wilson.co.uk>2010-10-29 06:15:07 -0400
commita00b10c360b35d6431a94cbf130a4e162870d661 (patch)
treee1c06b90d161bc81e8d2c819da3b676f75527dda /drivers/gpu/drm/i915/intel_ringbuffer.c
parent7465378fd7c681f6cf2b74b3494c4f0991d8c8ac (diff)
drm/i915: Only enforce fence limits inside the GTT.
So long as we adhere to the fence registers rules for alignment and no overlaps (including with unfenced accesses to linear memory) and account for the tiled access in our size allocation, we do not have to allocate the full fenced region for the object. This allows us to fight the bloat tiling imposed on pre-i965 chipsets and frees up RAM for real use. [Inside the GTT we still suffer the additional alignment constraints, so it doesn't magic allow us to render larger scenes without stalls -- we need the expanded GTT and fence pipelining to overcome those...] Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_ringbuffer.c')
-rw-r--r--drivers/gpu/drm/i915/intel_ringbuffer.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
index e88214ef24b1..632a98e0ba5c 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -547,7 +547,7 @@ static int init_status_page(struct intel_ring_buffer *ring)
547 obj_priv = to_intel_bo(obj); 547 obj_priv = to_intel_bo(obj);
548 obj_priv->agp_type = AGP_USER_CACHED_MEMORY; 548 obj_priv->agp_type = AGP_USER_CACHED_MEMORY;
549 549
550 ret = i915_gem_object_pin(obj, 4096, true); 550 ret = i915_gem_object_pin(obj, 4096, true, false);
551 if (ret != 0) { 551 if (ret != 0) {
552 goto err_unref; 552 goto err_unref;
553 } 553 }
@@ -603,7 +603,7 @@ int intel_init_ring_buffer(struct drm_device *dev,
603 603
604 ring->gem_object = obj; 604 ring->gem_object = obj;
605 605
606 ret = i915_gem_object_pin(obj, PAGE_SIZE, true); 606 ret = i915_gem_object_pin(obj, PAGE_SIZE, true, false);
607 if (ret) 607 if (ret)
608 goto err_unref; 608 goto err_unref;
609 609