diff --git a/src/nouveau/vulkan/nvk_physical_device.c b/src/nouveau/vulkan/nvk_physical_device.c index 0a520a0777c..a9ef92e3106 100644 --- a/src/nouveau/vulkan/nvk_physical_device.c +++ b/src/nouveau/vulkan/nvk_physical_device.c @@ -18,6 +18,7 @@ #include "vulkan/runtime/vk_device.h" #include "vulkan/runtime/vk_drm_syncobj.h" +#include "vulkan/runtime/vk_shader_module.h" #include "vulkan/wsi/wsi_common.h" #include @@ -189,6 +190,7 @@ nvk_get_device_extensions(const struct nvk_instance *instance, .EXT_shader_image_atomic_int64 = info->cls_eng3d >= MAXWELL_A && nvk_use_nak(info), .EXT_shader_demote_to_helper_invocation = true, + .EXT_shader_module_identifier = true, .EXT_shader_subgroup_ballot = true, .EXT_shader_subgroup_vote = true, .EXT_shader_viewport_index_layer = info->cls_eng3d >= MAXWELL_B, @@ -492,6 +494,9 @@ nvk_get_device_features(const struct nv_device_info *info, .sparseImageInt64Atomics = info->cls_eng3d >= MAXWELL_A && nvk_use_nak(info), + /* VK_EXT_shader_module_identifier */ + .shaderModuleIdentifier = true, + /* VK_EXT_texel_buffer_alignment */ .texelBufferAlignment = true, @@ -815,6 +820,13 @@ nvk_get_device_properties(const struct nvk_instance *instance, snprintf(properties->deviceName, sizeof(properties->deviceName), "%s", info->device_name); + /* VK_EXT_shader_module_identifier */ + STATIC_ASSERT(sizeof(vk_shaderModuleIdentifierAlgorithmUUID) == + sizeof(properties->shaderModuleIdentifierAlgorithmUUID)); + memcpy(properties->shaderModuleIdentifierAlgorithmUUID, + vk_shaderModuleIdentifierAlgorithmUUID, + sizeof(properties->shaderModuleIdentifierAlgorithmUUID)); + const struct { uint16_t vendor_id; uint16_t device_id;