Looks like is a more appropriate place. Note that this make patch smaller. Also this is more symmetric having gl_draw_ongoing in DisplayChannelClient. This patch could be squashed in another. Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx> --- server/display-channel.c | 18 ++++++++---------- server/display-channel.h | 2 ++ server/reds.h | 1 - 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/server/display-channel.c b/server/display-channel.c index be22e62..1662995 100644 --- a/server/display-channel.c +++ b/server/display-channel.c @@ -2155,9 +2155,12 @@ void display_channel_gl_scanout(DisplayChannel *display) red_channel_pipes_new_add_push(RED_CHANNEL(display), dcc_gl_scanout_item_new, NULL); } -static void set_gl_draw_async_count(QXLInstance *qxl, int num) +static void set_gl_draw_async_count(DisplayChannel *display, int num) { - qxl->st->gl_draw_async_count = num; + RedWorker *worker = COMMON_CHANNEL(display)->worker; + QXLInstance *qxl = red_worker_get_qxl(worker); + + display->gl_draw_async_count = num; if (num == 0) { red_dispatcher_async_complete(qxl->st->dispatcher, qxl->st->gl_draw_async); @@ -2167,20 +2170,15 @@ static void set_gl_draw_async_count(QXLInstance *qxl, int num) void display_channel_gl_draw(DisplayChannel *display, SpiceMsgDisplayGlDraw *draw) { - RedWorker *worker = COMMON_CHANNEL(display)->worker; - QXLInstance *qxl = red_worker_get_qxl(worker); int num; - spice_return_if_fail(qxl->st->gl_draw_async_count == 0); + spice_return_if_fail(display->gl_draw_async_count == 0); num = red_channel_pipes_new_add_push(RED_CHANNEL(display), dcc_gl_draw_item_new, draw); - set_gl_draw_async_count(qxl, num); + set_gl_draw_async_count(display, num); } void display_channel_gl_draw_done(DisplayChannel *display) { - RedWorker *worker = COMMON_CHANNEL(display)->worker; - QXLInstance *qxl = red_worker_get_qxl(worker); - - set_gl_draw_async_count(qxl, qxl->st->gl_draw_async_count - 1); + set_gl_draw_async_count(display, display->gl_draw_async_count - 1); } diff --git a/server/display-channel.h b/server/display-channel.h index a0465bd..82fd663 100644 --- a/server/display-channel.h +++ b/server/display-channel.h @@ -202,6 +202,8 @@ struct DisplayChannel { ImageCache image_cache; RedCompressBuf *free_compress_bufs; + int gl_draw_async_count; + /* TODO: some day unify this, make it more runtime.. */ stat_info_t add_stat; stat_info_t exclude_stat; diff --git a/server/reds.h b/server/reds.h index bf66e62..2f40d39 100644 --- a/server/reds.h +++ b/server/reds.h @@ -39,7 +39,6 @@ struct QXLState { pthread_mutex_t scanout_mutex; SpiceMsgDisplayGlScanoutUnix scanout; struct AsyncCommand *gl_draw_async; - int gl_draw_async_count; }; struct TunnelWorker; -- 2.5.0 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel