Mesa (master): venus: check vn_renderer_info::vk_xml_version

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Apr 13 01:37:57 UTC 2021


Module: Mesa
Branch: master
Commit: 51216d656d702732169cac4c7a30607cbac0f077
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=51216d656d702732169cac4c7a30607cbac0f077

Author: Chia-I Wu <olvaffe at gmail.com>
Date:   Fri Apr  9 22:49:21 2021 -0700

venus: check vn_renderer_info::vk_xml_version

When crosvm does not support venus, it still advertises
VIRGL_RENDERER_CAPSET_VENUS but provides no or zeroed capset data.
vk_xml_version will be zero.

It is a good idea to verify vk_xml_version anyway.

v2: print required version suggested by Ryan

Signed-off-by: Chia-I Wu <olvaffe at gmail.com>
Reviewed-by: Yiwei Zhang <zzyiwei at chromium.org>
Reviewed-by: Ryan Neph <ryanneph at google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10192>

---

 src/virtio/vulkan/vn_device.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/src/virtio/vulkan/vn_device.c b/src/virtio/vulkan/vn_device.c
index 486c533d3c0..268678d2c20 100644
--- a/src/virtio/vulkan/vn_device.c
+++ b/src/virtio/vulkan/vn_device.c
@@ -191,6 +191,18 @@ vn_instance_init_renderer(struct vn_instance *instance)
    version = vn_info_vk_xml_version();
    if (instance->renderer_info.vk_xml_version > version)
       instance->renderer_info.vk_xml_version = version;
+   if (instance->renderer_info.vk_xml_version < VN_MIN_RENDERER_VERSION) {
+      if (VN_DEBUG(INIT)) {
+         vn_log(instance, "vk xml version %d.%d.%d < %d.%d.%d",
+                VK_VERSION_MAJOR(instance->renderer_info.vk_xml_version),
+                VK_VERSION_MINOR(instance->renderer_info.vk_xml_version),
+                VK_VERSION_PATCH(instance->renderer_info.vk_xml_version),
+                VK_VERSION_MAJOR(VN_MIN_RENDERER_VERSION),
+                VK_VERSION_MINOR(VN_MIN_RENDERER_VERSION),
+                VK_VERSION_PATCH(VN_MIN_RENDERER_VERSION));
+      }
+      return VK_ERROR_INITIALIZATION_FAILED;
+   }
 
    version = vn_info_extension_spec_version("VK_EXT_command_serialization");
    if (instance->renderer_info.vk_ext_command_serialization_spec_version >



More information about the mesa-commit mailing list