aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_ringbuffer.c
diff options
context:
space:
mode:
authorZou Nan hai <nanhai.zou@intel.com>2010-06-25 01:40:24 -0400
committerEric Anholt <eric@anholt.net>2010-08-09 14:28:03 -0400
commit1cafd34731cd14e5a72edaf0f41717c8126cfce9 (patch)
tree1219b47cb285aeae7cbbf1baa7bdd7918b9c4fde /drivers/gpu/drm/i915/intel_ringbuffer.c
parente78d73b16bcde921c9cf458d2e4de8e4fc2518f3 (diff)
drm/i915 invalidate indirect state pointers at end of ring exec
This is required by the spec, and without this some 3D programs will hang after resume from RC6 we enable that. Signed-off-by: Zou Nan hai <nanhai.zou@intel.com> Signed-off-by: Eric Anholt <eric@anholt.net>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_ringbuffer.c')
-rw-r--r--drivers/gpu/drm/i915/intel_ringbuffer.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
index 7823b9648176..51e9c9e718c4 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -535,7 +535,16 @@ render_ring_dispatch_gem_execbuffer(struct drm_device *dev,
535 intel_ring_advance(dev, ring); 535 intel_ring_advance(dev, ring);
536 } 536 }
537 537
538 if (IS_G4X(dev) || IS_IRONLAKE(dev)) {
539 intel_ring_begin(dev, ring, 2);
540 intel_ring_emit(dev, ring, MI_FLUSH |
541 MI_NO_WRITE_FLUSH |
542 MI_INVALIDATE_ISP );
543 intel_ring_emit(dev, ring, MI_NOOP);
544 intel_ring_advance(dev, ring);
545 }
538 /* XXX breadcrumb */ 546 /* XXX breadcrumb */
547
539 return 0; 548 return 0;
540} 549}
541 550