From b47ada6635e787013e3838ad0c0e645d19fe23d0 Mon Sep 17 00:00:00 2001 From: Janne Grunau Date: Fri, 18 Apr 2025 18:52:25 +0200 Subject: [PATCH] venus: virtgpu: Require stable wire format When VMMs do not support VIRTGPU_DRM_CAPSET_VENUS the capset data remains zeroed. By requiring the stable wire_format_version 1 this can be detected early without initialising the renderer. Avoids triggering `assert(capset->supports_blob_id_0);` in debug builds under such circumstances. Cc: mesa-stable Signed-off-by: Janne Grunau Part-of: (cherry picked from commit 3d3ca9b65e2dc09a765aba3c0e4b3878bd0a83bc) --- .pick_status.json | 2 +- src/virtio/vulkan/vn_renderer_virtgpu.c | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.pick_status.json b/.pick_status.json index 60db9ff410f..796d83187d1 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -424,7 +424,7 @@ "description": "venus: virtgpu: Require stable wire format", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null diff --git a/src/virtio/vulkan/vn_renderer_virtgpu.c b/src/virtio/vulkan/vn_renderer_virtgpu.c index eea1df798ad..17476f5637b 100644 --- a/src/virtio/vulkan/vn_renderer_virtgpu.c +++ b/src/virtio/vulkan/vn_renderer_virtgpu.c @@ -1490,6 +1490,14 @@ virtgpu_init_capset(struct virtgpu *gpu) return VK_ERROR_INITIALIZATION_FAILED; } + if (gpu->capset.data.wire_format_version == 0) { + if (VN_DEBUG(INIT)) { + vn_log(gpu->instance, "Unsupported wire format version %u", + gpu->capset.data.wire_format_version); + } + return VK_ERROR_INITIALIZATION_FAILED; + } + return VK_SUCCESS; }