From f44a63b8ecf64e5baed8f69cb04eafebe06bfadb Mon Sep 17 00:00:00 2001 From: Jeremy White Date: Tue, 8 Dec 2015 09:11:08 -0600 Subject: [PATCH] Flush display commands before validating the surface. This fixes a display glitch in xspice which is caused when a surface create is queued, but then a direct call to update the area is issued. Unless we flush the queue, the surface does not exist, and we fail. Signed-off-by: Jeremy White --- server/red_worker.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/server/red_worker.c b/server/red_worker.c index 1309592c..5fbab0e0 100644 --- a/server/red_worker.c +++ b/server/red_worker.c @@ -11052,12 +11052,13 @@ void handle_dev_update(void *opaque, void *payload) QXLRect *qxl_dirty_rects = msg->qxl_dirty_rects; uint32_t clear_dirty_region = msg->clear_dirty_region; + flush_display_commands(worker); + VALIDATE_SURFACE_RET(worker, surface_id); rect = spice_new0(SpiceRect, 1); surface = &worker->surfaces[surface_id]; red_get_rect_ptr(rect, qxl_area); - flush_display_commands(worker); spice_assert(worker->running);