virtio-gpu: delay virglrenderer reset when blocked.

If renderer_blocked is set do not call virtio_gpu_virgl_reset().
Instead set a flag indicating that virglrenderer needs a reset.
When renderer_blocked gets cleared do the actual reset call.

Without this we can trigger an assert in spice due to calling
spice_qxl_gl_scanout() while another operation is still running:

spice_qxl_gl_scanout: condition `qxl_state->gl_draw_cookie == GL_DRAW_COOKIE_INVALID' failed

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Message-id: 20190314115358.26678-2-kraxel@redhat.com
This commit is contained in:
Gerd Hoffmann 2019-03-14 12:53:57 +01:00
parent a223b478cb
commit 9032e3d71c
2 changed files with 12 additions and 1 deletions

View file

@ -113,6 +113,7 @@ typedef struct VirtIOGPU {
bool use_virgl_renderer;
bool renderer_inited;
int renderer_blocked;
bool renderer_reset;
QEMUTimer *fence_poll;
QEMUTimer *print_stats;