From nobody Sun Apr 6 01:51:01 2025 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1737659815; cv=none; d=zohomail.com; s=zohoarc; b=MiiBJHb1Jc67lGSfll/871mMoIS7kBbbJ80178Gw66+IB0NJqDI0nHUKSmfKnVljTOG20TAZQnKPZQ4UVZdaWLesqn2g0IOhPyY9t2cUSlLPkW64kGZS2PhTowPyBPqA9PbEZO45yDcreBUoEyQ2LRW/fHngtJtVihUo0nPKBng= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1737659815; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=N6Q3/ZvwGnKPIed0NISz5czL39rUai5WaDH4OEu3vcU=; b=kUaU9F4vIu11rp6NxXfpHMlZuxhg4vuLANmnszPuroJtjOFHoNREU8mzYlPd/mwZ43SDWWKZooLX6v5CR5yzWTj6uUFyhUnD/sZB4MsUABlTX1s1VUZ9vs2EgfhrCUn3rydE+ZEqJyu22D2ZYXrL9H4VwxYaRPewl1oCXcYMnyM= 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 1737659815152854.1848623776906; Thu, 23 Jan 2025 11:16:55 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tb2gN-0007yE-QQ; Thu, 23 Jan 2025 14:16:03 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tb2gD-0007wz-FQ for qemu-devel@nongnu.org; Thu, 23 Jan 2025 14:15:53 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tb2gB-00038H-S4 for qemu-devel@nongnu.org; Thu, 23 Jan 2025 14:15:53 -0500 Received: from mx-prod-mc-02.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-546-r9iPV7fWOsO8V0pR0Q-ytA-1; Thu, 23 Jan 2025 14:15:47 -0500 Received: from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-02.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id E16501955DE2 for ; Thu, 23 Jan 2025 19:15:46 +0000 (UTC) Received: from toolbx.redhat.com (unknown [10.42.28.222]) by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 8906130001BE; Thu, 23 Jan 2025 19:15:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1737659751; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=N6Q3/ZvwGnKPIed0NISz5czL39rUai5WaDH4OEu3vcU=; b=e7YIjpbKubMLVXcJYjk8sfUfQF9un5rcyhJL2x88Nhqj8As6veriZfwDW2SVKA0G867uqo 2iOOey3UqDpLgcQpP3b/I+wSe6nI/o+a3DzSMBqqf7bKUSC2Aa+xhb1Ys3EcCL0SRD0vYp wj2uCca2l93gK5HrWKD8Z1KfUxHTMPE= X-MC-Unique: r9iPV7fWOsO8V0pR0Q-ytA-1 X-Mimecast-MFC-AGG-ID: r9iPV7fWOsO8V0pR0Q-ytA From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: qemu-devel@nongnu.org Cc: Gerd Hoffmann , "Michael S. Tsirkin" , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= Subject: [RFC 2/6] hw/display/virtio-gpu.c: reverse alpha pre-multiplication Date: Thu, 23 Jan 2025 19:15:32 +0000 Message-ID: <20250123191536.142753-3-berrange@redhat.com> In-Reply-To: <20250123191536.142753-1-berrange@redhat.com> References: <20250123191536.142753-1-berrange@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4 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=170.10.133.124; envelope-from=berrange@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -50 X-Spam_score: -5.1 X-Spam_bar: ----- X-Spam_report: (-5.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-2.996, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.043, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1737659816507019100 The cursor data we receive from the guest has had the alpha channel pre-multiplied into the RGB components. Reverse this before passing the cursor onto the backends. Without doing this, areas of the cursor with alpha are much less saturated than they are intended to be. This effect is visible with the SDL and GTK backends, but was masked with the VNC backend since that forget to apply pre-multiplication with its alpha cursor encoding thus cancelling out the virtio-gpu problem. Signed-off-by: Daniel P. Berrang=C3=A9 --- hw/display/virtio-gpu.c | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/display/virtio-gpu.c b/hw/display/virtio-gpu.c index 11a7a85750..156d4e0b9b 100644 --- a/hw/display/virtio-gpu.c +++ b/hw/display/virtio-gpu.c @@ -102,6 +102,7 @@ static void update_cursor(VirtIOGPU *g, struct virtio_g= pu_update_cursor *cursor) =20 if (cursor->resource_id > 0) { vgc->update_cursor_data(g, s, cursor->resource_id); + cursor_unmultiply_alpha(s->current_cursor); } dpy_cursor_define(s->con, s->current_cursor); =20 --=20 2.47.1