diff options
author | Yonit Halperin <yhalperi@redhat.com> | 2010-08-25 10:02:33 +0300 |
---|---|---|
committer | Yonit Halperin <yhalperi@redhat.com> | 2010-08-25 15:14:35 +0300 |
commit | b9b5f8fd56081587559a4611cf57e86ce0f03964 (patch) | |
tree | 2591815887ca0782a8ef39a4a15927d52ccc5ced | |
parent | cbb9f700be13c0f849786dcaa49aa5fe35de90bc (diff) | |
download | spice-b9b5f8fd56081587559a4611cf57e86ce0f03964.tar.gz spice-b9b5f8fd56081587559a4611cf57e86ce0f03964.tar.xz spice-b9b5f8fd56081587559a4611cf57e86ce0f03964.zip |
server: clean glz drawables when reseting qxl
When the we reset qxl, we destroy all srufaces. Since surfaces and glz
drawables are no longer dependent, we need to call red_display_clear_glz_drawables explicitly
in order to clear all our drawables references in the server.
-rw-r--r-- | server/red_worker.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/server/red_worker.c b/server/red_worker.c index 043aa361..27d94910 100644 --- a/server/red_worker.c +++ b/server/red_worker.c @@ -9800,6 +9800,7 @@ static inline void handle_dev_destroy_surface_wait(RedWorker *worker) write_message(worker->channel, &message); } +/* called upon device reset */ static inline void handle_dev_destroy_surfaces(RedWorker *worker) { int i; @@ -9834,6 +9835,8 @@ static inline void handle_dev_destroy_surfaces(RedWorker *worker) red_pipe_add_verb(&worker->display_channel->base, SPICE_MSG_DISPLAY_STREAM_DESTROY_ALL); } + red_display_clear_glz_drawables(worker->display_channel); + //to handle better for (i = 0; i < NUM_SURFACES; ++i) { ASSERT(!worker->surfaces[i].context.canvas); |