diff options
Diffstat (limited to 'src/intel_batchbuffer.c')
-rw-r--r-- | src/intel_batchbuffer.c | 9 |
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; |