From: Marc-André Lureau Date: Wed, 30 Aug 2023 09:38:14 +0000 (+0400) Subject: ui/vc: skip text console resize when possible X-Git-Tag: pull-xenfv-stable-20231106~111^2~12 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=9cb737b77d9cc43a9bed305cbb105928a3dda54b;p=users%2Fdwmw2%2Fqemu.git ui/vc: skip text console resize when possible This function is called on invalidate, on each cursor blink. Avoid the extra copy when the console size didn't change. Signed-off-by: Marc-André Lureau Reviewed-by: Daniel P. Berrangé Message-Id: <20230830093843.3531473-41-marcandre.lureau@redhat.com> --- diff --git a/ui/console.c b/ui/console.c index 0a48ce9159..4ee3b77568 100644 --- a/ui/console.c +++ b/ui/console.c @@ -413,13 +413,19 @@ static void text_console_resize(QemuTextConsole *t) { QemuConsole *s = QEMU_CONSOLE(t); TextCell *cells, *c, *c1; - int w1, x, y, last_width; + int w1, x, y, last_width, w, h; assert(s->scanout.kind == SCANOUT_SURFACE); + w = surface_width(s->surface) / FONT_WIDTH; + h = surface_height(s->surface) / FONT_HEIGHT; + if (w == t->width && h == t->height) { + return; + } + last_width = t->width; - t->width = surface_width(s->surface) / FONT_WIDTH; - t->height = surface_height(s->surface) / FONT_HEIGHT; + t->width = w; + t->height = h; w1 = last_width; if (t->width < w1)