diff options
author | Chia-I Wu <olvaffe@gmail.com> | 2021-04-09 22:49:21 -0700 |
---|---|---|
committer | Marge Bot <eric+marge@anholt.net> | 2021-04-13 01:03:52 +0000 |
commit | 51216d656d702732169cac4c7a30607cbac0f077 (patch) | |
tree | 679795abef66aabf08dd1c3f144b8897ddc9fd98 | |
parent | f86e0a519d7f8af76dfabcf996f8fd32dd971de5 (diff) |
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@gmail.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Ryan Neph <ryanneph@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10192>
-rw-r--r-- | src/virtio/vulkan/vn_device.c | 12 |
1 files changed, 12 insertions, 0 deletions
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 > |