In virgl_cmd_resource_flush(), when several consoles are updated, it
needs to keep blocking until all spice gl draws are done. This fixes an
assert() in spice when using multiple monitors with virgl.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-id:
1465911849-30423-2-git-send-email-marcandre.lureau@redhat.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
{
VirtIOGPU *g = opaque;
- g->renderer_blocked = block;
- if (!block) {
+ if (block) {
+ g->renderer_blocked++;
+ } else {
+ g->renderer_blocked--;
+ }
+ assert(g->renderer_blocked >= 0);
+
+ if (g->renderer_blocked == 0) {
virtio_gpu_process_cmdq(g);
}
}
bool use_virgl_renderer;
bool renderer_inited;
- bool renderer_blocked;
+ int renderer_blocked;
QEMUTimer *fence_poll;
QEMUTimer *print_stats;