diff options
author | Hans-Kristian Arntzen <post@arntzen-software.no> | 2022-09-15 14:57:07 +0300 |
---|---|---|
committer | Hans-Kristian Arntzen <post@arntzen-software.no> | 2022-09-16 23:25:44 +0300 |
commit | f7b0131e84653ca7579e2cd0fbb1929e3acfb065 (patch) | |
tree | 3fb67cd5862056da67bb0698d4829fddc7b47241 | |
parent | 2505510d13137afa1858305f03d377a734c1dced (diff) |
vkd3d: Enable VK_EXT_shader_module_identifier.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
-rw-r--r-- | libs/vkd3d/device.c | 19 | ||||
-rw-r--r-- | libs/vkd3d/vkd3d_private.h | 5 | ||||
-rw-r--r-- | libs/vkd3d/vulkan_procs.h | 3 |
3 files changed, 27 insertions, 0 deletions
diff --git a/libs/vkd3d/device.c b/libs/vkd3d/device.c index dd9e4c57..f0af5302 100644 --- a/libs/vkd3d/device.c +++ b/libs/vkd3d/device.c @@ -122,6 +122,8 @@ static const struct vkd3d_optional_extension_info optional_device_extensions[] = VK_EXTENSION(EXT_MESH_SHADER, EXT_mesh_shader), VK_EXTENSION(EXT_MUTABLE_DESCRIPTOR_TYPE, EXT_mutable_descriptor_type), VK_EXTENSION(EXT_HDR_METADATA, EXT_hdr_metadata), + VK_EXTENSION(EXT_PIPELINE_CREATION_CACHE_CONTROL, EXT_pipeline_creation_cache_control), + VK_EXTENSION(EXT_SHADER_MODULE_IDENTIFIER, EXT_shader_module_identifier), /* AMD extensions */ VK_EXTENSION(AMD_BUFFER_MARKER, AMD_buffer_marker), VK_EXTENSION(AMD_DEVICE_COHERENT_MEMORY, AMD_device_coherent_memory), @@ -1545,6 +1547,23 @@ static void vkd3d_physical_device_info_init(struct vkd3d_physical_device_info *i vk_prepend_struct(&info->properties2, &info->mesh_shader_properties); } + if (vulkan_info->EXT_pipeline_creation_cache_control) + { + info->pipeline_creation_cache_control_features.sType = + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES; + vk_prepend_struct(&info->features2, &info->pipeline_creation_cache_control_features); + } + + if (vulkan_info->EXT_shader_module_identifier) + { + info->shader_module_identifier_features.sType = + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT; + info->shader_module_identifier_properties.sType = + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT; + vk_prepend_struct(&info->features2, &info->shader_module_identifier_features); + vk_prepend_struct(&info->properties2, &info->shader_module_identifier_properties); + } + /* Core in Vulkan 1.1. */ info->shader_draw_parameters_features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES; vk_prepend_struct(&info->features2, &info->shader_draw_parameters_features); diff --git a/libs/vkd3d/vkd3d_private.h b/libs/vkd3d/vkd3d_private.h index 3fa9c2c0..beaeced0 100644 --- a/libs/vkd3d/vkd3d_private.h +++ b/libs/vkd3d/vkd3d_private.h @@ -165,6 +165,8 @@ struct vkd3d_vulkan_info bool EXT_mesh_shader; bool EXT_mutable_descriptor_type; /* EXT promotion of VALVE one. */ bool EXT_hdr_metadata; + bool EXT_pipeline_creation_cache_control; + bool EXT_shader_module_identifier; /* AMD device extensions */ bool AMD_buffer_marker; bool AMD_device_coherent_memory; @@ -3343,6 +3345,7 @@ struct vkd3d_physical_device_info VkPhysicalDeviceMaintenance4PropertiesKHR maintenance4_properties; VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV device_generated_commands_properties_nv; VkPhysicalDeviceMeshShaderPropertiesEXT mesh_shader_properties; + VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT shader_module_identifier_properties; VkPhysicalDeviceProperties2KHR properties2; @@ -3389,6 +3392,8 @@ struct vkd3d_physical_device_info VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR ray_tracing_maintenance1_features; VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV device_generated_commands_features_nv; VkPhysicalDeviceMeshShaderFeaturesEXT mesh_shader_features; + VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT pipeline_creation_cache_control_features; + VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT shader_module_identifier_features; VkPhysicalDeviceFeatures2 features2; diff --git a/libs/vkd3d/vulkan_procs.h b/libs/vkd3d/vulkan_procs.h index 38235bc6..b1f3d472 100644 --- a/libs/vkd3d/vulkan_procs.h +++ b/libs/vkd3d/vulkan_procs.h @@ -332,6 +332,9 @@ VK_DEVICE_EXT_PFN(vkDestroyIndirectCommandsLayoutNV) VK_DEVICE_EXT_PFN(vkGetGeneratedCommandsMemoryRequirementsNV) VK_DEVICE_EXT_PFN(vkCmdExecuteGeneratedCommandsNV) +/* VK_EXT_shader_module_identifier */ +VK_DEVICE_EXT_PFN(vkGetShaderModuleIdentifierEXT) + #undef VK_INSTANCE_PFN #undef VK_INSTANCE_EXT_PFN #undef VK_DEVICE_PFN |