v3dv: implement VK_EXT_shader_module_identifier

Passes `dEQP-VK.*.shader_module_identifier.*`

Signed-off-by: Eric Engestrom <eric@igalia.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18458>
This commit is contained in:
Eric Engestrom 2022-07-03 14:35:50 +01:00 committed by Marge Bot
parent 0704926a9c
commit 28ed514c3c
2 changed files with 19 additions and 1 deletions

View file

@ -582,7 +582,7 @@ Khronos extensions that are not part of any Vulkan version:
VK_EXT_shader_stencil_export DONE (anv/gen9+, lvp, radv, tu, vn)
VK_EXT_shader_subgroup_ballot DONE (anv, lvp, radv)
VK_EXT_shader_subgroup_vote DONE (anv, lvp, radv)
VK_EXT_shader_module_identifier DONE (anv, radv, tu)
VK_EXT_shader_module_identifier DONE (anv, radv, tu, v3dv)
VK_EXT_transform_feedback DONE (anv, lvp, radv, tu, vn)
VK_EXT_vertex_attribute_divisor DONE (anv, dzn, panvk, radv, lvp, tu, v3dv, vn)
VK_EXT_vertex_input_dynamic_state DONE (lvp, radv, tu)

View file

@ -181,6 +181,7 @@ get_device_extensions(const struct v3dv_physical_device *device,
.EXT_private_data = true,
.EXT_provoking_vertex = true,
.EXT_separate_stencil_usage = true,
.EXT_shader_module_identifier = true,
.EXT_texel_buffer_alignment = true,
.EXT_tooling_info = true,
.EXT_vertex_attribute_divisor = true,
@ -1306,6 +1307,13 @@ v3dv_GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT: {
VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT *features =
(VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT *)ext;
features->shaderModuleIdentifier = true;
break;
}
default:
v3dv_debug_ignored_stype(ext->sType);
break;
@ -1703,6 +1711,16 @@ v3dv_GetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice,
props->uniformTexelBufferOffsetSingleTexelAlignment = false;
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:
v3dv_debug_ignored_stype(ext->sType);
break;