summaryrefslogtreecommitdiff
path: root/src/i915_render.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2010-06-08 10:43:24 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2010-06-08 15:00:16 +0100
commit0776a42b70f2de7b7d7d8804046c79442da1cb8a (patch)
treecfc4d3eaf6367b56217b945680f3633bb3fcf936 /src/i915_render.c
parentd41684d54592cf93554a4d6534e7ea74562b1798 (diff)
implicit-flush
Diffstat (limited to 'src/i915_render.c')
-rw-r--r--src/i915_render.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/i915_render.c b/src/i915_render.c
index c71a7c8f..b2bc7a76 100644
--- a/src/i915_render.c
+++ b/src/i915_render.c
@@ -832,8 +832,11 @@ i915_prepare_composite(int op, PicturePtr source_picture,
intel->i915_render_state.op = op;
- if((source && i830_uxa_pixmap_is_dirty(source)) ||
- (mask && i830_uxa_pixmap_is_dirty(mask)))
+ /* BUF_INFO is an implicit flush */
+ if (dest != intel->render_current_dest)
+ intel_batch_do_flush(scrn);
+ else if((source && i830_uxa_pixmap_is_dirty(source)) ||
+ (mask && i830_uxa_pixmap_is_dirty(mask)))
intel_batch_emit_flush(scrn);
intel->needs_render_state_emit = TRUE;