Hi
On Wed, Feb 7, 2024 at 10:38 PM Tianlan Zhou <bobby825@126.com> wrote:
>
> In `qemu_console_resize()`, the old surface of the console is keeped if the new
> console size is the same as the old one. If the old surface is a placeholder,
> and the new size of console is the same as the placeholder surface (640*480),
> the surface won't be replace.
> In this situation, the surface's `QEMU_PLACEHOLDER_FLAG` flag is still set, so
> the console won't be displayed in SDL display mode.
> This patch fixes this problem by forcing a new surface if the old one is a
> placeholder.
>
> Signed-off-by: Tianlan Zhou <bobby825@126.com>
> ---
> ui/console.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/ui/console.c b/ui/console.c
> index 7db921e3b7..832055675c 100644
> --- a/ui/console.c
> +++ b/ui/console.c
> @@ -1577,7 +1577,7 @@ void qemu_console_resize(QemuConsole *s, int width, int height)
> assert(QEMU_IS_GRAPHIC_CONSOLE(s));
>
> if ((s->scanout.kind != SCANOUT_SURFACE ||
> - (surface && surface->flags & QEMU_ALLOCATED_FLAG)) &&
> + (surface && !is_buffer_shared(surface) && !is_placeholder(surface))) &&
> qemu_console_get_width(s, -1) == width &&
> qemu_console_get_height(s, -1) == height) {
> return;
> --
> 2.38.1.windows.1
>
>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
--
Marc-André Lureau