diff --git a/src/intel_batchbuffer.c b/src/intel_batchbuffer.c index fec52819..9f8ca6f3 100644 --- a/src/intel_batchbuffer.c +++ b/src/intel_batchbuffer.c @@ -283,6 +283,9 @@ void intel_batch_wait_last(ScrnInfoPtr scrn) { intel_screen_private *intel = intel_get_screen_private(scrn); + if (intel->last_batch_bo == NULL) + return; + /* Map it CPU write, which guarantees it's done. This is a completely * non performance path, so we don't need anything better. */ diff --git a/src/intel_display.c b/src/intel_display.c index d32224ec..7eef80bb 100644 --- a/src/intel_display.c +++ b/src/intel_display.c @@ -359,6 +359,8 @@ intel_crtc_apply(xf86CrtcPtr crtc) crtc->gamma_blue, crtc->gamma_size); #endif + /* drain any pending waits on the current framebuffer */ + intel_batch_wait_last(crtc->scrn); x = crtc->x; y = crtc->y;