{"id":2197461,"url":"http://patchwork.ozlabs.org/api/1.0/patches/2197461/?format=json","project":{"id":14,"url":"http://patchwork.ozlabs.org/api/1.0/projects/14/?format=json","name":"QEMU Development","link_name":"qemu-devel","list_id":"qemu-devel.nongnu.org","list_email":"qemu-devel@nongnu.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20260217214928.2970885-15-dmitry.osipenko@collabora.com>","date":"2026-02-17T21:49:23","name":"[v18,14/19] docs/system: virtio-gpu: Document host/guest requirements","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"aa3ecc941ab5ef2a17a32687fa29990d6975aa9f","submitter":{"id":83453,"url":"http://patchwork.ozlabs.org/api/1.0/people/83453/?format=json","name":"Dmitry Osipenko","email":"dmitry.osipenko@collabora.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/qemu-devel/patch/20260217214928.2970885-15-dmitry.osipenko@collabora.com/mbox/","series":[{"id":492488,"url":"http://patchwork.ozlabs.org/api/1.0/series/492488/?format=json","date":"2026-02-17T21:49:09","name":"Support virtio-gpu DRM native context and MAP_FIXED API","version":18,"mbox":"http://patchwork.ozlabs.org/series/492488/mbox/"}],"check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2197461/checks/","tags":{},"headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=collabora.com header.i=dmitry.osipenko@collabora.com\n header.a=rsa-sha256 header.s=zohomail header.b=TkZrJVFp;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from lists.gnu.org (lists.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fFtgr5v2Rz1xwC\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 18 Feb 2026 08:53:44 +1100 (AEDT)","from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1vsT0H-0001CQ-J0; Tue, 17 Feb 2026 16:53:09 -0500","from eggs.gnu.org ([2001:470:142:3::10])\n by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <dmitry.osipenko@collabora.com>)\n id 1vsT0E-0000oX-Lu\n for qemu-devel@nongnu.org; Tue, 17 Feb 2026 16:53:06 -0500","from sender4-pp-f112.zoho.com ([136.143.188.112])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <dmitry.osipenko@collabora.com>)\n id 1vsT02-0001cI-N7\n for qemu-devel@nongnu.org; Tue, 17 Feb 2026 16:53:06 -0500","by mx.zohomail.com with SMTPS id 1771365158379357.0636983420949;\n Tue, 17 Feb 2026 13:52:38 -0800 (PST)"],"ARC-Seal":"i=1; a=rsa-sha256; t=1771365160; cv=none;\n d=zohomail.com; s=zohoarc;\n b=fqlSjNE746gb6/1Mh/PWi9jI4mS6dDiOKlhLJCpWoATh/Pbs0RjWZLAODLOYVcESHVWeqaAXDgX7Y/6XcVKobk03t2vmZN9QS0gQdX5EERtVb2WR+zxV09acDMkRDUhElxlz2S9GKeH+Uzrca6jLcZtPhCZAk36xACsyQWdpT/g=","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com;\n s=zohoarc; t=1771365160;\n h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To;\n bh=LP0NMKJP0ZJsg3D6W1P93gHQbeBA3DA9ntBuX3+Brh4=;\n b=MVlXrk5SJx/sJWuNZHniTA/83R1s6mwc4+yt1LWK65jvVuet78hEymh23VPffBRue/LVxRcBgDIvg1fz6C2OZm2lpVFvcMZnTk2vCgkb68Of/XoGwbo0OlL768maIcrBz7KrXarkmFwEEhoiHVfGReBkgaSC1Vw9TP6ZnqmLcZM=","ARC-Authentication-Results":"i=1; mx.zohomail.com;\n dkim=pass  header.i=collabora.com;\n spf=pass  smtp.mailfrom=dmitry.osipenko@collabora.com;\n dmarc=pass header.from=<dmitry.osipenko@collabora.com>","DKIM-Signature":"v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1771365160;\n s=zohomail; d=collabora.com; i=dmitry.osipenko@collabora.com;\n h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-ID:In-Reply-To:References:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;\n bh=LP0NMKJP0ZJsg3D6W1P93gHQbeBA3DA9ntBuX3+Brh4=;\n b=TkZrJVFpo6UO6NlL6AvUjsZec3XxmZgDnasQBSCCiIw/z0W1Uy4rB6yQ1yBOhFAU\n 2z9NIZPyxfwZqtf4JeVAJgHGfKft5hvukNT3eJXo2+F+Wz2+Ag/e2rxmvnbgt3WoVtx\n iojnqNAQm+d2Xg14DUhaoXyCPTs8tKfOkB1rdEY0=","From":"Dmitry Osipenko <dmitry.osipenko@collabora.com>","To":"Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>,\n Huang Rui <ray.huang@amd.com>,\n =?utf-8?q?Marc-Andr=C3=A9_Lureau?= <marcandre.lureau@redhat.com>,\n\t=?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>,\n Gerd Hoffmann <kraxel@redhat.com>,\n =?utf-8?q?Alex_Benn=C3=A9e?= <alex.bennee@linaro.org>,\n Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>,\n \"Michael S . Tsirkin\" <mst@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>,\n Yiwei Zhang <zzyiwei@gmail.com>, Sergio Lopez Pascual <slp@redhat.com>","Cc":"Gert Wollny <gert.wollny@collabora.com>, qemu-devel@nongnu.org,\n Gurchetan Singh <gurchetansingh@chromium.org>, Alyssa Ross <hi@alyssa.is>,\n\t=?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,\n Alex Deucher <alexander.deucher@amd.com>,\n Stefano Stabellini <stefano.stabellini@amd.com>, =?utf-8?q?Christian_K?=\n\t=?utf-8?q?=C3=B6nig?= <christian.koenig@amd.com>,\n Xenia Ragiadakou <xenia.ragiadakou@amd.com>,\n Honglei Huang <honglei1.huang@amd.com>, Julia Zhang <julia.zhang@amd.com>,\n Chen Jiqian <Jiqian.Chen@amd.com>, Rob Clark <robdclark@gmail.com>,\n Robert Beckett <bob.beckett@collabora.com>","Subject":"[PATCH v18 14/19] docs/system: virtio-gpu: Document host/guest\n requirements","Date":"Wed, 18 Feb 2026 00:49:23 +0300","Message-ID":"<20260217214928.2970885-15-dmitry.osipenko@collabora.com>","X-Mailer":"git-send-email 2.52.0","In-Reply-To":"<20260217214928.2970885-1-dmitry.osipenko@collabora.com>","References":"<20260217214928.2970885-1-dmitry.osipenko@collabora.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"8bit","X-ZohoMailClient":"External","Received-SPF":"pass client-ip=136.143.188.112;\n envelope-from=dmitry.osipenko@collabora.com; helo=sender4-pp-f112.zoho.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,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001,\n RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001,\n 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":"qemu development <qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<https://lists.nongnu.org/archive/html/qemu-devel>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"},"content":"From: Alex Bennée <alex.bennee@linaro.org>\n\nThis attempts to tidy up the VirtIO GPU documentation to make the list\nof requirements clearer. There are still a lot of moving parts and the\ndistros have some catching up to do before this is all handled\nautomatically.\n\nSigned-off-by: Alex Bennée <alex.bennee@linaro.org>\nCc: Sergio Lopez Pascual <slp@redhat.com>\nReviewed-by: Akihiko Odaki <akihiko.odaki@daynix.com>\nAcked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>\nReviewed-by: Yiwei Zhang <zzyiwei@gmail.com>\nSigned-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>\n[dmitry.osipenko@collabora.com: Extended and corrected doc]\n---\n docs/system/devices/virtio/virtio-gpu.rst | 105 +++++++++++++++++++++-\n 1 file changed, 102 insertions(+), 3 deletions(-)","diff":"diff --git a/docs/system/devices/virtio/virtio-gpu.rst b/docs/system/devices/virtio/virtio-gpu.rst\nindex ef5fb0401d5d..d05f8cb8e3f9 100644\n--- a/docs/system/devices/virtio/virtio-gpu.rst\n+++ b/docs/system/devices/virtio/virtio-gpu.rst\n@@ -7,14 +7,28 @@ VirtIO GPU\n ==========\n \n This document explains the setup and usage of the virtio-gpu device.\n-The virtio-gpu device paravirtualizes the GPU and display controller.\n+The virtio-gpu device provides a GPU and display controller\n+paravirtualized using VirtIO. It supports a number of different modes\n+from simple 2D displays to fully accelerated 3D graphics.\n \n-Linux kernel support\n---------------------\n+Linux guest kernel support\n+--------------------------\n \n virtio-gpu requires a guest Linux kernel built with the\n ``CONFIG_DRM_VIRTIO_GPU`` option.\n \n+3D acceleration\n+---------------\n+\n+3D acceleration of a virtualized GPU is still an evolving field.\n+Depending on the 3D mode you are running you may need to override\n+distribution supplied libraries with more recent versions or enable\n+build options. There are a number of requirements the host must meet\n+to be able to be able to support guests. QEMU must be able to access the\n+host's GPU and for the best performance be able to reliably share GPU\n+memory with the guest. Details of 3D acceleration requirements are\n+described in a further sections.\n+\n QEMU virtio-gpu variants\n ------------------------\n \n@@ -67,8 +81,14 @@ intermediate representation is communicated to the host and the\n `virglrenderer`_ library on the host translates the intermediate\n representation back to OpenGL API calls.\n \n+By default OpenGL version on guest is limited to 4.3. In order to enable\n+OpenGL 4.6 support, virtio-gpu  host blobs feature (``hostmem`` and ``blob``\n+fields) should be enabled.  The ``hostmem`` field specifies the size of\n+virtio-gpu host memory window. This is typically between 256M and 8G.\n+\n .. parsed-literal::\n     -device virtio-gpu-gl\n+    -device virtio-gpu-gl,hostmem=8G,blob=true\n \n .. _virgl: https://docs.mesa3d.org/drivers/virgl.html\n .. _Gallium3D: https://www.freedesktop.org/wiki/Software/gallium/\n@@ -96,6 +116,67 @@ of virtio-gpu host memory window. This is typically between 256M and 8G.\n \n .. _drm: https://gitlab.freedesktop.org/virgl/virglrenderer/-/tree/main/src/drm\n \n+.. list-table:: Linux Host Requirements\n+  :header-rows: 1\n+\n+  * - Capability\n+    - Kernel Version\n+    - Libvirglrenderer Version\n+  * - OpenGL pass-through\n+    - Any Linux version compatible with QEMU if not using host blobs feature,\n+      Linux 6.13+ otherwise\n+    - 0.8.2+\n+  * - Vulkan pass-through\n+    - Linux 6.13+\n+    - 1.0.0+\n+  * - AMDGPU DRM native context\n+    - Linux 6.13+\n+    - 1.1.0+\n+  * - Freedreno DRM native context\n+    - Linux 6.4+\n+    - 1.0.0+\n+  * - Intel i915 DRM native context\n+    - Linux 6.13+\n+    - 1.3.0+\n+  * - Asahi DRM native context\n+    - `Downstream version`_ of Asahi Linux kernel\n+    - 1.2.0+\n+  * - Panfrost native context\n+    - Linux 6.13+\n+    - 1.3.0+\n+\n+.. _Downstream version: https://github.com/AsahiLinux/linux\n+\n+.. list-table:: Linux Guest Requirements\n+  :header-rows: 1\n+\n+  * - Capability\n+    - Kernel Version\n+    - Mesa Version\n+  * - OpenGL pass-through\n+    - Any Linux version supporting virtio-gpu\n+    - 16.0.0+\n+  * - Vulkan pass-through\n+    - Linux 5.16+\n+    - 24.2.0+\n+  * - AMDGPU DRM native context\n+    - Linux 6.14+\n+    - 25.0.0+\n+  * - Freedreno DRM native context\n+    - Linux 6.14+\n+    - 23.1.0+\n+  * - Intel i915 DRM native context\n+    - Linux 6.14+\n+    - 26.1.0+\n+  * - Asahi DRM native context\n+    - Linux 6.14+\n+    - 24.2.0+\n+  * - Panfrost native context\n+    - Linux 6.14+\n+    - `mr36814`_\n+\n+.. _mr36814: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36814\n+\n virtio-gpu rutabaga\n -------------------\n \n@@ -135,3 +216,21 @@ Surfaceless is the default if ``wsi`` is not specified.\n .. _Wayland display passthrough: https://www.youtube.com/watch?v=OZJiHMtIQ2M\n .. _gfxstream-enabled rutabaga: https://crosvm.dev/book/appendix/rutabaga_gfx.html\n .. _guest Wayland proxy: https://crosvm.dev/book/devices/wayland.html\n+\n+.. list-table:: Linux Host Requirements\n+  :header-rows: 1\n+\n+  * - Capability\n+    - Kernel Version\n+  * - Vulkan+Wayland pass-through\n+    - Linux 6.13+\n+\n+.. list-table:: Linux Guest Requirements\n+  :header-rows: 1\n+\n+  * - Capability\n+    - Kernel Version\n+    - Mesa Version\n+  * - Vulkan+Wayland pass-through\n+    - Linux 5.16+\n+    - 24.3.0+\n","prefixes":["v18","14/19"]}