diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2010-09-18 06:02:01 -0400 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2010-09-21 06:19:51 -0400 |
commit | 9220434a8768902cd9cf248709972678b74aa8c1 (patch) | |
tree | ebc291c2d703daf601f4b56ebe79c6e8a53d04e5 /drivers/gpu/drm/i915/intel_ringbuffer.c | |
parent | b84d5f0c22914d37d709add54c66e741c404fa56 (diff) |
drm/i915: Only emit a flush request on the active ring.
When flushing the GPU domains,we emit a flush on *both* rings, even
though they share a unified cache. Only emit the flush on the currently
active ring.
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.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c index 670f94af6b07..45f66e289af1 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.c +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c | |||
@@ -116,8 +116,6 @@ render_ring_flush(struct drm_device *dev, | |||
116 | intel_ring_emit(dev, ring, MI_NOOP); | 116 | intel_ring_emit(dev, ring, MI_NOOP); |
117 | intel_ring_advance(dev, ring); | 117 | intel_ring_advance(dev, ring); |
118 | } | 118 | } |
119 | |||
120 | i915_gem_process_flushing_list(dev, flush_domains, ring); | ||
121 | } | 119 | } |
122 | 120 | ||
123 | static unsigned int render_ring_get_head(struct drm_device *dev, | 121 | static unsigned int render_ring_get_head(struct drm_device *dev, |
@@ -386,8 +384,6 @@ bsd_ring_flush(struct drm_device *dev, | |||
386 | intel_ring_emit(dev, ring, MI_FLUSH); | 384 | intel_ring_emit(dev, ring, MI_FLUSH); |
387 | intel_ring_emit(dev, ring, MI_NOOP); | 385 | intel_ring_emit(dev, ring, MI_NOOP); |
388 | intel_ring_advance(dev, ring); | 386 | intel_ring_advance(dev, ring); |
389 | |||
390 | i915_gem_process_flushing_list(dev, flush_domains, ring); | ||
391 | } | 387 | } |
392 | 388 | ||
393 | static inline unsigned int bsd_ring_get_head(struct drm_device *dev, | 389 | static inline unsigned int bsd_ring_get_head(struct drm_device *dev, |
@@ -799,6 +795,7 @@ void intel_fill_struct(struct drm_device *dev, | |||
799 | 795 | ||
800 | struct intel_ring_buffer render_ring = { | 796 | struct intel_ring_buffer render_ring = { |
801 | .name = "render ring", | 797 | .name = "render ring", |
798 | .id = RING_RENDER, | ||
802 | .regs = { | 799 | .regs = { |
803 | .ctl = PRB0_CTL, | 800 | .ctl = PRB0_CTL, |
804 | .head = PRB0_HEAD, | 801 | .head = PRB0_HEAD, |
@@ -836,6 +833,7 @@ struct intel_ring_buffer render_ring = { | |||
836 | 833 | ||
837 | struct intel_ring_buffer bsd_ring = { | 834 | struct intel_ring_buffer bsd_ring = { |
838 | .name = "bsd ring", | 835 | .name = "bsd ring", |
836 | .id = RING_BSD, | ||
839 | .regs = { | 837 | .regs = { |
840 | .ctl = BSD_RING_CTL, | 838 | .ctl = BSD_RING_CTL, |
841 | .head = BSD_RING_HEAD, | 839 | .head = BSD_RING_HEAD, |