Commit c540128f authored by Marc-André Lureau's avatar Marc-André Lureau Committed by Gerd Hoffmann
Browse files

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: default avatarMarc-André Lureau <marcandre.lureau@redhat.com>
Message-id: 1465911849-30423-2-git-send-email-marcandre.lureau@redhat.com
Signed-off-by: default avatarGerd Hoffmann <kraxel@redhat.com>
parent 015e02f8
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -934,8 +934,14 @@ static void virtio_gpu_gl_block(void *opaque, bool block)
{
    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);
    }
}
+1 −1
Original line number Diff line number Diff line
@@ -107,7 +107,7 @@ typedef struct VirtIOGPU {

    bool use_virgl_renderer;
    bool renderer_inited;
    bool renderer_blocked;
    int renderer_blocked;
    QEMUTimer *fence_poll;
    QEMUTimer *print_stats;