diff --git a/src/panfrost/vulkan/panvk_instance.c b/src/panfrost/vulkan/panvk_instance.c index 0755cbff265..8045c0ad65d 100644 --- a/src/panfrost/vulkan/panvk_instance.c +++ b/src/panfrost/vulkan/panvk_instance.c @@ -42,7 +42,7 @@ static const struct debug_control panvk_debug_options[] = { VKAPI_ATTR VkResult VKAPI_CALL panvk_EnumerateInstanceVersion(uint32_t *pApiVersion) { - *pApiVersion = VK_MAKE_VERSION(1, 0, VK_HEADER_VERSION); + *pApiVersion = panvk_get_vk_version(); return VK_SUCCESS; } diff --git a/src/panfrost/vulkan/panvk_physical_device.c b/src/panfrost/vulkan/panvk_physical_device.c index 9fa6bdbbb5b..1dbc2797ae4 100644 --- a/src/panfrost/vulkan/panvk_physical_device.c +++ b/src/panfrost/vulkan/panvk_physical_device.c @@ -598,7 +598,7 @@ panvk_GetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice, }; pProperties->properties = (VkPhysicalDeviceProperties){ - .apiVersion = VK_MAKE_VERSION(1, 0, VK_HEADER_VERSION), + .apiVersion = panvk_get_vk_version(), .driverVersion = vk_get_driver_version(), /* Arm vendor ID. */ diff --git a/src/panfrost/vulkan/panvk_physical_device.h b/src/panfrost/vulkan/panvk_physical_device.h index a8d49bee44b..f3b6b5429b3 100644 --- a/src/panfrost/vulkan/panvk_physical_device.h +++ b/src/panfrost/vulkan/panvk_physical_device.h @@ -12,6 +12,7 @@ #include "vk_physical_device.h" #include "vk_sync.h" +#include "vk_util.h" #include "wsi_common.h" #include "lib/kmod/pan_kmod.h" @@ -57,6 +58,16 @@ to_panvk_physical_device(struct vk_physical_device *phys_dev) return container_of(phys_dev, struct panvk_physical_device, vk); } +static inline uint32_t +panvk_get_vk_version() +{ + const uint32_t version_override = vk_get_version_override(); + if (version_override) + return version_override; + + return VK_MAKE_API_VERSION(0, 1, 0, VK_HEADER_VERSION); +} + VkResult panvk_physical_device_init(struct panvk_physical_device *device, struct panvk_instance *instance, drmDevicePtr drm_device);