diff options
-rw-r--r-- | include/vulkan/vulkan.h | 50 | ||||
-rw-r--r-- | src/vulkan/registry/vk.xml | 159 |
2 files changed, 181 insertions, 28 deletions
diff --git a/include/vulkan/vulkan.h b/include/vulkan/vulkan.h index e1398c68bac..048866c444f 100644 --- a/include/vulkan/vulkan.h +++ b/include/vulkan/vulkan.h @@ -43,7 +43,7 @@ extern "C" { #define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff) #define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff) // Version of this file -#define VK_HEADER_VERSION 63 +#define VK_HEADER_VERSION 64 #define VK_NULL_HANDLE 0 @@ -5194,7 +5194,7 @@ VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2KHR( #define VK_EXT_debug_report 1 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT) -#define VK_EXT_DEBUG_REPORT_SPEC_VERSION 8 +#define VK_EXT_DEBUG_REPORT_SPEC_VERSION 9 #define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report" #define VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT #define VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT @@ -5488,6 +5488,52 @@ typedef struct VkTextureLODGatherFormatPropertiesAMD { +#define VK_AMD_shader_info 1 +#define VK_AMD_SHADER_INFO_SPEC_VERSION 1 +#define VK_AMD_SHADER_INFO_EXTENSION_NAME "VK_AMD_shader_info" + + +typedef enum VkShaderInfoTypeAMD { + VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0, + VK_SHADER_INFO_TYPE_BINARY_AMD = 1, + VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2, + VK_SHADER_INFO_TYPE_BEGIN_RANGE_AMD = VK_SHADER_INFO_TYPE_STATISTICS_AMD, + VK_SHADER_INFO_TYPE_END_RANGE_AMD = VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD, + VK_SHADER_INFO_TYPE_RANGE_SIZE_AMD = (VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD - VK_SHADER_INFO_TYPE_STATISTICS_AMD + 1), + VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 0x7FFFFFFF +} VkShaderInfoTypeAMD; + +typedef struct VkShaderResourceUsageAMD { + uint32_t numUsedVgprs; + uint32_t numUsedSgprs; + uint32_t ldsSizePerLocalWorkGroup; + size_t ldsUsageSizeInBytes; + size_t scratchMemUsageInBytes; +} VkShaderResourceUsageAMD; + +typedef struct VkShaderStatisticsInfoAMD { + VkShaderStageFlags shaderStageMask; + VkShaderResourceUsageAMD resourceUsage; + uint32_t numPhysicalVgprs; + uint32_t numPhysicalSgprs; + uint32_t numAvailableVgprs; + uint32_t numAvailableSgprs; + uint32_t computeWorkGroupSize[3]; +} VkShaderStatisticsInfoAMD; + + +typedef VkResult (VKAPI_PTR *PFN_vkGetShaderInfoAMD)(VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderInfoAMD( + VkDevice device, + VkPipeline pipeline, + VkShaderStageFlagBits shaderStage, + VkShaderInfoTypeAMD infoType, + size_t* pInfoSize, + void* pInfo); +#endif + #define VK_AMD_shader_image_load_store_lod 1 #define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION 1 #define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME "VK_AMD_shader_image_load_store_lod" diff --git a/src/vulkan/registry/vk.xml b/src/vulkan/registry/vk.xml index 88e0997148a..d2aba617c9a 100644 --- a/src/vulkan/registry/vk.xml +++ b/src/vulkan/registry/vk.xml @@ -107,7 +107,7 @@ private version is maintained in the 1.0 branch of the member gitlab server. <type category="define">// Vulkan 1.0 version number #define <name>VK_API_VERSION_1_0</name> <type>VK_MAKE_VERSION</type>(1, 0, 0)// Patch version should always be set to 0</type> <type category="define">// Version of this file -#define <name>VK_HEADER_VERSION</name> 63</type> +#define <name>VK_HEADER_VERSION</name> 64</type> <type category="define"> #define <name>VK_DEFINE_HANDLE</name>(object) typedef struct object##_T* object;</type> @@ -386,6 +386,7 @@ private version is maintained in the 1.0 branch of the member gitlab server. <type name="VkPointClippingBehaviorKHR" category="enum"/> <type name="VkCoverageModulationModeNV" category="enum"/> <type name="VkValidationCacheHeaderVersionEXT" category="enum"/> + <type name="VkShaderInfoTypeAMD" category="enum"/> <type name="VkQueueGlobalPriorityEXT" category="enum"/> <comment>WSI extensions</comment> @@ -1251,7 +1252,7 @@ private version is maintained in the 1.0 branch of the member gitlab server. <member><type>VkBool32</type> <name>shaderInt64</name><comment>64-bit integers in shaders</comment></member> <member><type>VkBool32</type> <name>shaderInt16</name><comment>16-bit integers in shaders</comment></member> <member><type>VkBool32</type> <name>shaderResourceResidency</name><comment>shader can use texture operations that return resource residency information (requires sparseNonResident support)</comment></member> - <member><type>VkBool32</type> <name>shaderResourceMinLod</name><comment>shader can use texture operations that specify minimum resource level of detail</comment></member> + <member><type>VkBool32</type> <name>shaderResourceMinLod</name><comment>shader can use texture operations that specify minimum resource LOD</comment></member> <member><type>VkBool32</type> <name>sparseBinding</name><comment>Sparse resources support: Resource memory can be managed at opaque page level rather than object level</comment></member> <member><type>VkBool32</type> <name>sparseResidencyBuffer</name><comment>Sparse resources support: GPU can access partially resident buffers </comment></member> <member><type>VkBool32</type> <name>sparseResidencyImage2D</name><comment>Sparse resources support: GPU can access partially resident 2D (non-MSAA non-depth/stencil) images </comment></member> @@ -1341,7 +1342,7 @@ private version is maintained in the 1.0 branch of the member gitlab server. <member><type>uint32_t</type> <name>mipmapPrecisionBits</name><comment>number bits of precision for selecting mipmap weights</comment></member> <member><type>uint32_t</type> <name>maxDrawIndexedIndexValue</name><comment>max index value for indexed draw calls (for 32-bit indices)</comment></member> <member><type>uint32_t</type> <name>maxDrawIndirectCount</name><comment>max draw count for indirect draw calls</comment></member> - <member><type>float</type> <name>maxSamplerLodBias</name><comment>max absolute sampler level of detail bias</comment></member> + <member><type>float</type> <name>maxSamplerLodBias</name><comment>max absolute sampler LOD bias</comment></member> <member><type>float</type> <name>maxSamplerAnisotropy</name><comment>max degree of sampler anisotropy</comment></member> <member><type>uint32_t</type> <name>maxViewports</name><comment>max number of active viewports</comment></member> <member><type>uint32_t</type> <name>maxViewportDimensions</name>[2]<comment>max viewport dimensions (x,y)</comment></member> @@ -2624,6 +2625,22 @@ private version is maintained in the 1.0 branch of the member gitlab server. <member><type>int</type> <name>format</name></member> <member><type>int</type> <name>usage</name></member> </type> + <type category="struct" name="VkShaderResourceUsageAMD" returnedonly="true"> + <member><type>uint32_t</type> <name>numUsedVgprs</name></member> + <member><type>uint32_t</type> <name>numUsedSgprs</name></member> + <member><type>uint32_t</type> <name>ldsSizePerLocalWorkGroup</name></member> + <member><type>size_t</type> <name>ldsUsageSizeInBytes</name></member> + <member><type>size_t</type> <name>scratchMemUsageInBytes</name></member> + </type> + <type category="struct" name="VkShaderStatisticsInfoAMD" returnedonly="true"> + <member><type>VkShaderStageFlags</type> <name>shaderStageMask</name></member> + <member><type>VkShaderResourceUsageAMD</type> <name>resourceUsage</name></member> + <member><type>uint32_t</type> <name>numPhysicalVgprs</name></member> + <member><type>uint32_t</type> <name>numPhysicalSgprs</name></member> + <member><type>uint32_t</type> <name>numAvailableVgprs</name></member> + <member><type>uint32_t</type> <name>numAvailableSgprs</name></member> + <member><type>uint32_t</type> <name>computeWorkGroupSize</name>[3]</member> + </type> <type category="struct" name="VkDeviceQueueGlobalPriorityCreateInfoEXT" structextends="VkDeviceQueueCreateInfo"> <member values="VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member> <member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure --> @@ -3655,6 +3672,11 @@ private version is maintained in the 1.0 branch of the member gitlab server. <enums name="VkValidationCacheHeaderVersionEXT" type="enum"> <enum value="1" name="VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT"/> </enums> + <enums name="VkShaderInfoTypeAMD" type="enum"> + <enum value="0" name="VK_SHADER_INFO_TYPE_STATISTICS_AMD"/> + <enum value="1" name="VK_SHADER_INFO_TYPE_BINARY_AMD"/> + <enum value="2" name="VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD"/> + </enums> <enums name="VkQueueGlobalPriorityEXT" type="enum"> <enum value="128" name="VK_QUEUE_GLOBAL_PRIORITY_LOW"/> <enum value="256" name="VK_QUEUE_GLOBAL_PRIORITY_MEDIUM"/> @@ -5403,6 +5425,15 @@ private version is maintained in the 1.0 branch of the member gitlab server. <param><type>VkImage</type> <name>image</name></param> <param><type>int</type>* <name>pNativeFenceFd</name></param> </command> + <command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_FEATURE_NOT_PRESENT,VK_ERROR_OUT_OF_HOST_MEMORY"> + <proto><type>VkResult</type> <name>vkGetShaderInfoAMD</name></proto> + <param><type>VkDevice</type> <name>device</name></param> + <param><type>VkPipeline</type> <name>pipeline</name></param> + <param><type>VkShaderStageFlagBits</type> <name>shaderStage</name></param> + <param><type>VkShaderInfoTypeAMD</type> <name>infoType</name></param> + <param optional="false,true"><type>size_t</type>* <name>pInfoSize</name></param> + <param optional="true" len="pInfoSize"><type>void</type>* <name>pInfo</name></param> + </command> </commands> <feature api="vulkan" name="VK_VERSION_1_0" number="1.0" comment="Vulkan core API interface definitions"> @@ -5778,7 +5809,7 @@ private version is maintained in the 1.0 branch of the member gitlab server. </extension> <extension name="VK_EXT_debug_report" number="12" type="instance" author="GOOGLE" contact="Courtney Goeltzenleuchter @courtney" supported="vulkan"> <require> - <enum value="8" name="VK_EXT_DEBUG_REPORT_SPEC_VERSION"/> + <enum value="9" name="VK_EXT_DEBUG_REPORT_SPEC_VERSION"/> <enum value=""VK_EXT_debug_report"" name="VK_EXT_DEBUG_REPORT_EXTENSION_NAME"/> <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT"/> <enum offset="1" dir="-" extends="VkResult" name="VK_ERROR_VALIDATION_FAILED_EXT"/> @@ -6001,10 +6032,14 @@ private version is maintained in the 1.0 branch of the member gitlab server. <type name="VkTextureLODGatherFormatPropertiesAMD"/> </require> </extension> - <extension name="VK_AMD_extension_43" number="43" author="AMD" contact="Daniel Rakos @aqnuep" supported="disabled"> + <extension name="VK_AMD_shader_info" number="43" author="AMD" contact="Jaakko Konttinen @jaakko" supported="vulkan" type="device"> <require> - <enum value="0" name="VK_AMD_EXTENSION_43_SPEC_VERSION"/> - <enum value=""VK_AMD_extension_43"" name="VK_AMD_EXTENSION_43_EXTENSION_NAME"/> + <enum value="1" name="VK_AMD_SHADER_INFO_SPEC_VERSION"/> + <enum value=""VK_AMD_shader_info"" name="VK_AMD_SHADER_INFO_EXTENSION_NAME"/> + <type name="VkShaderInfoTypeAMD"/> + <type name="VkShaderResourceUsageAMD"/> + <type name="VkShaderStatisticsInfoAMD"/> + <command name="vkGetShaderInfoAMD"/> </require> </extension> <extension name="VK_AMD_extension_44" number="44" author="AMD" contact="Daniel Rakos @aqnuep" supported="disabled"> @@ -7359,40 +7394,40 @@ private version is maintained in the 1.0 branch of the member gitlab server. <enum value=""VK_EXT_extension_170"" name="VK_EXT_EXTENSION_170_EXTENSION_NAME"/> </require> </extension> - <extension name="VK_QCOM_extension_171" number="171" author="QCOM" contact="Bill Licea-Kane @billl" supported="disabled"> + <extension name="VK_QCOM_extension_171" number="171" author="QCOM" contact="Bill Licea-Kane @billl" supported="disabled"> <require> <enum value="0" name="VK_QCOM_extension_171_SPEC_VERSION"/> <enum value=""VK_QCOM_extension_171"" name="VK_QCOM_extension_171_EXTENSION_NAME"/> </require> - </extension> - <extension name="VK_QCOM_extension_172" number="172" author="QCOM" contact="Bill Licea-Kane @billl" supported="disabled"> + </extension> + <extension name="VK_QCOM_extension_172" number="172" author="QCOM" contact="Bill Licea-Kane @billl" supported="disabled"> <require> <enum value="0" name="VK_QCOM_extension_172_SPEC_VERSION"/> <enum value=""VK_QCOM_extension_172"" name="VK_QCOM_extension_172_EXTENSION_NAME"/> </require> - </extension> - <extension name="VK_QCOM_extension_173" number="173" author="QCOM" contact="Bill Licea-Kane @billl" supported="disabled"> + </extension> + <extension name="VK_QCOM_extension_173" number="173" author="QCOM" contact="Bill Licea-Kane @billl" supported="disabled"> <require> <enum value="0" name="VK_QCOM_extension_173_SPEC_VERSION"/> <enum value=""VK_QCOM_extension_173"" name="VK_QCOM_extension_173_EXTENSION_NAME"/> </require> - </extension> - <extension name="VK_QCOM_extension_174" number="174" author="QCOM" contact="Bill Licea-Kane @billl" supported="disabled"> + </extension> + <extension name="VK_QCOM_extension_174" number="174" author="QCOM" contact="Bill Licea-Kane @billl" supported="disabled"> <require> <enum value="0" name="VK_QCOM_extension_174_SPEC_VERSION"/> <enum value=""VK_QCOM_extension_174"" name="VK_QCOM_extension_174_EXTENSION_NAME"/> </require> - </extension> - <extension name="VK_EXT_global_priority" number="175" type="device" author="EXT" contact="Andres Rodriguez @lostgoat" supported="vulkan"> - <require> - <enum value="1" name="VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION"/> - <enum value=""VK_EXT_global_priority"" name="VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME"/> - <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT"/> - <enum offset="1" dir="-" extends="VkResult" name="VK_ERROR_NOT_PERMITTED_EXT"/> - <type name="VkDeviceQueueGlobalPriorityCreateInfoEXT"/> - <type name="VkQueueGlobalPriorityEXT"/> - </require> - </extension> + </extension> + <extension name="VK_EXT_global_priority" number="175" type="device" author="EXT" contact="Andres Rodriguez @lostgoat" supported="vulkan"> + <require> + <enum value="1" name="VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION"/> + <enum value=""VK_EXT_global_priority"" name="VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME"/> + <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT"/> + <enum offset="1" dir="-" extends="VkResult" name="VK_ERROR_NOT_PERMITTED_EXT"/> + <type name="VkDeviceQueueGlobalPriorityCreateInfoEXT"/> + <type name="VkQueueGlobalPriorityEXT"/> + </require> + </extension> <extension name="VK_EXT_extension_176" number="176" author="EXT" contact="Neil Henning @neil_henning" supported="disabled"> <require> <enum value="0" name="VK_KHR_EXTENSION_176_SPEC_VERSION"/> @@ -7405,11 +7440,83 @@ private version is maintained in the 1.0 branch of the member gitlab server. <enum value=""VK_KHR_extension_177"" name="VK_KHR_EXTENSION_177_EXTENSION_NAME"/> </require> </extension> - <extension name="VK_EXT_extension_178" number="178" author="EXT" contact="Alexander Galazin @debater" supported="disabled"> + <extension name="VK_EXT_extension_178" number="178" author="EXT" contact="Alexander Galazin @debater" supported="disabled"> <require> <enum value="0" name="VK_KHR_EXTENSION_178_SPEC_VERSION"/> <enum value=""VK_KHR_extension_178"" name="VK_KHR_EXTENSION_178_EXTENSION_NAME"/> </require> </extension> + <extension name="VK_AMD_extension_179" number="179" author="AMD" contact="Daniel Rakos @aqnuep" supported="disabled"> + <require> + <enum value="0" name="VK_KHR_EXTENSION_179_SPEC_VERSION"/> + <enum value=""VK_AMD_extension_179"" name="VK_KHR_EXTENSION_179_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_AMD_extension_180" number="180" author="AMD" contact="Daniel Rakos @aqnuep" supported="disabled"> + <require> + <enum value="0" name="VK_KHR_EXTENSION_180_SPEC_VERSION"/> + <enum value=""VK_AMD_extension_180"" name="VK_KHR_EXTENSION_180_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_AMD_extension_181" number="181" author="AMD" contact="Daniel Rakos @aqnuep" supported="disabled"> + <require> + <enum value="0" name="VK_KHR_EXTENSION_181_SPEC_VERSION"/> + <enum value=""VK_AMD_extension_181"" name="VK_KHR_EXTENSION_181_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_AMD_extension_182" number="182" author="AMD" contact="Daniel Rakos @aqnuep" supported="disabled"> + <require> + <enum value="0" name="VK_KHR_EXTENSION_182_SPEC_VERSION"/> + <enum value=""VK_AMD_extension_182"" name="VK_KHR_EXTENSION_182_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_AMD_extension_183" number="183" author="AMD" contact="Daniel Rakos @aqnuep" supported="disabled"> + <require> + <enum value="0" name="VK_KHR_EXTENSION_183_SPEC_VERSION"/> + <enum value=""VK_AMD_extension_183"" name="VK_KHR_EXTENSION_183_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_AMD_extension_184" number="184" author="AMD" contact="Daniel Rakos @aqnuep" supported="disabled"> + <require> + <enum value="0" name="VK_KHR_EXTENSION_184_SPEC_VERSION"/> + <enum value=""VK_AMD_extension_184"" name="VK_KHR_EXTENSION_184_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_AMD_extension_185" number="185" author="AMD" contact="Daniel Rakos @aqnuep" supported="disabled"> + <require> + <enum value="0" name="VK_KHR_EXTENSION_185_SPEC_VERSION"/> + <enum value=""VK_AMD_extension_185"" name="VK_KHR_EXTENSION_185_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_AMD_extension_186" number="186" author="AMD" contact="Daniel Rakos @aqnuep" supported="disabled"> + <require> + <enum value="0" name="VK_KHR_EXTENSION_186_SPEC_VERSION"/> + <enum value=""VK_AMD_extension_186"" name="VK_KHR_EXTENSION_186_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_AMD_extension_187" number="187" author="AMD" contact="Daniel Rakos @aqnuep" supported="disabled"> + <require> + <enum value="0" name="VK_KHR_EXTENSION_187_SPEC_VERSION"/> + <enum value=""VK_AMD_extension_187"" name="VK_KHR_EXTENSION_187_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_AMD_extension_188" number="188" author="AMD" contact="Daniel Rakos @aqnuep" supported="disabled"> + <require> + <enum value="0" name="VK_KHR_EXTENSION_188_SPEC_VERSION"/> + <enum value=""VK_AMD_extension_188"" name="VK_KHR_EXTENSION_188_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_AMD_extension_189" number="189" author="AMD" contact="Daniel Rakos @aqnuep" supported="disabled"> + <require> + <enum value="0" name="VK_KHR_EXTENSION_189_SPEC_VERSION"/> + <enum value=""VK_AMD_extension_189"" name="VK_KHR_EXTENSION_189_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_AMD_extension_190" number="190" author="AMD" contact="Daniel Rakos @aqnuep" supported="disabled"> + <require> + <enum value="0" name="VK_KHR_EXTENSION_190_SPEC_VERSION"/> + <enum value=""VK_AMD_extension_190"" name="VK_KHR_EXTENSION_190_EXTENSION_NAME"/> + </require> + </extension> </extensions> </registry> |