diff mbox series

ui/gtk-egl: egl context needs to be unbound in the end of gd_egl_switch

Message ID 20220928215805.4661-1-dongwon.kim@intel.com (mailing list archive)
State New, archived
Headers show
Series ui/gtk-egl: egl context needs to be unbound in the end of gd_egl_switch | expand

Commit Message

Kim, Dongwon Sept. 28, 2022, 9:58 p.m. UTC
A thread often fails to bind an egl context to itself after guest VM is
rebooted because the context is still owned by another thread. It is not
very clear what condition makes this happen but this can be prevented
by unbinding the context from the thread in the end of gd_egl_switch.

Cc: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Dongwon Kim <dongwon.kim@intel.com>
---
 ui/gtk-egl.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Gerd Hoffmann Oct. 12, 2022, 9 a.m. UTC | #1
On Wed, Sep 28, 2022 at 02:58:05PM -0700, Dongwon Kim wrote:
> A thread often fails to bind an egl context to itself after guest VM is
> rebooted because the context is still owned by another thread. It is not
> very clear what condition makes this happen but this can be prevented
> by unbinding the context from the thread in the end of gd_egl_switch.

Added to queue,

thanks,
  Gerd
diff mbox series

Patch

diff --git a/ui/gtk-egl.c b/ui/gtk-egl.c
index b5bffbab25..35f917ceb1 100644
--- a/ui/gtk-egl.c
+++ b/ui/gtk-egl.c
@@ -195,6 +195,9 @@  void gd_egl_switch(DisplayChangeListener *dcl,
     if (resized) {
         gd_update_windowsize(vc);
     }
+
+    eglMakeCurrent(qemu_egl_display, EGL_NO_SURFACE, EGL_NO_SURFACE,
+                   EGL_NO_CONTEXT);
 }
 
 QEMUGLContext gd_egl_create_context(DisplayGLCtx *dgc,