diff options
author | Jeremy White <jwhite@codeweavers.com> | 2015-12-08 09:11:08 -0600 |
---|---|---|
committer | Christophe Fergeau <cfergeau@redhat.com> | 2015-12-14 12:44:58 +0100 |
commit | f44a63b8ecf64e5baed8f69cb04eafebe06bfadb (patch) | |
tree | 8af311ca443fd45c92d2c9aac90d78fd6f3a2aed | |
parent | aa09f04717a7c29c29dd302717816b3a8eda3168 (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.c | 3 |
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); |