From 4bccee123fee800d004ff53fb9e9141721f6ced3 Mon Sep 17 00:00:00 2001 From: Hyunjun Ko Date: Fri, 15 Jul 2022 17:06:09 +0900 Subject: [PATCH] turnip: expose VK_EXT_shader_module_identifier Signed-off-by: Hyunjun Ko Part-of: --- docs/features.txt | 1 + src/freedreno/vulkan/tu_device.c | 18 +++++++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/docs/features.txt b/docs/features.txt index 0dbb1b31b8b..47ba684337e 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -574,6 +574,7 @@ Khronos extensions that are not part of any Vulkan version: VK_EXT_shader_stencil_export DONE (anv/gen9+, lvp, radv, tu) VK_EXT_shader_subgroup_ballot DONE (anv, radv) VK_EXT_shader_subgroup_vote DONE (anv, radv) + VK_EXT_shader_module_identifier DONE (anv, radv, tu) VK_EXT_transform_feedback DONE (anv, lvp, radv, tu, vn) VK_EXT_vertex_attribute_divisor DONE (anv, radv, lvp, tu, v3dv) VK_EXT_vertex_input_dynamic_state DONE (lvp, radv) diff --git a/src/freedreno/vulkan/tu_device.c b/src/freedreno/vulkan/tu_device.c index eb580fed31d..4dccc2f033e 100644 --- a/src/freedreno/vulkan/tu_device.c +++ b/src/freedreno/vulkan/tu_device.c @@ -213,6 +213,7 @@ get_device_extensions(const struct tu_physical_device *device, .EXT_shader_demote_to_helper_invocation = true, .EXT_shader_stencil_export = true, .EXT_shader_viewport_index_layer = true, + .EXT_shader_module_identifier = true, .EXT_texel_buffer_alignment = true, .EXT_vertex_attribute_divisor = true, .EXT_provoking_vertex = true, @@ -903,6 +904,12 @@ tu_GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice, features->colorWriteEnable = true; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT: { + VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT *features = + (VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT *)ext; + features->shaderModuleIdentifier = true; + break; + } default: break; @@ -1352,7 +1359,16 @@ tu_GetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice, props->renderMinor = pdevice->local_minor; break; } - + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT: { + VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT *props = + (VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT *)ext; + STATIC_ASSERT(sizeof(vk_shaderModuleIdentifierAlgorithmUUID) == + sizeof(props->shaderModuleIdentifierAlgorithmUUID)); + memcpy(props->shaderModuleIdentifierAlgorithmUUID, + vk_shaderModuleIdentifierAlgorithmUUID, + sizeof(props->shaderModuleIdentifierAlgorithmUUID)); + break; + } default: break; }