You need to sign in or sign up before continuing.
提交 c540128f 编写于 作者: M Marc-André Lureau 提交者: Gerd Hoffmann

virgl: count the calls to gl_block

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: NMarc-André Lureau <marcandre.lureau@redhat.com>
Message-id: 1465911849-30423-2-git-send-email-marcandre.lureau@redhat.com
Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
上级 015e02f8
...@@ -934,8 +934,14 @@ static void virtio_gpu_gl_block(void *opaque, bool block) ...@@ -934,8 +934,14 @@ static void virtio_gpu_gl_block(void *opaque, bool block)
{ {
VirtIOGPU *g = opaque; 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); virtio_gpu_process_cmdq(g);
} }
} }
......
...@@ -107,7 +107,7 @@ typedef struct VirtIOGPU { ...@@ -107,7 +107,7 @@ typedef struct VirtIOGPU {
bool use_virgl_renderer; bool use_virgl_renderer;
bool renderer_inited; bool renderer_inited;
bool renderer_blocked; int renderer_blocked;
QEMUTimer *fence_poll; QEMUTimer *fence_poll;
QEMUTimer *print_stats; QEMUTimer *print_stats;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册