summaryrefslogtreecommitdiff
path: root/src/intel_batchbuffer.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/intel_batchbuffer.c')
-rw-r--r--src/intel_batchbuffer.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/intel_batchbuffer.c b/src/intel_batchbuffer.c
index 95eca434..289ed2b2 100644
--- a/src/intel_batchbuffer.c
+++ b/src/intel_batchbuffer.c
@@ -175,6 +175,13 @@ void intel_batch_emit_flush(ScrnInfoPtr scrn)
intel_batch_do_flush(scrn);
}
+static Bool intel_batch_needs_flush(intel_screen_private *intel)
+{
+ ScreenPtr screen = intel->scrn->pScreen;
+ PixmapPtr pixmap = screen->GetScreenPixmap(screen);
+ return intel_get_pixmap_private(pixmap)->batch_write;
+}
+
void intel_batch_submit(ScrnInfoPtr scrn)
{
intel_screen_private *intel = intel_get_screen_private(scrn);
@@ -234,6 +241,8 @@ void intel_batch_submit(ScrnInfoPtr scrn)
}
}
+ intel->needs_flush |= intel_batch_needs_flush(intel);
+
while (!list_is_empty(&intel->batch_pixmaps)) {
struct intel_pixmap *entry;