diff --git a/docs/features.txt b/docs/features.txt index d793daa9ffd..4ff10ac2082 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -625,7 +625,7 @@ Khronos extensions that are not part of any Vulkan version: VK_EXT_shader_stencil_export DONE (anv, lvp, radv, tu, vn) VK_EXT_shader_subgroup_ballot DONE (anv, dzn, hasvk, lvp, nvk, radv, vn) VK_EXT_shader_subgroup_vote DONE (anv, dzn, hasvk, lvp, nvk, radv) - VK_EXT_shader_module_identifier DONE (anv, hasvk, nvk, radv, tu, v3dv) + VK_EXT_shader_module_identifier DONE (anv, hasvk, nvk, panvk, radv, tu, v3dv) VK_EXT_surface_maintenance1 DONE (anv, lvp, nvk, radv, tu, v3dv) VK_EXT_swapchain_maintenance1 DONE (anv, lvp, nvk, radv, tu, v3dv) VK_EXT_transform_feedback DONE (anv, hasvk, lvp, nvk, radv, tu, vn) diff --git a/src/panfrost/vulkan/panvk_physical_device.c b/src/panfrost/vulkan/panvk_physical_device.c index 1175dd8459a..64693267ab6 100644 --- a/src/panfrost/vulkan/panvk_physical_device.c +++ b/src/panfrost/vulkan/panvk_physical_device.c @@ -19,6 +19,7 @@ #include "vk_format.h" #include "vk_limits.h" #include "vk_log.h" +#include "vk_shader_module.h" #include "vk_util.h" #include "panvk_device.h" @@ -80,6 +81,7 @@ get_device_extensions(const struct panvk_physical_device *device, .EXT_index_type_uint8 = true, .EXT_pipeline_creation_cache_control = true, .EXT_pipeline_creation_feedback = true, + .EXT_shader_module_identifier = true, .EXT_vertex_attribute_divisor = true, }; } @@ -592,6 +594,13 @@ get_device_properties(const struct panvk_instance *instance, snprintf(properties->driverName, VK_MAX_DRIVER_NAME_SIZE, "panvk"); snprintf(properties->driverInfo, VK_MAX_DRIVER_INFO_SIZE, "Mesa " PACKAGE_VERSION MESA_GIT_SHA1); + + /* VK_EXT_shader_module_identifier */ + STATIC_ASSERT(sizeof(vk_shaderModuleIdentifierAlgorithmUUID) == + sizeof(properties->shaderModuleIdentifierAlgorithmUUID)); + memcpy(properties->shaderModuleIdentifierAlgorithmUUID, + vk_shaderModuleIdentifierAlgorithmUUID, + sizeof(properties->shaderModuleIdentifierAlgorithmUUID)); } void