From nobody Fri May 3 14:15:15 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1641287732; cv=none; d=zohomail.com; s=zohoarc; b=BA+d0nrw+NtRqDOIVBmszdF6OS9W0ViR8ZOKY14Ktn+m2iwmcZh7HANdwkjf2LwWS8P0X5q+3GBTVF4e93+eRMz0zb/ns17r++Z29pZftTlrSfjLjPZn17Kc/0SZ+TABzzJMhflhsoiUkNSGY03p+HsA19VA6pvoGBtSnfsUjsY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1641287732; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=JyHlj7eDxukYdvkmom2cAbRXsqpvnsgR0EZjsGCJfBg=; b=AaBvrylyJyxech7HYsINA/HmQuAT3FJQ7we5qEjDbWFph3s9zyr0GxyzfkqCEJMAyOfZVymd/3iOAxZm9w34bmrEzGqJXz3tbHxrCdn/5OewH7W0rQ4aZwugf5Y2QI2RTKRsxVzXVRw9sCBMMrz9WfJO8bpcTv2BXY9oUJlrVek= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1641287732633501.92047875632284; Tue, 4 Jan 2022 01:15:32 -0800 (PST) Received: from localhost ([::1]:42686 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n4ful-00089X-Nd for importer@patchew.org; Tue, 04 Jan 2022 04:15:31 -0500 Received: from eggs.gnu.org ([209.51.188.92]:35336) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n4fr7-00028M-9c; Tue, 04 Jan 2022 04:11:45 -0500 Received: from [2a00:1450:4864:20::331] (port=39931 helo=mail-wm1-x331.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n4fr5-0005qR-Au; Tue, 04 Jan 2022 04:11:44 -0500 Received: by mail-wm1-x331.google.com with SMTP id g7-20020a7bc4c7000000b00345c4bb365aso19594107wmk.4; Tue, 04 Jan 2022 01:11:42 -0800 (PST) Received: from localhost.localdomain (201.11.75.194.dyn.plus.net. [194.75.11.201]) by smtp.googlemail.com with ESMTPSA id c11sm43962844wmq.48.2022.01.04.01.11.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Jan 2022 01:11:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:signed-off-by:content-transfer-encoding; bh=JyHlj7eDxukYdvkmom2cAbRXsqpvnsgR0EZjsGCJfBg=; b=BErSZXqqMefbaZ+0SAbxqFW1/dYK97Lw0EZXxYisH/O94Xco93FTSzHE1REeRupiMx KsYV45VDPE+SPUK+3UuH5HuURpOxHBA/wBK3qloYBvO74sW73R4vnBLRtqWdcWf6h1mD VlBs2e4bAz/JYhp3NsOKxqGKIuu37NT5otKNHTW69zrA/+NuoZnbQxr/MjB2VHtPcTqr fEkiHFSndVkPB44qXjFBNwf5v6vcam/SCiqYEFVy8oZ020KJhaJ9DXGmO4mC0rL15qTE yiDCCV3Qo1IxHCXKy+nQ4j3mfEthf3nhKx3rzOCSvUsDZpFtz857cOnDb/6jM4uZPPhB FRNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:signed-off-by:content-transfer-encoding; bh=JyHlj7eDxukYdvkmom2cAbRXsqpvnsgR0EZjsGCJfBg=; b=lCsVz/aJQt8yxqu4e3Tz3YDf1LzUQYNzIBuR4FZZTYl+efIZpUW1gPu0ENCJvsCuO/ tx9WvowuGLQ8SjsEE/lMkQKMrNCu+fqEkm5smRSeMLstoW9re4sCgxX6bhesUSx305GX 84oByqlvWbRBecLsaBDyRBi7EH0Hz9UCMhykirOlhvUhLVTxQfCFMSUzZ9cIDbWqe7/x cNCOYv6P4QCxqb1sIy7JNgYzhs5UDjzcyVCZUCqUhMTjfD/c4G6xkd5jAvzfpcrdLXQS K7o6KKUEQmukADwmx+wRQ9tZNruhYmN8qDaRu0raqcCT5Sr0M060qcwMxjqhf7v4iG1V Detw== X-Gm-Message-State: AOAM5327OsyPP5pMdH4vaeGHl2WwqcCFYzwOM83hIW04lcqonrWBYz3v GRKJoZCP+5SCJt9bb5YHFwh/KX8ChNk= X-Google-Smtp-Source: ABdhPJxq3B019bhukqkE48r6scIc9K7vi76GqNECBmWtBPN6peDFtGgpQ72/P4w5t/RvP2u5iA4GMQ== X-Received: by 2002:a7b:cb9a:: with SMTP id m26mr37119994wmi.55.1641287501840; Tue, 04 Jan 2022 01:11:41 -0800 (PST) From: Carwyn Ellis To: qemu-devel@nongnu.org Subject: [PATCH 1/2] hw/display/vmware_vga: only show debug output if DEBUG enabled Date: Tue, 4 Jan 2022 09:11:34 +0000 Message-Id: <20220104091135.61226-2-carwynellis@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220104091135.61226-1-carwynellis@gmail.com> References: <20220104091135.61226-1-carwynellis@gmail.com> MIME-Version: 1.0 Signed-off-by: Carwyn Ellis Content-Transfer-Encoding: quoted-printable X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a00:1450:4864:20::331 (failed) Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::331; envelope-from=carwynellis@gmail.com; helo=mail-wm1-x331.google.com X-Spam_score_int: 6 X-Spam_score: 0.6 X-Spam_bar: / X-Spam_report: (0.6 / 5.0 requ) DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: qemu-trivial@nongnu.org, Carwyn Ellis Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1641287734294100001 Content-Type: text/plain; charset="utf-8" Debug output was always being sent to STDERR. This has been replaced by a define that will only show this output when DEBUG is set to true. Signed-off-by: Carwyn Ellis --- hw/display/vmware_vga.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/hw/display/vmware_vga.c b/hw/display/vmware_vga.c index e2969a6c81..8080e085d1 100644 --- a/hw/display/vmware_vga.c +++ b/hw/display/vmware_vga.c @@ -43,6 +43,12 @@ =20 /* See http://vmware-svga.sf.net/ for some documentation on VMWare SVGA */ =20 +#ifdef DEBUG +#define VMWARE_VGA_DEBUG(...) { (void) fprintf(stdout, __VA_ARGS__); } +#else +#define VMWARE_VGA_DEBUG(...) ((void) 0) +#endif + struct vmsvga_state_s { VGACommonState vga; =20 @@ -297,45 +303,45 @@ static inline bool vmsvga_verify_rect(DisplaySurface = *surface, int x, int y, int w, int h) { if (x < 0) { - fprintf(stderr, "%s: x was < 0 (%d)\n", name, x); + VMWARE_VGA_DEBUG("%s: x was < 0 (%d)\n", name, x); return false; } if (x > SVGA_MAX_WIDTH) { - fprintf(stderr, "%s: x was > %d (%d)\n", name, SVGA_MAX_WIDTH, x); + VMWARE_VGA_DEBUG("%s: x was > %d (%d)\n", name, SVGA_MAX_WIDTH, x); return false; } if (w < 0) { - fprintf(stderr, "%s: w was < 0 (%d)\n", name, w); + VMWARE_VGA_DEBUG("%s: w was < 0 (%d)\n", name, w); return false; } if (w > SVGA_MAX_WIDTH) { - fprintf(stderr, "%s: w was > %d (%d)\n", name, SVGA_MAX_WIDTH, w); + VMWARE_VGA_DEBUG("%s: w was > %d (%d)\n", name, SVGA_MAX_WIDTH, w); return false; } if (x + w > surface_width(surface)) { - fprintf(stderr, "%s: width was > %d (x: %d, w: %d)\n", + VMWARE_VGA_DEBUG("%s: width was > %d (x: %d, w: %d)\n", name, surface_width(surface), x, w); return false; } =20 if (y < 0) { - fprintf(stderr, "%s: y was < 0 (%d)\n", name, y); + VMWARE_VGA_DEBUG("%s: y was < 0 (%d)\n", name, y); return false; } if (y > SVGA_MAX_HEIGHT) { - fprintf(stderr, "%s: y was > %d (%d)\n", name, SVGA_MAX_HEIGHT, y); + VMWARE_VGA_DEBUG("%s: y was > %d (%d)\n", name, SVGA_MAX_HEIGHT, y= ); return false; } if (h < 0) { - fprintf(stderr, "%s: h was < 0 (%d)\n", name, h); + VMWARE_VGA_DEBUG("%s: h was < 0 (%d)\n", name, h); return false; } if (h > SVGA_MAX_HEIGHT) { - fprintf(stderr, "%s: h was > %d (%d)\n", name, SVGA_MAX_HEIGHT, h); + VMWARE_VGA_DEBUG("%s: h was > %d (%d)\n", name, SVGA_MAX_HEIGHT, h= ); return false; } if (y + h > surface_height(surface)) { - fprintf(stderr, "%s: update height > %d (y: %d, h: %d)\n", + VMWARE_VGA_DEBUG("%s: update height > %d (y: %d, h: %d)\n", name, surface_height(surface), y, h); return false; } --=20 2.34.1 From nobody Fri May 3 14:15:15 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1641287611; cv=none; d=zohomail.com; s=zohoarc; b=H1Jf684jMXvJ6tWmT8k1FIl3Bpbe64DAva3ijUzgDe2H27qpdcuPBxF5YlKqVWyDtg5HGer5/z2oPBkPKlFDL0lHZRa64y8fvsVQZA4KCiB0xzlhgX+6mAyyoaQ8O5Mp0oSNVFM13NLZ6j/Blc5WQhDYoPHbYYqkgkKENg1mT50= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1641287611; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=gUacSFKzE5d5rBkE0IE8ydFAm3pspR29oFymbe1laec=; b=VfFcCk0gLJ7K94/Ygl3W8a1NZ75QYFFWs25sJBumcA8dkIkkVUV/xHBsSUzomZlncMly0joXIdCaEUiDrLtjAyp9o7LQjD8jkQ22jP94uXG2Dwxeuz8VcLcuGIfERvp09i1scNiZMw1c3bnQ38B/Ma5H9Fxxul9703C281SoEvg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1641287611826514.1462710059477; Tue, 4 Jan 2022 01:13:31 -0800 (PST) Received: from localhost ([::1]:37450 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n4fso-0004do-1Y for importer@patchew.org; Tue, 04 Jan 2022 04:13:30 -0500 Received: from eggs.gnu.org ([209.51.188.92]:35346) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n4fr9-0002DF-5s; Tue, 04 Jan 2022 04:11:47 -0500 Received: from [2a00:1450:4864:20::430] (port=44763 helo=mail-wr1-x430.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n4fr6-0005qX-IE; Tue, 04 Jan 2022 04:11:45 -0500 Received: by mail-wr1-x430.google.com with SMTP id k18so38050332wrg.11; Tue, 04 Jan 2022 01:11:43 -0800 (PST) Received: from localhost.localdomain (201.11.75.194.dyn.plus.net. [194.75.11.201]) by smtp.googlemail.com with ESMTPSA id c11sm43962844wmq.48.2022.01.04.01.11.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Jan 2022 01:11:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:signed-off-by:content-transfer-encoding; bh=gUacSFKzE5d5rBkE0IE8ydFAm3pspR29oFymbe1laec=; b=SpKzP18pDwRB1xifWNNtl9TFaPh0aJws361lD4xeCT+gtsLE0YBP5v1vuIOO4xEFe+ far3TaCH9ZwmUfdmuB94xVcbEjKVJutFm0V6OslAK2FNtrxGpuUy8WdUQGtHk4u0HLqH 4yy33EpsuvQ6cBB2BUe/S0ncAEsGmqk/iW4oyIGwRFboT/4aIG61qaKGFo67FNVRg5gw bc6cNcqvW48Y66FlG6wTFD9+Va0952xEexNNRgfSNERYO5OQP6UhNk5lHlUtnpgdcCGz ydepL4+u4XtVwoBNO7PH7EdJm13SI5vU5R7kLlN/s56K3TPNdmNvXoJ5b8MOc35yYE3I b29A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:signed-off-by:content-transfer-encoding; bh=gUacSFKzE5d5rBkE0IE8ydFAm3pspR29oFymbe1laec=; b=0G4UY8XKFxKG4iPaflNpnOyUWzDz4vwCn7pWnl2/Rc4jw7Rd638wmiL/zQ7fgojYXc MwhCZRAUasfDpBMZFyy9tXiGqMEAjwhkhBuc4zskRbCzdWQOessz4O2GPsq8ekyeexNM q7SFLurWM200vks+yWk/qpLSMa/gsrUYRzhrfCHZVZgFwuwfSY/OgtaYVnqkeL04Mh1+ v3ujECR8WJRv+lqvtssX1n4vm6WnxSKTlz511WZAmfQRyyKAZNgZJ47wWLYS5t0sjxG/ encgiVbvpHgyURHyw4Agz+TqNnc1GhhXBPtSxwVp0f84LM5TBzksVRUgbCfvpTB15ohC 1wFA== X-Gm-Message-State: AOAM531APhV0b99VNR/wistdT0y+3ZeeyFqsHoMJVm1XDJ/M7Jiu906u yKVBPpUXpb6Poiv1C0A0vmoFsHr/72c= X-Google-Smtp-Source: ABdhPJy4qjtVGrsr+hEhVNUB7ihCAz2F028GLx2Z5W7uxk9LZ5mjnGfEmBTonAIhMr516WcgIgJZNg== X-Received: by 2002:a05:6000:118a:: with SMTP id g10mr40146559wrx.533.1641287502957; Tue, 04 Jan 2022 01:11:42 -0800 (PST) From: Carwyn Ellis To: qemu-devel@nongnu.org Subject: [PATCH 2/2] hw/display/vmware_vga: do not discard screen updates Date: Tue, 4 Jan 2022 09:11:35 +0000 Message-Id: <20220104091135.61226-3-carwynellis@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220104091135.61226-1-carwynellis@gmail.com> References: <20220104091135.61226-1-carwynellis@gmail.com> MIME-Version: 1.0 Signed-off-by: Carwyn Ellis Content-Transfer-Encoding: quoted-printable X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a00:1450:4864:20::430 (failed) Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::430; envelope-from=carwynellis@gmail.com; helo=mail-wr1-x430.google.com X-Spam_score_int: 6 X-Spam_score: 0.6 X-Spam_bar: / X-Spam_report: (0.6 / 5.0 requ) DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: qemu-trivial@nongnu.org, Carwyn Ellis Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1641287614068100001 Content-Type: text/plain; charset="utf-8" In certain circumstances, typically when there is lots changing on the screen, updates will be discarded resulting in garbled output. This change firstly increases the screen update FIFO size to ensure it's large enough to accomodate all updates deferred in a given screen refresh cycle. When updating the screen all updates are applied to ensure the display output is rendered correctly. Signed-off-by: Carwyn Ellis --- hw/display/vmware_vga.c | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/hw/display/vmware_vga.c b/hw/display/vmware_vga.c index 8080e085d1..28556f39c6 100644 --- a/hw/display/vmware_vga.c +++ b/hw/display/vmware_vga.c @@ -82,7 +82,7 @@ struct vmsvga_state_s { uint32_t fifo_next; uint32_t fifo_stop; =20 -#define REDRAW_FIFO_LEN 512 +#define REDRAW_FIFO_LEN 8192 struct vmsvga_rect_s { int x, y, w, h; } redraw_fifo[REDRAW_FIFO_LEN]; @@ -385,7 +385,14 @@ static inline void vmsvga_update_rect_delayed(struct v= msvga_state_s *s, { struct vmsvga_rect_s *rect =3D &s->redraw_fifo[s->redraw_fifo_last++]; =20 - s->redraw_fifo_last &=3D REDRAW_FIFO_LEN - 1; + if (s->redraw_fifo_last >=3D REDRAW_FIFO_LEN) { + VMWARE_VGA_DEBUG("%s: Discarding updates - FIFO length %d exceeded= \n", + "vmsvga_update_rect_delayed", + REDRAW_FIFO_LEN + ); + s->redraw_fifo_last =3D REDRAW_FIFO_LEN - 1; + } + rect->x =3D x; rect->y =3D y; rect->w =3D w; @@ -402,11 +409,13 @@ static inline void vmsvga_update_rect_flush(struct vm= svga_state_s *s) } /* Overlapping region updates can be optimised out here - if someone * knows a smart algorithm to do that, please share. */ - while (s->redraw_fifo_first !=3D s->redraw_fifo_last) { - rect =3D &s->redraw_fifo[s->redraw_fifo_first++]; - s->redraw_fifo_first &=3D REDRAW_FIFO_LEN - 1; + for (int i =3D 0; i < s->redraw_fifo_last; i++) { + rect =3D &s->redraw_fifo[i]; vmsvga_update_rect(s, rect->x, rect->y, rect->w, rect->h); } + + s->redraw_fifo_first =3D 0; + s->redraw_fifo_last =3D 0; } =20 #ifdef HW_RECT_ACCEL @@ -607,13 +616,14 @@ static inline uint32_t vmsvga_fifo_read(struct vmsvga= _state_s *s) static void vmsvga_fifo_run(struct vmsvga_state_s *s) { uint32_t cmd, colour; - int args, len, maxloop =3D 1024; + int args, len =3D 1024; int x, y, dx, dy, width, height; struct vmsvga_cursor_definition_s cursor; uint32_t cmd_start; =20 len =3D vmsvga_fifo_length(s); - while (len > 0 && --maxloop > 0) { + + while (len > 0) { /* May need to go back to the start of the command if incomplete */ cmd_start =3D s->fifo_stop; =20 --=20 2.34.1