summaryrefslogtreecommitdiff
path: root/src/i915_render.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2009-11-29 21:07:45 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2009-11-29 22:42:07 +0000
commit9a2c18fb92659d57741bfdcacbe4f69aab361532 (patch)
treeae8f274a7b29c6b90f2b0b11e1f3c018fc25c051 /src/i915_render.c
parent285f286597df5af13ac3f3d366f2fc9d0468dafa (diff)
batch: Emit a 'pipelined' flush when using a dirty source.
Ensure that the render caches and texture caches are appropriately flushed when switching a pixmap from a target to a source. This should fix bug 24315, [855GM] Rendering corruption in text (usually) https://bugs.freedesktop.org/show_bug.cgi?id=24315 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/i915_render.c')
-rw-r--r--src/i915_render.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/i915_render.c b/src/i915_render.c
index c720f2f3..34fd2538 100644
--- a/src/i915_render.c
+++ b/src/i915_render.c
@@ -459,6 +459,11 @@ i915_prepare_composite(int op, PicturePtr source_picture,
}
intel->i915_render_state.op = op;
+
+ if(i830_uxa_pixmap_is_dirty(source) ||
+ (mask && i830_uxa_pixmap_is_dirty(mask)))
+ intel_batch_pipelined_flush(scrn);
+
intel->needs_render_state_emit = TRUE;
return TRUE;