Structures

VkPhysicalDeviceShaderEnqueuePropertiesAMDX

Structure describing shader enqueue limits of an implementation

The VkPhysicalDeviceShaderEnqueuePropertiesAMDX structure is defined as:

typedef struct VkPhysicalDeviceShaderEnqueuePropertiesAMDX {
    VkStructureType sType;
    void* pNext;
    uint32_t maxExecutionGraphDepth;
    uint32_t maxExecutionGraphShaderOutputNodes;
    uint32_t maxExecutionGraphShaderPayloadSize;
    uint32_t maxExecutionGraphShaderPayloadCount;
    uint32_t executionGraphDispatchAddressAlignment;
} VkPhysicalDeviceShaderEnqueuePropertiesAMDX;

The members of the VkPhysicalDeviceShaderEnqueuePropertiesAMDX structure describe the following limits:

  • sType is a VkStructureType value identifying this structure.
  • pNext is NULL or a pointer to a structure extending this structure.
  • maxExecutionGraphDepth defines the maximum node chain depth in the graph. The dispatched node is at depth 1 and the node enqueued by it is at depth 2, and so on. If a node enqueues itself, each recursive enqueue increases the depth by 1 as well.
  • maxExecutionGraphShaderOutputNodes specifies the maximum number of unique nodes that can be dispatched from a single shader, and must be at least 256.
  • maxExecutionGraphShaderPayloadSize specifies the maximum total size of payload declarations in a shader. For any payload declarations that share resources, indicated by NodeSharesPayloadLimitsWithAMDX decorations, the maximum size of each set of shared payload declarations is taken. The sum of each shared set’s maximum size and the size of each unshared payload is counted against this limit.
  • maxExecutionGraphShaderPayloadCount specifies the maximum number of output payloads that can be initialized in a single workgroup.
  • executionGraphDispatchAddressAlignment specifies the alignment of non-scratch VkDeviceAddress arguments consumed by graph dispatch commands.

If the VkPhysicalDeviceShaderEnqueuePropertiesAMDX structure is included in the pNext chain of the VkPhysicalDeviceProperties2 structure passed to vkGetPhysicalDeviceProperties2, it is filled in with each corresponding implementation-dependent property.

Valid Usage (Implicit)

VUID-VkPhysicalDeviceShaderEnqueuePropertiesAMDX-sType-sType

sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX