hw/display: fix virgl reset regression
authorMarc-André Lureau <marcandre.lureau@redhat.com>
Fri, 2 Jul 2021 12:32:21 +0000 (16:32 +0400)
committerGerd Hoffmann <kraxel@redhat.com>
Thu, 22 Jul 2021 13:46:54 +0000 (15:46 +0200)
commit8a13b9bc0f283caff4333c75bc396a963f47ce5c
tree19485f90645679004cf8bd04d2c68f3be428c916
parentf29d52611c73347a2fc0fcea62e6197383b18fd1
hw/display: fix virgl reset regression

Before commit 49afbca3b00e8e517d54964229a794b51768deaf ("virtio-gpu: drop
use_virgl_renderer"), use_virgl_renderer was preventing calling GL
functions from non-GL context threads. The innocuously looking

  g->parent_obj.use_virgl_renderer = false;

was set the first time virtio_gpu_gl_reset() was called, during
pc_machine_reset() in the main thread. Further virtio_gpu_gl_reset()
calls in IO threads, without associated GL context, were thus skipping
GL calls and avoided warnings or crashes (see also
https://gitlab.freedesktop.org/virgl/virglrenderer/-/issues/226).

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20210702123221.942432-1-marcandre.lureau@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
hw/display/virtio-gpu-gl.c
hw/display/virtio-gpu-virgl.c
include/hw/virtio/virtio-gpu.h