On 2022/03/09 17:40, Marc-André Lureau wrote:
Hi
On Wed, Mar 9, 2022 at 12:34 PM Akihiko Odaki <akihiko.od...@gmail.com
<mailto:akihiko.od...@gmail.com>> wrote:
On 2022/03/09 17:33, Marc-André Lureau wrote:
> Hi
>
> On Wed, Mar 9, 2022 at 12:21 PM Akihiko Odaki
<akihiko.od...@gmail.com <mailto:akihiko.od...@gmail.com>
> <mailto:akihiko.od...@gmail.com
<mailto:akihiko.od...@gmail.com>>> wrote:
>
>
> If it is expected that dpy_gfx_update is required, it should call
> dpy_gfx_update. I agree it is not a right timing to fix vnc
to remove
> the implicit update as it is pre-existing.
> However the lack of dpy_gfx_update call is a regression and
should
> be fixed.
>
>
> Calling dpy_gfx_update is done when the scanount.kind is SURFACE.
>
> dpy_gfx_update is specific to SURFACE, GL uses dpy_gl_update.
>
> --
> Marc-André Lureau
egl-headless requires non-OpenGL to display the surface content even if
scanout.kind is not SURFACE. Calling dpy_gfx_update is done when the
scanount.kind is SURFACE is not enough.
We are going in circles... egl-headless call dpy_gfx_update on
dpy_gl_update.
--
Marc-André Lureau
Ok, let me summarize the situation.
The problem occurs in the following condition.
1. register_displaychangelistener of console_select is called for a
non-OpenGL display.
2. scanout.kind is SURFACE_TEXTURE or SURFACE_DMABUF.
3. egl-headless is employed.
dpy_gfx_switch and dpy_gfx_update need to be called to finish the
initialization or switching of the non-OpenGL display. However, the
proposed patch only calls dpy_gfx_switch.
vnc actually does not need dpy_gfx_update because the vnc implementation
of dpy_gfx_switch implicitly does the work for dpy_gfx_update, but the
model of ui/console expects the two of dpy_gfx_switch and dpy_gfx_update
is separated and only calling dpy_gfx_switch violates the model.
dpy_gfx_update used to be called even in such a case before and it is a
regression.
Regards,
Akihiko Odaki