Hi Akihiko On Mon, Mar 7, 2022 at 12:09 PM Akihiko Odaki <akihiko.od...@gmail.com> wrote: > > On 2022/03/07 16:46, marcandre.lur...@redhat.com wrote: > > From: Marc-André Lureau <marcandre.lur...@redhat.com> > > > > egl-headless depends on the backing surface to be set before texture are > > set and updated. Display it (update=true) iff the current scanout kind > > is SURFACE. > > egl-headless does not dynamically call register_displaychangelistener > and has console associated (console_select would not affect egl-headless > itself) so this should not be necessary.
Could you help me understand, what should not be necessary? > The remaining problem with egl-headless is that egl-headless renders the > image to DisplaySurface, and a non-OpenGL display (namely vnc) has to > consume it instead of texture even when con->scanout.kind is > SCANOUT_TEXTURE or SCANOUT_DMABUF. This is already happening, because egl-headless calls dpy_gfx_update(). thanks > Regards, > Akihiko Odaki > > > > > Reported-by: Akihiko Odaki <akihiko.od...@gmail.com> > > Signed-off-by: Marc-André Lureau <marcandre.lur...@redhat.com> > > --- > > ui/console.c | 7 ++++--- > > 1 file changed, 4 insertions(+), 3 deletions(-) > > > > diff --git a/ui/console.c b/ui/console.c > > index 5bfecea4549e..16a0b0909ba2 100644 > > --- a/ui/console.c > > +++ b/ui/console.c > > @@ -1112,6 +1112,10 @@ static void > > displaychangelistener_display_console(DisplayChangeListener *dcl, > > return; > > } > > > > + dpy_gfx_create_texture(con, con->surface); > > + displaychangelistener_gfx_switch(dcl, con->surface, > > + con->scanout.kind == SCANOUT_SURFACE); > > + > > if (con->scanout.kind == SCANOUT_DMABUF && > > displaychangelistener_has_dmabuf(dcl)) { > > dcl->ops->dpy_gl_scanout_dmabuf(dcl, con->scanout.dmabuf); > > @@ -1126,9 +1130,6 @@ static void > > displaychangelistener_display_console(DisplayChangeListener *dcl, > > con->scanout.texture.y, > > con->scanout.texture.width, > > con->scanout.texture.height); > > - } else if (con->scanout.kind == SCANOUT_SURFACE) { > > - dpy_gfx_create_texture(con, con->surface); > > - displaychangelistener_gfx_switch(dcl, con->surface, TRUE); > > } > > } > > >