]> git.proxmox.com Git - mirror_qemu.git/commit - ui/console.c
ui: do not create a surface when resizing a GL scanout
authorMarc-André Lureau <marcandre.lureau@redhat.com>
Mon, 14 Feb 2022 20:13:37 +0000 (00:13 +0400)
committerGerd Hoffmann <kraxel@redhat.com>
Fri, 4 Mar 2022 10:28:37 +0000 (11:28 +0100)
commitcb8962c146b2633a4b04562281de9b2703bba849
treeec6ca5203268d9d5d037342984712e5d5b68d1b8
parent6cdcf8810744cbc67074468b7f3c2f50f8e3539c
ui: do not create a surface when resizing a GL scanout

qemu_console_resize() will create a blank surface and replace the
current scanout with it if called while the current scanout is
GL (texture or dmabuf).

This is not only very costly, but also can produce glitches on the
display/listener side.

Instead, compare the current console size with the fitting console
functions, which also works when the scanout is GL.

Note: there might be still an unnecessary surface creation on calling
qemu_console_resize() when the size is actually changing, but display
backends currently rely on DisplaySurface details during
dpy_gfx_switch() to handle various resize aspects. We would need more
refactoring to handle resize without DisplaySurface, this is left for a
future improvement.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20220214201337.1814787-4-marcandre.lureau@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
ui/console.c