summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy White <jwhite@codeweavers.com>2015-12-08 09:11:08 -0600
committerChristophe Fergeau <cfergeau@redhat.com>2015-12-14 12:44:58 +0100
commitf44a63b8ecf64e5baed8f69cb04eafebe06bfadb (patch)
tree8af311ca443fd45c92d2c9aac90d78fd6f3a2aed
parentaa09f04717a7c29c29dd302717816b3a8eda3168 (diff)
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 <jwhite@codeweavers.com>
-rw-r--r--server/red_worker.c3
1 files changed, 2 insertions, 1 deletions
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);