diff --git a/VP_D3D12_VKD3D_PROTON_profile.json b/VP_D3D12_VKD3D_PROTON_profile.json index d01a77a41e..3311c43786 100644 --- a/VP_D3D12_VKD3D_PROTON_profile.json +++ b/VP_D3D12_VKD3D_PROTON_profile.json @@ -1,5 +1,5 @@ { - "$schema": "https://schema.khronos.org/vulkan/profiles-0.8.1-250.json#", + "$schema": "https://schema.khronos.org/vulkan/profiles-0.8-latest.json#", "capabilities": { "baseline_features": { "extensions": { @@ -176,7 +176,8 @@ "VK_KHR_fragment_shading_rate": 1, "VK_EXT_pipeline_library_group_handles": 1, "VK_KHR_ray_tracing_maintenance1": 1, - "VK_EXT_mesh_shader": 1 + "VK_EXT_mesh_shader": 1, + "VK_EXT_conservative_rasterization": 1 }, "formats": { "VK_FORMAT_R32G32_SFLOAT": { @@ -447,6 +448,20 @@ } } }, + "shader_model_67": { + "extensions": { + "VK_KHR_shader_maximal_reconvergence": 1, + "VK_KHR_shader_quad_control": 1 + }, + "features": { + "VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR": { + "shaderMaximalReconvergence": true + }, + "VkPhysicalDeviceShaderQuadControlFeaturesKHR": { + "shaderQuadControl": true + } + } + }, "optimal_performance": { "extensions": { "VK_EXT_descriptor_buffer": 1, @@ -732,6 +747,7 @@ "fl_12_2_properties", "shader_model_60", "shader_model_66", + "shader_model_67", "optimal_performance", "optional", "optional_amd" @@ -753,6 +769,7 @@ "fl_12_2_properties", "shader_model_60", "shader_model_66", + "shader_model_67", "optimal_performance", "optional", "optional_nv" @@ -764,6 +781,12 @@ "Hans-Kristian Arntzen": { "company": "Valve" } }, "history": [ + { + "revision": 2, + "date": "2024-02-09", + "author": "Hans-Kristian Arntzen", + "comment": "Add SM 6.7" + }, { "revision": 1, "date": "2023-05-23", diff --git a/profiles/PROFILES.md b/profiles/PROFILES.md index 42874f969f..9c619f76e5 100644 --- a/profiles/PROFILES.md +++ b/profiles/PROFILES.md @@ -1,7 +1,7 @@

LunarG

-

Copyright (c) 2021-2023 LunarG, Inc.

+

Copyright (c) 2021-2024 LunarG, Inc.

@@ -20,6 +20,7 @@ | Description | Minimum baseline to create a device at all. | Minimum baseline to create a device with FL 11.1. | Minimum baseline to create a device with FL 12.0. | Requirement to create a FL 12.0 device with optimal performance. Shader model 6.6 and optimal descriptor model. | Minimum baseline to create a device with FL 12.1. | Minimum baseline to create a device with FL 12.2 (TODO: missing sampler feedback). | Requirement to create a FL 12.2 device with optimal performance (TODO: missing sampler feedback). Shader model 6.6 and optimal descriptor model. | Represents the maximum feature set vkd3d-proton takes advantage of on NVIDIA. Expected to be supported on latest beta drivers on Turing+. | Represents the maximum feature set vkd3d-proton takes advantage of on RADV. Expected to be supported on latest Mesa Git on RDNA2+. | | Version | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | | Required API version | 1.3.204 | 1.3.204 | 1.3.204 | 1.3.204 | 1.3.204 | 1.3.204 | 1.3.204 | 1.3.204 | 1.3.204 | +| Required profiles | | | | | | | | | | | Fallback profiles | - | - | - | - | - | - | - | - | - | ## Vulkan Profiles Extensions @@ -83,7 +84,9 @@ | [VK_KHR_shader_float16_int8](https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VK_KHR_shader_float16_int8.html) | 1.2 Core | 1.2 Core | 1.2 Core | 1.2 Core | 1.2 Core | 1.2 Core | 1.2 Core | 1.2 Core | 1.2 Core | | [VK_KHR_shader_float_controls](https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VK_KHR_shader_float_controls.html) | 1.2 Core | 1.2 Core | 1.2 Core | 1.2 Core | 1.2 Core | 1.2 Core | 1.2 Core | 1.2 Core | 1.2 Core | | [VK_KHR_shader_integer_dot_product](https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VK_KHR_shader_integer_dot_product.html) | 1.3 Core | 1.3 Core | 1.3 Core | 1.3 Core | 1.3 Core | 1.3 Core | 1.3 Core | 1.3 Core | 1.3 Core | +| [VK_KHR_shader_maximal_reconvergence](https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VK_KHR_shader_maximal_reconvergence.html) | :x: | :x: | :x: | :x: | :x: | :x: | :x: | :heavy_check_mark: | :heavy_check_mark: | | [VK_KHR_shader_non_semantic_info](https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VK_KHR_shader_non_semantic_info.html) | 1.3 Core | 1.3 Core | 1.3 Core | 1.3 Core | 1.3 Core | 1.3 Core | 1.3 Core | 1.3 Core | 1.3 Core | +| [VK_KHR_shader_quad_control](https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VK_KHR_shader_quad_control.html) | :x: | :x: | :x: | :x: | :x: | :x: | :x: | :heavy_check_mark: | :heavy_check_mark: | | [VK_KHR_shader_subgroup_extended_types](https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VK_KHR_shader_subgroup_extended_types.html) | 1.2 Core | 1.2 Core | 1.2 Core | 1.2 Core | 1.2 Core | 1.2 Core | 1.2 Core | 1.2 Core | 1.2 Core | | [VK_KHR_shader_terminate_invocation](https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VK_KHR_shader_terminate_invocation.html) | 1.3 Core | 1.3 Core | 1.3 Core | 1.3 Core | 1.3 Core | 1.3 Core | 1.3 Core | 1.3 Core | 1.3 Core | | [VK_KHR_spirv_1_4](https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VK_KHR_spirv_1_4.html) | 1.2 Core | 1.2 Core | 1.2 Core | 1.2 Core | 1.2 Core | 1.2 Core | 1.2 Core | 1.2 Core | 1.2 Core | @@ -291,6 +294,10 @@ | [shaderInt8](https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceShaderFloat16Int8Features.html) | :x: | :x: | :x: | :warning: | :x: | :x: | :warning: | :warning: | :warning: | | **VK_KHR_shader_integer_dot_product** | | [shaderIntegerDotProduct](https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceShaderIntegerDotProductFeatures.html) | :x: | :x: | :x: | :warning: | :x: | :x: | :warning: | :warning: | :warning: | +| **VK_KHR_shader_maximal_reconvergence** | +| [shaderMaximalReconvergence](https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR.html) | :x: | :x: | :x: | :x: | :x: | :x: | :x: | :heavy_check_mark: | :heavy_check_mark: | +| **VK_KHR_shader_quad_control** | +| [shaderQuadControl](https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceShaderQuadControlFeaturesKHR.html) | :x: | :x: | :x: | :x: | :x: | :x: | :x: | :heavy_check_mark: | :heavy_check_mark: | | **VK_KHR_shader_subgroup_extended_types** | | [shaderSubgroupExtendedTypes](https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures.html) | :x: | :x: | :x: | :x: | :x: | :x: | :x: | :warning: | :warning: | | **VK_KHR_synchronization2** | @@ -299,6 +306,9 @@ | [timelineSemaphore](https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceTimelineSemaphoreFeatures.html) | :warning: | :warning: | :warning: | :warning: | :warning: | :warning: | :warning: | :warning: | :warning: | | **VK_KHR_uniform_buffer_standard_layout** | | [uniformBufferStandardLayout](https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceUniformBufferStandardLayoutFeatures.html) | :x: | :x: | :warning: | :warning: | :warning: | :warning: | :warning: | :warning: | :warning: | +| **VK_KHR_vertex_attribute_divisor** | +| [vertexAttributeInstanceRateDivisor](https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR.html) | :warning: | :warning: | :warning: | :warning: | :warning: | :warning: | :warning: | :warning: | :warning: | +| [vertexAttributeInstanceRateZeroDivisor](https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR.html) | :warning: | :warning: | :warning: | :warning: | :warning: | :warning: | :warning: | :warning: | :warning: | | **VK_KHR_vulkan_memory_model** | | [vulkanMemoryModel](https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceVulkanMemoryModelFeatures.html) | :warning: | :warning: | :warning: | :warning: | :warning: | :warning: | :warning: | :warning: | :warning: | | [vulkanMemoryModelDeviceScope](https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceVulkanMemoryModelFeatures.html) | :warning: | :warning: | :warning: | :warning: | :warning: | :warning: | :warning: | :warning: | :warning: | @@ -382,8 +392,8 @@ | [geometryStreams](https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceTransformFeedbackFeaturesEXT.html) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | [transformFeedback](https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceTransformFeedbackFeaturesEXT.html) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | **VK_EXT_vertex_attribute_divisor** | -| [vertexAttributeInstanceRateDivisor](https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT.html) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | -| [vertexAttributeInstanceRateZeroDivisor](https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT.html) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | +| [vertexAttributeInstanceRateDivisor](https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR.html) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | +| [vertexAttributeInstanceRateZeroDivisor](https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR.html) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | **VK_AMD_device_coherent_memory** | | [deviceCoherentMemory](https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceCoherentMemoryFeaturesAMD.html) | :x: | :x: | :x: | :x: | :x: | :x: | :x: | :x: | :heavy_check_mark: | | **VK_NV_compute_shader_derivatives** | @@ -409,14 +419,15 @@ |----------|---------------------------|---------------------------|---------------------------|--------------------------|---------------------------|---------------------------|--------------------------|---------------------|-----------------------| | **Vulkan 1.0** | | [bufferImageGranularity (min,mul)](https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceLimits.html) | 65536 | 65536 | 65536 | 65536 | 65536 | 65536 | 65536 | 65536 | 65536 | -| [residencyAlignedMipSize](https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceSparseProperties.html) | - | - | - | - | - | - | - | - | - | -| [residencyNonResidentStrict](https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceSparseProperties.html) | - | - | - | - | - | - | - | - | - | -| [residencyStandard2DBlockShape](https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceSparseProperties.html) | - | - | - | - | - | - | - | - | - | -| [residencyStandard3DBlockShape](https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceSparseProperties.html) | - | - | - | - | - | - | - | - | - | +| [maxPushConstantsSize (max)](https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceLimits.html) | - | - | - | 256 | - | - | - | - | - | +| [residencyAlignedMipSize (not)](https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceSparseProperties.html) | - | - | VK_FALSE | VK_FALSE | VK_FALSE | VK_FALSE | VK_FALSE | VK_FALSE | VK_FALSE | +| [residencyNonResidentStrict](https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceSparseProperties.html) | - | - | VK_TRUE | VK_TRUE | VK_TRUE | VK_TRUE | VK_TRUE | VK_TRUE | VK_TRUE | +| [residencyStandard2DBlockShape](https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceSparseProperties.html) | - | - | VK_TRUE | VK_TRUE | VK_TRUE | VK_TRUE | VK_TRUE | VK_TRUE | VK_TRUE | +| [residencyStandard3DBlockShape](https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceSparseProperties.html) | - | - | - | - | - | VK_TRUE | VK_TRUE | VK_TRUE | VK_TRUE | | **Vulkan 1.1** | | [subgroupSize (max,pot)](https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceSubgroupProperties.html) | 1 | 1 | - | - | - | - | - | - | - | -| [subgroupSupportedOperations](https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceVulkan11Properties.html) | (VK_SUBGROUP_FEATURE_BASIC_BIT) | (VK_SUBGROUP_FEATURE_BASIC_BIT) | (VK_SUBGROUP_FEATURE_BALLOT_BIT \| VK_SUBGROUP_FEATURE_BASIC_BIT \| VK_SUBGROUP_FEATURE_VOTE_BIT \| VK_SUBGROUP_FEATURE_SHUFFLE_BIT \| VK_SUBGROUP_FEATURE_QUAD_BIT \| VK_SUBGROUP_FEATURE_ARITHMETIC_BIT) | - | (VK_SUBGROUP_FEATURE_BALLOT_BIT \| VK_SUBGROUP_FEATURE_BASIC_BIT \| VK_SUBGROUP_FEATURE_VOTE_BIT \| VK_SUBGROUP_FEATURE_SHUFFLE_BIT \| VK_SUBGROUP_FEATURE_QUAD_BIT \| VK_SUBGROUP_FEATURE_ARITHMETIC_BIT) | (VK_SUBGROUP_FEATURE_BALLOT_BIT \| VK_SUBGROUP_FEATURE_BASIC_BIT \| VK_SUBGROUP_FEATURE_VOTE_BIT \| VK_SUBGROUP_FEATURE_SHUFFLE_BIT \| VK_SUBGROUP_FEATURE_QUAD_BIT \| VK_SUBGROUP_FEATURE_ARITHMETIC_BIT) | - | - | - | -| [subgroupSupportedStages](https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceVulkan11Properties.html) | - | - | (VK_SHADER_STAGE_COMPUTE_BIT \| VK_SHADER_STAGE_FRAGMENT_BIT) | - | (VK_SHADER_STAGE_COMPUTE_BIT \| VK_SHADER_STAGE_FRAGMENT_BIT) | (VK_SHADER_STAGE_COMPUTE_BIT \| VK_SHADER_STAGE_FRAGMENT_BIT) | - | - | - | +| [subgroupSupportedOperations](https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceVulkan11Properties.html) | (VK_SUBGROUP_FEATURE_BASIC_BIT) | (VK_SUBGROUP_FEATURE_BASIC_BIT) | (VK_SUBGROUP_FEATURE_BALLOT_BIT | VK_SUBGROUP_FEATURE_BASIC_BIT | VK_SUBGROUP_FEATURE_VOTE_BIT | VK_SUBGROUP_FEATURE_SHUFFLE_BIT | VK_SUBGROUP_FEATURE_QUAD_BIT | VK_SUBGROUP_FEATURE_ARITHMETIC_BIT) | - | (VK_SUBGROUP_FEATURE_BALLOT_BIT | VK_SUBGROUP_FEATURE_BASIC_BIT | VK_SUBGROUP_FEATURE_VOTE_BIT | VK_SUBGROUP_FEATURE_SHUFFLE_BIT | VK_SUBGROUP_FEATURE_QUAD_BIT | VK_SUBGROUP_FEATURE_ARITHMETIC_BIT) | (VK_SUBGROUP_FEATURE_BALLOT_BIT | VK_SUBGROUP_FEATURE_BASIC_BIT | VK_SUBGROUP_FEATURE_VOTE_BIT | VK_SUBGROUP_FEATURE_SHUFFLE_BIT | VK_SUBGROUP_FEATURE_QUAD_BIT | VK_SUBGROUP_FEATURE_ARITHMETIC_BIT) | - | - | - | +| [subgroupSupportedStages](https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceVulkan11Properties.html) | - | - | (VK_SHADER_STAGE_COMPUTE_BIT | VK_SHADER_STAGE_FRAGMENT_BIT) | - | (VK_SHADER_STAGE_COMPUTE_BIT | VK_SHADER_STAGE_FRAGMENT_BIT) | (VK_SHADER_STAGE_COMPUTE_BIT | VK_SHADER_STAGE_FRAGMENT_BIT) | - | - | - | | **Vulkan 1.2** | | [denormBehaviorIndependence (exact)](https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceFloatControlsProperties.html) | - | - | - | - | - | - | - | - | VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY | | [filterMinmaxSingleComponentFormats](https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceSamplerFilterMinmaxProperties.html) | - | - | VK_TRUE | VK_TRUE | VK_TRUE | VK_TRUE | VK_TRUE | VK_TRUE | VK_TRUE | diff --git a/profiles/generate_profile_solution.sh b/profiles/generate_profile_solution.sh index 508bfaa0cc..d47c8076bf 100755 --- a/profiles/generate_profile_solution.sh +++ b/profiles/generate_profile_solution.sh @@ -10,7 +10,7 @@ fi # Install Vulkan-Profiles to ~/.local prefix. python3 "${VULKAN_PROFILE_PREFIX}/share/vulkan/registry/gen_profiles_solution.py" \ - --registry subprojects/Vulkan-Headers/registry/vk.xml \ + --registry khronos/Vulkan-Headers/registry/vk.xml \ --input . \ --output-library-inc profiles/vulkan \ --output-library-src profiles/vulkan \