|
From: | Akihiko Odaki |
Subject: | Re: [PATCH v3 12/12] ui/console: call gfx_switch() even if the current scanout is GL |
Date: | Wed, 9 Mar 2022 17:49:12 +0900 |
User-agent: | Mozilla/5.0 (X11; Linux aarch64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0 |
On 2022/03/09 17:40, Marc-André Lureau wrote:
HiOn Wed, Mar 9, 2022 at 12:34 PM Akihiko Odaki <akihiko.odaki@gmail.com <mailto:akihiko.odaki@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.odaki@gmail.com <mailto:akihiko.odaki@gmail.com> > <mailto:akihiko.odaki@gmail.com <mailto:akihiko.odaki@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
[Prev in Thread] | Current Thread | [Next in Thread] |