Message ID | 20231111104020.26183-1-vr_qemu@t-online.de |
---|---|
State | New |
Headers | show |
Series | [for,8.2] ui/gtk-egl: move function calls back to regular code path | expand |
Cc: Antonio > Commit 6f189a08c1 ("ui/gtk-egl: Check EGLSurface before doing > scanout") introduced a regression when QEMU is running with a > virtio-gpu-gl-device on a host under X11. After the guest has > initialized the virtio-gpu-gl-device, the guest screen only > shows "Display output is not active.". > > Commit 6f189a08c1 moved all function calls in > gd_egl_scanout_texture() to a code path which is only called > once after gd_egl_init() succeeds in gd_egl_scanout_texture(). > Move all function calls in gd_egl_scanout_texture() back to > the regular code path so they get always called if one of the > gd_egl_init() calls was successful. > > Fixes: 6f189a08c1 ("ui/gtk-egl: Check EGLSurface before doing scanout") > Signed-off-by: Volker Rümelin <vr_qemu@t-online.de> > --- > ui/gtk-egl.c | 12 ++++++------ > 1 file changed, 6 insertions(+), 6 deletions(-) > > diff --git a/ui/gtk-egl.c b/ui/gtk-egl.c > index cd2f176502..3af5ac5bcf 100644 > --- a/ui/gtk-egl.c > +++ b/ui/gtk-egl.c > @@ -249,14 +249,14 @@ void gd_egl_scanout_texture(DisplayChangeListener *dcl, > if (!vc->gfx.esurface) { > return; > } > + } > > - eglMakeCurrent(qemu_egl_display, vc->gfx.esurface, > - vc->gfx.esurface, vc->gfx.ectx); > + eglMakeCurrent(qemu_egl_display, vc->gfx.esurface, > + vc->gfx.esurface, vc->gfx.ectx); > > - gtk_egl_set_scanout_mode(vc, true); > - egl_fb_setup_for_tex(&vc->gfx.guest_fb, backing_width, backing_height, > - backing_id, false); > - } > + gtk_egl_set_scanout_mode(vc, true); > + egl_fb_setup_for_tex(&vc->gfx.guest_fb, backing_width, backing_height, > + backing_id, false); > } > > void gd_egl_scanout_dmabuf(DisplayChangeListener *dcl,
Hi On Sat, Nov 11, 2023 at 2:40 PM Volker Rümelin <vr_qemu@t-online.de> wrote: > > Commit 6f189a08c1 ("ui/gtk-egl: Check EGLSurface before doing > scanout") introduced a regression when QEMU is running with a > virtio-gpu-gl-device on a host under X11. After the guest has > initialized the virtio-gpu-gl-device, the guest screen only > shows "Display output is not active.". > > Commit 6f189a08c1 moved all function calls in > gd_egl_scanout_texture() to a code path which is only called > once after gd_egl_init() succeeds in gd_egl_scanout_texture(). > Move all function calls in gd_egl_scanout_texture() back to > the regular code path so they get always called if one of the > gd_egl_init() calls was successful. > > Fixes: 6f189a08c1 ("ui/gtk-egl: Check EGLSurface before doing scanout") > Signed-off-by: Volker Rümelin <vr_qemu@t-online.de> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> > --- > ui/gtk-egl.c | 12 ++++++------ > 1 file changed, 6 insertions(+), 6 deletions(-) > > diff --git a/ui/gtk-egl.c b/ui/gtk-egl.c > index cd2f176502..3af5ac5bcf 100644 > --- a/ui/gtk-egl.c > +++ b/ui/gtk-egl.c > @@ -249,14 +249,14 @@ void gd_egl_scanout_texture(DisplayChangeListener *dcl, > if (!vc->gfx.esurface) { > return; > } > + } > > - eglMakeCurrent(qemu_egl_display, vc->gfx.esurface, > - vc->gfx.esurface, vc->gfx.ectx); > + eglMakeCurrent(qemu_egl_display, vc->gfx.esurface, > + vc->gfx.esurface, vc->gfx.ectx); > > - gtk_egl_set_scanout_mode(vc, true); > - egl_fb_setup_for_tex(&vc->gfx.guest_fb, backing_width, backing_height, > - backing_id, false); > - } > + gtk_egl_set_scanout_mode(vc, true); > + egl_fb_setup_for_tex(&vc->gfx.guest_fb, backing_width, backing_height, > + backing_id, false); > } > > void gd_egl_scanout_dmabuf(DisplayChangeListener *dcl, > -- > 2.35.3 >
Hi Volker, Thank you for finding this! On 11/11/2023 11:40, Volker Rümelin wrote: > Commit 6f189a08c1 ("ui/gtk-egl: Check EGLSurface before doing > scanout") introduced a regression when QEMU is running with a > virtio-gpu-gl-device on a host under X11. After the guest has > initialized the virtio-gpu-gl-device, the guest screen only > shows "Display output is not active.". > > Commit 6f189a08c1 moved all function calls in > gd_egl_scanout_texture() to a code path which is only called > once after gd_egl_init() succeeds in gd_egl_scanout_texture(). > Move all function calls in gd_egl_scanout_texture() back to > the regular code path so they get always called if one of the > gd_egl_init() calls was successful. > > Fixes: 6f189a08c1 ("ui/gtk-egl: Check EGLSurface before doing scanout") > Signed-off-by: Volker Rümelin <vr_qemu@t-online.de> Reviewed by: Antonio Caggiano <quic_acaggian@quicinc.com> > --- > ui/gtk-egl.c | 12 ++++++------ > 1 file changed, 6 insertions(+), 6 deletions(-) > > diff --git a/ui/gtk-egl.c b/ui/gtk-egl.c > index cd2f176502..3af5ac5bcf 100644 > --- a/ui/gtk-egl.c > +++ b/ui/gtk-egl.c > @@ -249,14 +249,14 @@ void gd_egl_scanout_texture(DisplayChangeListener *dcl, > if (!vc->gfx.esurface) { > return; > } > + } > > - eglMakeCurrent(qemu_egl_display, vc->gfx.esurface, > - vc->gfx.esurface, vc->gfx.ectx); > + eglMakeCurrent(qemu_egl_display, vc->gfx.esurface, > + vc->gfx.esurface, vc->gfx.ectx); > > - gtk_egl_set_scanout_mode(vc, true); > - egl_fb_setup_for_tex(&vc->gfx.guest_fb, backing_width, backing_height, > - backing_id, false); > - } > + gtk_egl_set_scanout_mode(vc, true); > + egl_fb_setup_for_tex(&vc->gfx.guest_fb, backing_width, backing_height, > + backing_id, false); > } > > void gd_egl_scanout_dmabuf(DisplayChangeListener *dcl,
11.11.2023 13:40, Volker Rümelin wrote: > Commit 6f189a08c1 ("ui/gtk-egl: Check EGLSurface before doing > scanout") introduced a regression when QEMU is running with a > virtio-gpu-gl-device on a host under X11. After the guest has > initialized the virtio-gpu-gl-device, the guest screen only > shows "Display output is not active.". > > Commit 6f189a08c1 moved all function calls in > gd_egl_scanout_texture() to a code path which is only called > once after gd_egl_init() succeeds in gd_egl_scanout_texture(). > Move all function calls in gd_egl_scanout_texture() back to > the regular code path so they get always called if one of the > gd_egl_init() calls was successful. > > Fixes:
Am 13.11.23 um 09:26 schrieb Marc-André Lureau: > Hi > > On Sat, Nov 11, 2023 at 2:40 PM Volker Rümelin <vr_qemu@t-online.de> wrote: >> Commit 6f189a08c1 ("ui/gtk-egl: Check EGLSurface before doing >> scanout") introduced a regression when QEMU is running with a >> virtio-gpu-gl-device on a host under X11. After the guest has >> initialized the virtio-gpu-gl-device, the guest screen only >> shows "Display output is not active.". >> >> Commit 6f189a08c1 moved all function calls in >> gd_egl_scanout_texture() to a code path which is only called >> once after gd_egl_init() succeeds in gd_egl_scanout_texture(). >> Move all function calls in gd_egl_scanout_texture() back to >> the regular code path so they get always called if one of the >> gd_egl_init() calls was successful. >> >> Fixes: 6f189a08c1 ("ui/gtk-egl: Check EGLSurface before doing scanout") >> Signed-off-by: Volker Rümelin <vr_qemu@t-online.de> > Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Hi Marc-André, as the de facto maintainer of the ui directory, could you please send a pull request for this patch for 8.2-rc3? With best regards, Volker >> --- >> ui/gtk-egl.c | 12 ++++++------ >> 1 file changed, 6 insertions(+), 6 deletions(-) >> >> diff --git a/ui/gtk-egl.c b/ui/gtk-egl.c >> index cd2f176502..3af5ac5bcf 100644 >> --- a/ui/gtk-egl.c >> +++ b/ui/gtk-egl.c >> @@ -249,14 +249,14 @@ void gd_egl_scanout_texture(DisplayChangeListener *dcl, >> if (!vc->gfx.esurface) { >> return; >> } >> + } >> >> - eglMakeCurrent(qemu_egl_display, vc->gfx.esurface, >> - vc->gfx.esurface, vc->gfx.ectx); >> + eglMakeCurrent(qemu_egl_display, vc->gfx.esurface, >> + vc->gfx.esurface, vc->gfx.ectx); >> >> - gtk_egl_set_scanout_mode(vc, true); >> - egl_fb_setup_for_tex(&vc->gfx.guest_fb, backing_width, backing_height, >> - backing_id, false); >> - } >> + gtk_egl_set_scanout_mode(vc, true); >> + egl_fb_setup_for_tex(&vc->gfx.guest_fb, backing_width, backing_height, >> + backing_id, false); >> } >> >> void gd_egl_scanout_dmabuf(DisplayChangeListener *dcl, >> -- >> 2.35.3 >>
diff --git a/ui/gtk-egl.c b/ui/gtk-egl.c index cd2f176502..3af5ac5bcf 100644 --- a/ui/gtk-egl.c +++ b/ui/gtk-egl.c @@ -249,14 +249,14 @@ void gd_egl_scanout_texture(DisplayChangeListener *dcl, if (!vc->gfx.esurface) { return; } + } - eglMakeCurrent(qemu_egl_display, vc->gfx.esurface, - vc->gfx.esurface, vc->gfx.ectx); + eglMakeCurrent(qemu_egl_display, vc->gfx.esurface, + vc->gfx.esurface, vc->gfx.ectx); - gtk_egl_set_scanout_mode(vc, true); - egl_fb_setup_for_tex(&vc->gfx.guest_fb, backing_width, backing_height, - backing_id, false); - } + gtk_egl_set_scanout_mode(vc, true); + egl_fb_setup_for_tex(&vc->gfx.guest_fb, backing_width, backing_height, + backing_id, false); } void gd_egl_scanout_dmabuf(DisplayChangeListener *dcl,
Commit 6f189a08c1 ("ui/gtk-egl: Check EGLSurface before doing scanout") introduced a regression when QEMU is running with a virtio-gpu-gl-device on a host under X11. After the guest has initialized the virtio-gpu-gl-device, the guest screen only shows "Display output is not active.". Commit 6f189a08c1 moved all function calls in gd_egl_scanout_texture() to a code path which is only called once after gd_egl_init() succeeds in gd_egl_scanout_texture(). Move all function calls in gd_egl_scanout_texture() back to the regular code path so they get always called if one of the gd_egl_init() calls was successful. Fixes: 6f189a08c1 ("ui/gtk-egl: Check EGLSurface before doing scanout") Signed-off-by: Volker Rümelin <vr_qemu@t-online.de> --- ui/gtk-egl.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-)