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: v8.2.0-rc0~142^2~12 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9cb737b77d9cc43a9bed305cbb105928a3dda54b;p=thirdparty%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 0a48ce91591..4ee3b775681 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)