Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/HansKristian-Work/vkd3d-proton.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans-Kristian Arntzen <post@arntzen-software.no>2022-09-15 14:57:07 +0300
committerHans-Kristian Arntzen <post@arntzen-software.no>2022-09-16 23:25:44 +0300
commitf7b0131e84653ca7579e2cd0fbb1929e3acfb065 (patch)
tree3fb67cd5862056da67bb0698d4829fddc7b47241
parent2505510d13137afa1858305f03d377a734c1dced (diff)
vkd3d: Enable VK_EXT_shader_module_identifier.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
-rw-r--r--libs/vkd3d/device.c19
-rw-r--r--libs/vkd3d/vkd3d_private.h5
-rw-r--r--libs/vkd3d/vulkan_procs.h3
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