.EXT_shader_atomic_float = true,
.EXT_shader_atomic_float2 = device->info.ver >= 9,
.EXT_shader_demote_to_helper_invocation = true,
+ .EXT_shader_module_identifier = true,
.EXT_shader_stencil_export = device->info.ver >= 9,
.EXT_shader_subgroup_ballot = true,
.EXT_shader_subgroup_vote = true,
break;
}
+ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT: {
+ VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT *features =
+ (VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT *)ext;
+ features->shaderModuleIdentifier = true;
+ break;
+ }
+
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR: {
VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR *features =
(VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR *)ext;
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;
+ }
+
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT: {
VkPhysicalDeviceTransformFeedbackPropertiesEXT *props =
(VkPhysicalDeviceTransformFeedbackPropertiesEXT *)ext;