Ensure that the partial batch is flushed upon the blockhandler
Currently, we require that a batch containing a dirty bo be submitted before we mark the device as requiring a flush. So if we never submit a batch between block handlers, we can end up sleeping without ever flushing either the partial batch or the rendering to the scanout. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=36776 Tested-by: Vasily Khoruzhick <anarsoul@gmail.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
parent
67e5a74e99
commit
3145530fee
|
|
@ -175,13 +175,6 @@ 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);
|
||||
|
|
@ -241,8 +234,6 @@ 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;
|
||||
|
||||
|
|
|
|||
|
|
@ -137,6 +137,8 @@ intel_batch_mark_pixmap_domains(intel_screen_private *intel,
|
|||
|
||||
priv->batch_write |= write_domain != 0;
|
||||
priv->busy = 1;
|
||||
|
||||
intel->needs_flush |= write_domain != 0;
|
||||
}
|
||||
|
||||
static inline void
|
||||
|
|
|
|||
Loading…
Reference in New Issue