From a6aa35a0910317cbec8445f2de4e441907ca12c8 Mon Sep 17 00:00:00 2001 From: Iago Toral Quiroga Date: Mon, 24 Jan 2022 11:36:37 +0100 Subject: [PATCH] v3dv: implement VK_KHR_driver_properties Reviewed-by: Juan A. Suarez Part-of: --- docs/features.txt | 2 +- src/broadcom/vulkan/v3dv_device.c | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/docs/features.txt b/docs/features.txt index ec5c2726a48..728d3a712ec 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -450,7 +450,7 @@ Vulkan 1.2 -- all DONE: anv, vn VK_KHR_create_renderpass2 DONE (anv, lvp, radv, tu, v3dv, vn) VK_KHR_depth_stencil_resolve DONE (anv, lvp, radv, tu, vn) VK_KHR_draw_indirect_count DONE (anv, lvp, radv, tu, vn) - VK_KHR_driver_properties DONE (anv, lvp, radv, vn) + VK_KHR_driver_properties DONE (anv, lvp, radv, v3dv, vn) VK_KHR_image_format_list DONE (anv, lvp, radv, tu, v3dv, vn) VK_KHR_imageless_framebuffer DONE (anv, lvp, radv, tu, vn) VK_KHR_sampler_mirror_clamp_to_edge DONE (anv, lvp, radv, tu, v3dv, vn) diff --git a/src/broadcom/vulkan/v3dv_device.c b/src/broadcom/vulkan/v3dv_device.c index 0ea21f67827..3b6a7aadcaf 100644 --- a/src/broadcom/vulkan/v3dv_device.c +++ b/src/broadcom/vulkan/v3dv_device.c @@ -46,6 +46,7 @@ #include "drm-uapi/v3d_drm.h" #include "format/u_format.h" #include "vk_util.h" +#include "git_sha1.h" #include "util/build_id.h" #include "util/debug.h" @@ -120,6 +121,7 @@ get_device_extensions(const struct v3dv_physical_device *device, .KHR_create_renderpass2 = true, .KHR_dedicated_allocation = true, .KHR_device_group = true, + .KHR_driver_properties = true, .KHR_descriptor_update_template = true, .KHR_external_fence = true, .KHR_external_fence_fd = true, @@ -1475,6 +1477,23 @@ v3dv_GetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice, props->maxCustomBorderColorSamplers = V3D_MAX_TEXTURE_SAMPLERS; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES: { + VkPhysicalDeviceDriverPropertiesKHR *props = + (VkPhysicalDeviceDriverPropertiesKHR *)ext; + props->driverID = VK_DRIVER_ID_MESA_V3DV; + memset(props->driverName, 0, VK_MAX_DRIVER_NAME_SIZE_KHR); + snprintf(props->driverName, VK_MAX_DRIVER_NAME_SIZE_KHR, "V3DV Mesa"); + memset(props->driverInfo, 0, VK_MAX_DRIVER_INFO_SIZE_KHR); + snprintf(props->driverInfo, VK_MAX_DRIVER_INFO_SIZE_KHR, + "Mesa " PACKAGE_VERSION MESA_GIT_SHA1); + props->conformanceVersion = (VkConformanceVersionKHR) { + .major = 1, + .minor = 2, + .subminor = 7, + .patch = 1, + }; + break; + } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT: { VkPhysicalDeviceProvokingVertexPropertiesEXT *props = (VkPhysicalDeviceProvokingVertexPropertiesEXT *)ext;