From nobody Sun Nov 24 15:54:34 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=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1722440545; cv=none; d=zohomail.com; s=zohoarc; b=DATfC4ZyYXvVXlutwTRrqL9Rv/WKQfrGGBgOZldlcnCjzL36qOJEPyxVDz3+wd936u5/fRYFaoLk+0yW1sONOhBY2bYjjvsMDUvk88nsSqWLjeYZbypP3NMRqJsb885nof8Hr8sdmVXzlbFLQl/iK3+d6exTjx9j1Z6FVwy7CdE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1722440545; h=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=kZ10jbqGcmWPbSCdFNpYZxcGrhjEM23ozxTz71ZPu1U=; b=gvEjrDgUISfsrgy63Y68CFJ8XnzXA5IQUt+YuswaHx+ixXlUejbKoHIm4Tld5rnHQG7EbW1lSzl8HO1+CJyV4+v0NCckHaPnaLdjXRXoO5wvb7EyzsaaSsN1lSqs84947PfTdf5HnxQeBl7EH2+h+26TWhyU5UHmOhrAvWqJ0JA= 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 1722440545394348.9892357523903; Wed, 31 Jul 2024 08:42:25 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sZBSQ-0001qX-W0; Wed, 31 Jul 2024 11:41:43 -0400 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 1sZBSP-0001pY-Sj for qemu-devel@nongnu.org; Wed, 31 Jul 2024 11:41:41 -0400 Received: from mail-wm1-x32b.google.com ([2a00:1450:4864:20::32b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sZBSN-00056R-Qt for qemu-devel@nongnu.org; Wed, 31 Jul 2024 11:41:41 -0400 Received: by mail-wm1-x32b.google.com with SMTP id 5b1f17b1804b1-4281f00e70cso26739335e9.1 for ; Wed, 31 Jul 2024 08:41:39 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4282bba283fsm25201295e9.46.2024.07.31.08.41.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 31 Jul 2024 08:41:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1722440498; x=1723045298; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=kZ10jbqGcmWPbSCdFNpYZxcGrhjEM23ozxTz71ZPu1U=; b=ypuQwVmsIkcGCS40v++HpFFC6BRvdf2eyT4ylkd1dj0EYwBgR8bAjuzs7ITqp8KB6G J9gK5079Gq4vCVufqnNvl+/ctBE3nQZKB50EsgpupM+4iCIOAco36gvkLhPgi3Muaa/S sgi8+eHhTAonXpXcFCu5u18T1Y3XM2emMqghs2tdyL62SCFNmwcRSD6QTxYR3mYP7hSU hOQp88PjOHkyU7LUmfnQDB8enTIidMLRt3ZYY5U5mR7b5WFvW5Tky/22qrbJL/AUQKyJ trBMcCrzwD6hkaeCi1iBA6qVHdVRsQsvJFPjvMi2/BX/DRvO+hegxuCxIeG0VLrzo6o1 NqUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1722440498; x=1723045298; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=kZ10jbqGcmWPbSCdFNpYZxcGrhjEM23ozxTz71ZPu1U=; b=jf/3dvzdHRFlET/xrIElQyfDMLD1M5tSN2rv4d5PEbneIL1JVYIo+F+/GDkS/+RX+p qkxhviMaG28+D1d40kbMJcH8zgDVdL3t8gz7cfMbudTs7ZsQS1BSYNznefux9NOBwGkY hlmar7Eg2mM6VJxrdLrFk/8NJk1SL9hg38IbomVF3oGSnYxd6dDRsvDD4dJ6w707at0S OcAn+fnIcWtMFIFZyIWmczRJJS1gwUe5RP7DSVBB8xuQmDkzEpTUd6BgvPgN5mVnZ02p /6JXUC0KsbGkyGsDWTJEJkNiw9RY0JqnPTwnREUk6s1g1OEoqjpwZRuE0OXx2yFBOzOj Fk5g== X-Gm-Message-State: AOJu0YwBHkImlEG6/re/Xej7hPKPEweySQ2RUs3ZzKzqGd0buRBRpoLs bhn95zCbMZ3ccsRaLJZR/1fRqKnOGi9XQLWtvZG22CRMS2fHN/XAOHLaSCXhf4Cf9zCizbp7BX4 p X-Google-Smtp-Source: AGHT+IHF2TCyvbBkTlG+hT5aJajNMLdrRz+Kpskcp6h10iWANi/Nt0LyRs2k9ClTXs8QrHgk+LboGA== X-Received: by 2002:a05:600c:a03:b0:427:9db3:46ad with SMTP id 5b1f17b1804b1-42811dd1a29mr91291585e9.23.1722440498129; Wed, 31 Jul 2024 08:41:38 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Cc: "Michael S. Tsirkin" , Paolo Bonzini , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH 1/3] hw/display/virtio-gpu: Improve "opengl is not available" error message Date: Wed, 31 Jul 2024 16:41:34 +0100 Message-Id: <20240731154136.3494621-2-peter.maydell@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240731154136.3494621-1-peter.maydell@linaro.org> References: <20240731154136.3494621-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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::32b; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x32b.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, 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 @linaro.org) X-ZM-MESSAGEID: 1722440546929116600 Content-Type: text/plain; charset="utf-8" If the user tries to use the virtio-gpu-gl device but the display backend doesn't have OpenGL support enabled, we currently print a rather uninformative error message: $ qemu-system-aarch64 -M virt -device virtio-gpu-gl qemu-system-aarch64: -device virtio-gpu-gl: opengl is not available Since OpenGL is not enabled on display frontends by default, users are quite likely to run into this. Improve the error message to be more specific and to suggest to the user a path forward. Note that the case of "user tried to enable OpenGL but the display backend doesn't handle it" is caught elsewhere first, so we can assume that isn't the problem: $ qemu-system-aarch64 -M virt -device virtio-gpu-gl -display curses,gl=3Don qemu-system-aarch64: OpenGL is not supported by the display (Use of error_append_hint() requires us to add an ERRP_GUARD() to the function, as noted in include/qapi/error.h.) With this commit we now produce the hopefully more helpful error: $ ./build/x86/qemu-system-aarch64 -M virt -device virtio-gpu-gl qemu-system-aarch64: -device virtio-gpu-gl: The display backend does not ha= ve OpenGL support enabled It can be enabled with '-display BACKEND,gl=3Don' where BACKEND is the name= of the display backend to use. Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2443 Signed-off-by: Peter Maydell Reviewed-by: Alex Benn=C3=A9e Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- hw/display/virtio-gpu-gl.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/hw/display/virtio-gpu-gl.c b/hw/display/virtio-gpu-gl.c index 952820a4256..49cb61edd23 100644 --- a/hw/display/virtio-gpu-gl.c +++ b/hw/display/virtio-gpu-gl.c @@ -107,6 +107,7 @@ static void virtio_gpu_gl_reset(VirtIODevice *vdev) static void virtio_gpu_gl_device_realize(DeviceState *qdev, Error **errp) { VirtIOGPU *g =3D VIRTIO_GPU(qdev); + ERRP_GUARD(); =20 #if HOST_BIG_ENDIAN error_setg(errp, "virgl is not supported on bigendian platforms"); @@ -119,7 +120,12 @@ static void virtio_gpu_gl_device_realize(DeviceState *= qdev, Error **errp) } =20 if (!display_opengl) { - error_setg(errp, "opengl is not available"); + error_setg(errp, + "The display backend does not have OpenGL support enabl= ed"); + error_append_hint(errp, + "It can be enabled with '-display BACKEND,gl=3Do= n' " + "where BACKEND is the name of the display backen= d " + "to use.\n"); return; } =20 --=20 2.34.1