@@ -53,13 +53,14 @@ typedef struct VkPhysicalDevicePortabilitySubsetPropertiesKHR {
5353
5454// VK_AMDX_shader_enqueue is a preprocessor guard. Do not pass it to API calls.
5555#define VK_AMDX_shader_enqueue 1
56- #define VK_AMDX_SHADER_ENQUEUE_SPEC_VERSION 1
56+ #define VK_AMDX_SHADER_ENQUEUE_SPEC_VERSION 2
5757#define VK_AMDX_SHADER_ENQUEUE_EXTENSION_NAME "VK_AMDX_shader_enqueue"
5858#define VK_SHADER_INDEX_UNUSED_AMDX (~0U)
5959typedef struct VkPhysicalDeviceShaderEnqueueFeaturesAMDX {
6060 VkStructureType sType ;
6161 void * pNext ;
6262 VkBool32 shaderEnqueue ;
63+ VkBool32 shaderMeshEnqueue ;
6364} VkPhysicalDeviceShaderEnqueueFeaturesAMDX ;
6465
6566typedef struct VkPhysicalDeviceShaderEnqueuePropertiesAMDX {
@@ -70,12 +71,16 @@ typedef struct VkPhysicalDeviceShaderEnqueuePropertiesAMDX {
7071 uint32_t maxExecutionGraphShaderPayloadSize ;
7172 uint32_t maxExecutionGraphShaderPayloadCount ;
7273 uint32_t executionGraphDispatchAddressAlignment ;
74+ uint32_t maxExecutionGraphWorkgroupCount [3 ];
75+ uint32_t maxExecutionGraphWorkgroups ;
7376} VkPhysicalDeviceShaderEnqueuePropertiesAMDX ;
7477
7578typedef struct VkExecutionGraphPipelineScratchSizeAMDX {
7679 VkStructureType sType ;
7780 void * pNext ;
78- VkDeviceSize size ;
81+ VkDeviceSize minSize ;
82+ VkDeviceSize maxSize ;
83+ VkDeviceSize sizeGranularity ;
7984} VkExecutionGraphPipelineScratchSizeAMDX ;
8085
8186typedef struct VkExecutionGraphPipelineCreateInfoAMDX {
@@ -116,12 +121,12 @@ typedef struct VkPipelineShaderStageNodeCreateInfoAMDX {
116121} VkPipelineShaderStageNodeCreateInfoAMDX ;
117122
118123typedef VkResult (VKAPI_PTR * PFN_vkCreateExecutionGraphPipelinesAMDX )(VkDevice device , VkPipelineCache pipelineCache , uint32_t createInfoCount , const VkExecutionGraphPipelineCreateInfoAMDX * pCreateInfos , const VkAllocationCallbacks * pAllocator , VkPipeline * pPipelines );
119- typedef VkResult (VKAPI_PTR * PFN_vkGetExecutionGraphPipelineScratchSizeAMDX )(VkDevice device , VkPipeline executionGraph , VkExecutionGraphPipelineScratchSizeAMDX * pSizeInfo );
120- typedef VkResult (VKAPI_PTR * PFN_vkGetExecutionGraphPipelineNodeIndexAMDX )(VkDevice device , VkPipeline executionGraph , const VkPipelineShaderStageNodeCreateInfoAMDX * pNodeInfo , uint32_t * pNodeIndex );
121- typedef void (VKAPI_PTR * PFN_vkCmdInitializeGraphScratchMemoryAMDX )(VkCommandBuffer commandBuffer , VkDeviceAddress scratch );
122- typedef void (VKAPI_PTR * PFN_vkCmdDispatchGraphAMDX )(VkCommandBuffer commandBuffer , VkDeviceAddress scratch , const VkDispatchGraphCountInfoAMDX * pCountInfo );
123- typedef void (VKAPI_PTR * PFN_vkCmdDispatchGraphIndirectAMDX )(VkCommandBuffer commandBuffer , VkDeviceAddress scratch , const VkDispatchGraphCountInfoAMDX * pCountInfo );
124- typedef void (VKAPI_PTR * PFN_vkCmdDispatchGraphIndirectCountAMDX )(VkCommandBuffer commandBuffer , VkDeviceAddress scratch , VkDeviceAddress countInfo );
124+ typedef VkResult (VKAPI_PTR * PFN_vkGetExecutionGraphPipelineScratchSizeAMDX )(VkDevice device , VkPipeline executionGraph , VkExecutionGraphPipelineScratchSizeAMDX * pSizeInfo );
125+ typedef VkResult (VKAPI_PTR * PFN_vkGetExecutionGraphPipelineNodeIndexAMDX )(VkDevice device , VkPipeline executionGraph , const VkPipelineShaderStageNodeCreateInfoAMDX * pNodeInfo , uint32_t * pNodeIndex );
126+ typedef void (VKAPI_PTR * PFN_vkCmdInitializeGraphScratchMemoryAMDX )(VkCommandBuffer commandBuffer , VkPipeline executionGraph , VkDeviceAddress scratch , VkDeviceSize scratchSize );
127+ typedef void (VKAPI_PTR * PFN_vkCmdDispatchGraphAMDX )(VkCommandBuffer commandBuffer , VkDeviceAddress scratch , VkDeviceSize scratchSize , const VkDispatchGraphCountInfoAMDX * pCountInfo );
128+ typedef void (VKAPI_PTR * PFN_vkCmdDispatchGraphIndirectAMDX )(VkCommandBuffer commandBuffer , VkDeviceAddress scratch , VkDeviceSize scratchSize , const VkDispatchGraphCountInfoAMDX * pCountInfo );
129+ typedef void (VKAPI_PTR * PFN_vkCmdDispatchGraphIndirectCountAMDX )(VkCommandBuffer commandBuffer , VkDeviceAddress scratch , VkDeviceSize scratchSize , VkDeviceAddress countInfo );
125130
126131#ifndef VK_NO_PROTOTYPES
127132VKAPI_ATTR VkResult VKAPI_CALL vkCreateExecutionGraphPipelinesAMDX (
@@ -145,21 +150,26 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetExecutionGraphPipelineNodeIndexAMDX(
145150
146151VKAPI_ATTR void VKAPI_CALL vkCmdInitializeGraphScratchMemoryAMDX (
147152 VkCommandBuffer commandBuffer ,
148- VkDeviceAddress scratch );
153+ VkPipeline executionGraph ,
154+ VkDeviceAddress scratch ,
155+ VkDeviceSize scratchSize );
149156
150157VKAPI_ATTR void VKAPI_CALL vkCmdDispatchGraphAMDX (
151158 VkCommandBuffer commandBuffer ,
152159 VkDeviceAddress scratch ,
160+ VkDeviceSize scratchSize ,
153161 const VkDispatchGraphCountInfoAMDX * pCountInfo );
154162
155163VKAPI_ATTR void VKAPI_CALL vkCmdDispatchGraphIndirectAMDX (
156164 VkCommandBuffer commandBuffer ,
157165 VkDeviceAddress scratch ,
166+ VkDeviceSize scratchSize ,
158167 const VkDispatchGraphCountInfoAMDX * pCountInfo );
159168
160169VKAPI_ATTR void VKAPI_CALL vkCmdDispatchGraphIndirectCountAMDX (
161170 VkCommandBuffer commandBuffer ,
162171 VkDeviceAddress scratch ,
172+ VkDeviceSize scratchSize ,
163173 VkDeviceAddress countInfo );
164174#endif
165175
0 commit comments