vulkan
Safe HaskellNone
LanguageHaskell2010

Vulkan.Extensions.VK_AMDX_shader_enqueue

Description

Name

VK_AMDX_shader_enqueue - device extension

VK_AMDX_shader_enqueue

Name String
VK_AMDX_shader_enqueue
Extension Type
Device extension
Registered Extension Number
135
Revision
2
Ratification Status
Not ratified
Extension and Version Dependencies

VK_KHR_synchronization2          and

VK_KHR_spirv_1_4          and

VK_EXT_extended_dynamic_state      or

Vulkan Version 1.3 and VK_KHR_maintenance5 and VK_KHR_pipeline_library

  • __This is a provisional extension and must be used with caution. See the description of provisional header files for enablement and stability details.__
API Interactions
  • Interacts with VK_VERSION_1_4
  • Interacts with VK_EXT_mesh_shader
  • Interacts with VK_KHR_maintenance5
Contact
Extension Proposal
VK_AMDX_shader_enqueue

Other Extension Metadata

Last Modified Date
2024-07-17
Provisional
__This extension is provisional and should not be used in production applications. The functionality may change in ways that break backwards compatibility between revisions, and before final release.__
Contributors
  • Tobias Hector, AMD
  • Matthaeus Chajdas, AMD
  • Maciej Jesionowski, AMD
  • Robert Martin, AMD
  • Qun Lin, AMD
  • Rex Xu, AMD
  • Dominik Witczak, AMD
  • Karthik Srinivasan, AMD
  • Nicolai Haehnle, AMD
  • Stuart Smith, AMD

Description

This extension adds the ability for developers to enqueue mesh and compute shader workgroups from other compute shaders.

New Commands

New Structures

New Unions

New Enum Constants

If VK_KHR_maintenance5 or Vulkan Version 1.4 is supported:

Version History

  • Revision 2, 2024-07-17 (Tobias Hector)

    • Add mesh nodes
  • Revision 1, 2021-07-22 (Tobias Hector)

    • Initial revision

See Also

No cross-references are available

Document Notes

For more information, see the Vulkan Specification.

This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.

Synopsis

Documentation

getExecutionGraphPipelineScratchSizeAMDX Source #

Arguments

:: MonadIO io 
=> Device

device is the logical device that executionGraph was created on.

device must be a valid Device handle

-> ("executionGraph" ::: Pipeline)

executionGraph is the execution graph pipeline to query the scratch space for.

executionGraph must be a valid Pipeline handle

executionGraph must have been created, allocated, or retrieved from device

-> io ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX) 

vkGetExecutionGraphPipelineScratchSizeAMDX - Query scratch space required to dispatch an execution graph

Description

After this function returns, information about the scratch space required will be returned in pSizeInfo.

Return Codes

Success
Failure

See Also

VK_AMDX_shader_enqueue, Device, ExecutionGraphPipelineScratchSizeAMDX, Pipeline

getExecutionGraphPipelineNodeIndexAMDX Source #

Arguments

:: MonadIO io 
=> Device

device is the logical device that executionGraph was created on.

-> ("executionGraph" ::: Pipeline)

executionGraph is the execution graph pipeline to query the internal node index for.

-> ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)

pNodeInfo is a pointer to a PipelineShaderStageNodeCreateInfoAMDX structure identifying the name and index of the node to query.

-> io ("nodeIndex" ::: Word32) 

vkGetExecutionGraphPipelineNodeIndexAMDX - Query internal id of a node in an execution graph

Description

Once this function returns, the contents of pNodeIndex contain the internal node index of the identified node.

Valid Usage

  • pNodeInfo->pName must not be NULL
  • pNodeInfo->index must not be SHADER_INDEX_UNUSED_AMDX
  • There must be a node in executionGraph with a shader name and index equal to pNodeInfo->pName and pNodeInfo->index

Valid Usage (Implicit)

  • device must be a valid Device handle
  • executionGraph must be a valid Pipeline handle
  • pNodeInfo must be a valid pointer to a valid PipelineShaderStageNodeCreateInfoAMDX structure
  • pNodeIndex must be a valid pointer to a uint32_t value
  • executionGraph must have been created, allocated, or retrieved from device

Return Codes

Success
Failure

See Also

VK_AMDX_shader_enqueue, Device, Pipeline, PipelineShaderStageNodeCreateInfoAMDX

createExecutionGraphPipelinesAMDX Source #

Arguments

:: MonadIO io 
=> Device

device is the logical device that creates the execution graph pipelines.

-> PipelineCache

pipelineCache is either NULL_HANDLE, indicating that pipeline caching is disabled; or the handle of a valid pipeline cache object, in which case use of that cache is enabled for the duration of the command. The implementation must not access this object outside of the duration of this command.

-> ("createInfos" ::: Vector (SomeStruct ExecutionGraphPipelineCreateInfoAMDX))

pCreateInfos is a pointer to an array of ExecutionGraphPipelineCreateInfoAMDX structures.

-> ("allocator" ::: Maybe AllocationCallbacks)

pAllocator controls host memory allocation as described in the Memory Allocation chapter.

-> io (Result, "pipelines" ::: Vector Pipeline) 

vkCreateExecutionGraphPipelinesAMDX - Creates a new execution graph pipeline object

Description

Pipelines are created and returned as described for Multiple Pipeline Creation.

Valid Usage

Valid Usage (Implicit)

  • device must be a valid Device handle
  • If pipelineCache is not NULL_HANDLE, pipelineCache must be a valid PipelineCache handle
  • pCreateInfos must be a valid pointer to an array of createInfoCount valid ExecutionGraphPipelineCreateInfoAMDX structures
  • If pAllocator is not NULL, pAllocator must be a valid pointer to a valid AllocationCallbacks structure
  • pPipelines must be a valid pointer to an array of createInfoCount Pipeline handles
  • createInfoCount must be greater than 0
  • If pipelineCache is a valid handle, it must have been created, allocated, or retrieved from device

Return Codes

Success
Failure

See Also

VK_AMDX_shader_enqueue, AllocationCallbacks, Device, ExecutionGraphPipelineCreateInfoAMDX, Pipeline, PipelineCache

cmdInitializeGraphScratchMemoryAMDX Source #

Arguments

:: MonadIO io 
=> CommandBuffer

commandBuffer is the command buffer into which the command will be recorded.

-> ("executionGraph" ::: Pipeline)

executionGraph is the execution graph pipeline to initialize the scratch memory for.

-> ("scratch" ::: DeviceAddress)

scratch is the address of scratch memory to be initialized.

-> ("scratchSize" ::: DeviceSize)

scratchSize is a range in bytes of scratch memory to be initialized.

-> io () 

vkCmdInitializeGraphScratchMemoryAMDX - Initialize scratch memory for an execution graph

Description

This command must be called before using scratch to dispatch the bound execution graph pipeline.

Execution of this command may modify any memory locations in the range [scratch,scratch + scratchSize). Accesses to this memory range are performed in the PIPELINE_STAGE_2_COMPUTE_SHADER_BIT pipeline stage with the ACCESS_2_SHADER_STORAGE_READ_BIT and ACCESS_2_SHADER_STORAGE_WRITE_BIT access flags.

If any portion of scratch is modified by any command other than cmdDispatchGraphAMDX, cmdDispatchGraphIndirectAMDX, cmdDispatchGraphIndirectCountAMDX, or cmdInitializeGraphScratchMemoryAMDX with the same execution graph, it must be reinitialized for the execution graph again before dispatching against it.

Valid Usage

  • scratch must be the device address of an allocated memory range at least as large as scratchSize

Valid Usage (Implicit)

  • executionGraph must be a valid Pipeline handle
  • scratch must be a valid DeviceAddress value
  • commandBuffer must be in the recording state
  • The CommandPool that commandBuffer was allocated from must support QUEUE_COMPUTE_BIT, or QUEUE_GRAPHICS_BIT operations
  • This command must not be called between suspended render pass instances
  • This command must only be called outside of a video coding scope
  • commandBuffer must be a primary CommandBuffer
  • Both of commandBuffer, and executionGraph must have been created, allocated, or retrieved from the same Device

Host Synchronization

  • Host access to the CommandPool that commandBuffer was allocated from must be externally synchronized

Command Properties

'

Command Buffer LevelsRender Pass ScopeVideo Coding ScopeSupported Queue TypesCommand Type
Primary Both Outside VK_QUEUE_COMPUTE_BIT VK_QUEUE_GRAPHICS_BITAction

Conditional Rendering

vkCmdInitializeGraphScratchMemoryAMDX is not affected by conditional rendering

See Also

VK_AMDX_shader_enqueue, CommandBuffer, DeviceAddress, DeviceSize, Pipeline

cmdDispatchGraphAMDX Source #

Arguments

:: MonadIO io 
=> CommandBuffer

commandBuffer is the command buffer into which the command will be recorded.

-> ("scratch" ::: DeviceAddress)

scratch is the address of scratch memory to be used.

-> ("scratchSize" ::: DeviceSize)

scratchSize is a range in bytes of scratch memory to be used.

-> DispatchGraphCountInfoAMDX

pCountInfo is a host pointer to a DispatchGraphCountInfoAMDX structure defining the nodes which will be initially executed.

-> io () 

vkCmdDispatchGraphAMDX - Dispatch an execution graph

Description

When this command is executed, the nodes specified in pCountInfo are executed. Nodes executed as part of this command are not implicitly synchronized in any way against each other once they are dispatched. There are no rasterization order guarantees between separately dispatched graphics nodes, though individual primitives within a single dispatch do adhere to rasterization order. Draw calls executed before or after the execution graph also execute relative to each graphics node with respect to rasterization order.

For this command, all device/host pointers in substructures are treated as host pointers and read only during host execution of this command. Once this command returns, no reference to the original pointers is retained.

Execution of this command may modify any memory locations in the range [scratch,scratch + scratchSize). Accesses to this memory range are performed in the PIPELINE_STAGE_2_COMPUTE_SHADER_BIT pipeline stage with the ACCESS_2_SHADER_STORAGE_READ_BIT and ACCESS_2_SHADER_STORAGE_WRITE_BIT access flags.

This command captures command buffer state for mesh nodes similarly to draw commands.

Valid Usage

Valid Usage (Implicit)

Host Synchronization

  • Host access to the CommandPool that commandBuffer was allocated from must be externally synchronized

Command Properties

'

Command Buffer LevelsRender Pass ScopeVideo Coding ScopeSupported Queue TypesCommand Type
Primary Both Outside VK_QUEUE_COMPUTE_BIT VK_QUEUE_GRAPHICS_BITAction

Conditional Rendering

vkCmdDispatchGraphAMDX is affected by conditional rendering

See Also

VK_AMDX_shader_enqueue, CommandBuffer, DeviceAddress, DeviceSize, DispatchGraphCountInfoAMDX

cmdDispatchGraphIndirectAMDX Source #

Arguments

:: MonadIO io 
=> CommandBuffer

commandBuffer is the command buffer into which the command will be recorded.

-> ("scratch" ::: DeviceAddress)

scratch is the address of scratch memory to be used.

-> ("scratchSize" ::: DeviceSize)

scratchSize is a range in bytes of scratch memory to be used.

-> DispatchGraphCountInfoAMDX

pCountInfo is a host pointer to a DispatchGraphCountInfoAMDX structure defining the nodes which will be initially executed.

-> io () 

vkCmdDispatchGraphIndirectAMDX - Dispatch an execution graph with node and payload parameters read on the device

Description

When this command is executed, the nodes specified in pCountInfo are executed. Nodes executed as part of this command are not implicitly synchronized in any way against each other once they are dispatched. There are no rasterization order guarantees between separately dispatched graphics nodes, though individual primitives within a single dispatch do adhere to rasterization order. Draw calls executed before or after the execution graph also execute relative to each graphics node with respect to rasterization order.

For this command, all device/host pointers in substructures are treated as device pointers and read during device execution of this command. The allocation and contents of these pointers only needs to be valid during device execution. All of these addresses will be read in the PIPELINE_STAGE_2_COMPUTE_SHADER_BIT pipeline stage with the ACCESS_2_SHADER_STORAGE_READ_BIT access flag.

Execution of this command may modify any memory locations in the range [scratch,scratch + scratchSize). Accesses to this memory range are performed in the PIPELINE_STAGE_2_COMPUTE_SHADER_BIT pipeline stage with the ACCESS_2_SHADER_STORAGE_READ_BIT and ACCESS_2_SHADER_STORAGE_WRITE_BIT access flags.

This command captures command buffer state for mesh nodes similarly to draw commands.

Valid Usage

Valid Usage (Implicit)

Host Synchronization

  • Host access to the CommandPool that commandBuffer was allocated from must be externally synchronized

Command Properties

'

Command Buffer LevelsRender Pass ScopeVideo Coding ScopeSupported Queue TypesCommand Type
Primary Both Outside VK_QUEUE_COMPUTE_BIT VK_QUEUE_GRAPHICS_BITAction

Conditional Rendering

vkCmdDispatchGraphIndirectAMDX is affected by conditional rendering

See Also

VK_AMDX_shader_enqueue, CommandBuffer, DeviceAddress, DeviceSize, DispatchGraphCountInfoAMDX

cmdDispatchGraphIndirectCountAMDX Source #

Arguments

:: MonadIO io 
=> CommandBuffer

commandBuffer is the command buffer into which the command will be recorded.

-> ("scratch" ::: DeviceAddress)

scratch is the address of scratch memory to be used.

-> ("scratchSize" ::: DeviceSize)

scratchSize is a range in bytes of scratch memory to be used.

-> ("countInfo" ::: DeviceAddress)

countInfo is a device address of a DispatchGraphCountInfoAMDX structure defining the nodes which will be initially executed.

-> io () 

vkCmdDispatchGraphIndirectCountAMDX - Dispatch an execution graph with all parameters read on the device

Description

When this command is executed, the nodes specified in countInfo are executed. Nodes executed as part of this command are not implicitly synchronized in any way against each other once they are dispatched.

For this command, all pointers in substructures are treated as device pointers and read during device execution of this command. The allocation and contents of these pointers only needs to be valid during device execution. All of these addresses will be read in the PIPELINE_STAGE_2_COMPUTE_SHADER_BIT pipeline stage with the ACCESS_2_SHADER_STORAGE_READ_BIT access flag.

Execution of this command may modify any memory locations in the range [scratch,scratch + scratchSize). Accesses to this memory range are performed in the PIPELINE_STAGE_2_COMPUTE_SHADER_BIT pipeline stage with the ACCESS_2_SHADER_STORAGE_READ_BIT and ACCESS_2_SHADER_STORAGE_WRITE_BIT access flags.

Valid Usage

Valid Usage (Implicit)

Host Synchronization

  • Host access to the CommandPool that commandBuffer was allocated from must be externally synchronized

Command Properties

'

Command Buffer LevelsRender Pass ScopeVideo Coding ScopeSupported Queue TypesCommand Type
Primary Both Outside VK_QUEUE_COMPUTE_BIT VK_QUEUE_GRAPHICS_BITAction

Conditional Rendering

vkCmdDispatchGraphIndirectCountAMDX is affected by conditional rendering

See Also

VK_AMDX_shader_enqueue, CommandBuffer, DeviceAddress, DeviceSize

data PhysicalDeviceShaderEnqueuePropertiesAMDX Source #

VkPhysicalDeviceShaderEnqueuePropertiesAMDX - Structure describing shader enqueue limits of an implementation

Members

The members of the PhysicalDeviceShaderEnqueuePropertiesAMDX structure describe the following limits:

Description

If the PhysicalDeviceShaderEnqueuePropertiesAMDX structure is included in the pNext chain of the PhysicalDeviceProperties2 structure passed to getPhysicalDeviceProperties2, it is filled in with each corresponding implementation-dependent property.

Valid Usage (Implicit)

See Also

VK_AMDX_shader_enqueue, StructureType

Constructors

PhysicalDeviceShaderEnqueuePropertiesAMDX 

Fields

  • maxExecutionGraphDepth :: Word32

    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 :: Word32

    maxExecutionGraphShaderOutputNodes specifies the maximum number of unique nodes that can be dispatched from a single shader, and must be at least 256.

  • maxExecutionGraphShaderPayloadSize :: Word32

    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 :: Word32

    maxExecutionGraphShaderPayloadCount specifies the maximum number of output payloads that can be initialized in a single workgroup.

  • executionGraphDispatchAddressAlignment :: Word32

    executionGraphDispatchAddressAlignment specifies the alignment of non-scratch DeviceAddress arguments consumed by graph dispatch commands.

  • maxExecutionGraphWorkgroupCount :: (Word32, Word32, Word32)

    maxExecutionGraphWorkgroupCount[3] is the maximum number of local workgroups that a shader can be dispatched with in X, Y, and Z dimensions, respectively.

  • maxExecutionGraphWorkgroups :: Word32

    maxExecutionGraphWorkgroups is the total number of local workgroups that a shader can be dispatched with.

Instances

Instances details
Eq PhysicalDeviceShaderEnqueuePropertiesAMDX Source # 
Instance details

Defined in Vulkan.Extensions.VK_AMDX_shader_enqueue

Storable PhysicalDeviceShaderEnqueuePropertiesAMDX Source # 
Instance details

Defined in Vulkan.Extensions.VK_AMDX_shader_enqueue

Show PhysicalDeviceShaderEnqueuePropertiesAMDX Source # 
Instance details

Defined in Vulkan.Extensions.VK_AMDX_shader_enqueue

FromCStruct PhysicalDeviceShaderEnqueuePropertiesAMDX Source # 
Instance details

Defined in Vulkan.Extensions.VK_AMDX_shader_enqueue

ToCStruct PhysicalDeviceShaderEnqueuePropertiesAMDX Source # 
Instance details

Defined in Vulkan.Extensions.VK_AMDX_shader_enqueue

Zero PhysicalDeviceShaderEnqueuePropertiesAMDX Source # 
Instance details

Defined in Vulkan.Extensions.VK_AMDX_shader_enqueue

data PhysicalDeviceShaderEnqueueFeaturesAMDX Source #

VkPhysicalDeviceShaderEnqueueFeaturesAMDX - Structure describing whether shader enqueue within execution graphs are supported by the implementation

Members

This structure describes the following feature:

Description

If the PhysicalDeviceShaderEnqueueFeaturesAMDX structure is included in the pNext chain of the PhysicalDeviceFeatures2 structure passed to getPhysicalDeviceFeatures2, it is filled in to indicate whether each corresponding feature is supported. If the application wishes to use a Device with any features described by PhysicalDeviceShaderEnqueueFeaturesAMDX, it must add an instance of the structure, with the desired feature members set to TRUE, to the pNext chain of DeviceCreateInfo when creating the Device.

Valid Usage (Implicit)

See Also

VK_AMDX_shader_enqueue, Bool32, StructureType

Constructors

PhysicalDeviceShaderEnqueueFeaturesAMDX 

Fields

Instances

Instances details
Eq PhysicalDeviceShaderEnqueueFeaturesAMDX Source # 
Instance details

Defined in Vulkan.Extensions.VK_AMDX_shader_enqueue

Storable PhysicalDeviceShaderEnqueueFeaturesAMDX Source # 
Instance details

Defined in Vulkan.Extensions.VK_AMDX_shader_enqueue

Show PhysicalDeviceShaderEnqueueFeaturesAMDX Source # 
Instance details

Defined in Vulkan.Extensions.VK_AMDX_shader_enqueue

FromCStruct PhysicalDeviceShaderEnqueueFeaturesAMDX Source # 
Instance details

Defined in Vulkan.Extensions.VK_AMDX_shader_enqueue

ToCStruct PhysicalDeviceShaderEnqueueFeaturesAMDX Source # 
Instance details

Defined in Vulkan.Extensions.VK_AMDX_shader_enqueue

Zero PhysicalDeviceShaderEnqueueFeaturesAMDX Source # 
Instance details

Defined in Vulkan.Extensions.VK_AMDX_shader_enqueue

data ExecutionGraphPipelineCreateInfoAMDX (es :: [Type]) Source #

VkExecutionGraphPipelineCreateInfoAMDX - Structure specifying parameters of a newly created execution graph pipeline

Description

The parameters basePipelineHandle and basePipelineIndex are described in more detail in Pipeline Derivatives.

Each shader stage provided when creating an execution graph pipeline (including those in libraries) is associated with a name and an index, determined by the inclusion or omission of a PipelineShaderStageNodeCreateInfoAMDX structure in its pNext chain. For any graphics pipeline libraries, only the name and index of the vertex or mesh shader stage is linked directly to the graph as a node - other shader stages in the pipeline will be executed after those shader stages as normal. Task shaders cannot be included in a graphics pipeline used for a draw node.

In addition to the shader name and index, an internal “node index” is also generated for each node, which can be queried with getExecutionGraphPipelineNodeIndexAMDX, and is used exclusively for initial dispatch of an execution graph.

Valid Usage

Valid Usage (Implicit)

See Also

VK_AMDX_shader_enqueue, Pipeline, PipelineCreateFlags, PipelineLayout, PipelineLibraryCreateInfoKHR, PipelineShaderStageCreateInfo, StructureType, createExecutionGraphPipelinesAMDX

Constructors

ExecutionGraphPipelineCreateInfoAMDX 

Fields

Instances

Instances details
Extensible ExecutionGraphPipelineCreateInfoAMDX Source # 
Instance details

Defined in Vulkan.Extensions.VK_AMDX_shader_enqueue

Show (Chain es) => Show (ExecutionGraphPipelineCreateInfoAMDX es) Source # 
Instance details

Defined in Vulkan.Extensions.VK_AMDX_shader_enqueue

(Extendss ExecutionGraphPipelineCreateInfoAMDX es, PeekChain es) => FromCStruct (ExecutionGraphPipelineCreateInfoAMDX es) Source # 
Instance details

Defined in Vulkan.Extensions.VK_AMDX_shader_enqueue

(Extendss ExecutionGraphPipelineCreateInfoAMDX es, PokeChain es) => ToCStruct (ExecutionGraphPipelineCreateInfoAMDX es) Source # 
Instance details

Defined in Vulkan.Extensions.VK_AMDX_shader_enqueue

es ~ ('[] :: [Type]) => Zero (ExecutionGraphPipelineCreateInfoAMDX es) Source # 
Instance details

Defined in Vulkan.Extensions.VK_AMDX_shader_enqueue

data PipelineShaderStageNodeCreateInfoAMDX Source #

VkPipelineShaderStageNodeCreateInfoAMDX - Structure specifying the shader name and index with an execution graph

Description

When included in the pNext chain of a PipelineShaderStageCreateInfo structure, this structure specifies the shader name and shader index of a node when creating an execution graph pipeline. If this structure is omitted, the shader name is set to the name of the entry point in SPIR-V and the shader index is set to 0.

When dispatching a node from another shader, the name is fixed at pipeline creation, but the index can be set dynamically. By associating multiple shaders with the same name but different indexes, applications can dynamically select different nodes to execute. Applications must ensure each node has a unique name and index.

Shaders with the same name must be of the same type - e.g. a compute and graphics shader, or even two compute shaders where one is coalescing and the other is not, cannot share the same name.

Valid Usage (Implicit)

  • If pName is not NULL, pName must be a null-terminated UTF-8 string

See Also

VK_AMDX_shader_enqueue, StructureType, getExecutionGraphPipelineNodeIndexAMDX

Constructors

PipelineShaderStageNodeCreateInfoAMDX 

Fields

  • name :: Maybe ByteString

    pName is the shader name to use when creating a node in an execution graph. If pName is NULL, the name of the entry point specified in SPIR-V is used as the shader name.

  • index :: Word32

    index is the shader index to use when creating a node in an execution graph. If index is SHADER_INDEX_UNUSED_AMDX then the original index is used, either as specified by the ShaderIndexAMDX execution mode, or 0 if that too is not specified.

data ExecutionGraphPipelineScratchSizeAMDX Source #

VkExecutionGraphPipelineScratchSizeAMDX - Structure describing the scratch space required to dispatch an execution graph

Description

Applications can use any amount of scratch memory greater than minSize for dispatching a graph, however only the values equal to minSize + an integer multiple of sizeGranularity will be used. Greater values may result in higher performance, up to maxSize which indicates the most memory that an implementation can use effectively.

Valid Usage (Implicit)

See Also

VK_AMDX_shader_enqueue, DeviceSize, StructureType, getExecutionGraphPipelineScratchSizeAMDX

Constructors

ExecutionGraphPipelineScratchSizeAMDX 

Fields

  • minSize :: DeviceSize

    minSize indicates the minimum scratch space required for dispatching the queried execution graph.

  • maxSize :: DeviceSize

    maxSize indicates the maximum scratch space that can be used for dispatching the queried execution graph.

  • sizeGranularity :: DeviceSize

    sizeGranularity indicates the granularity at which the scratch space can be increased from minSize.

Instances

Instances details
Eq ExecutionGraphPipelineScratchSizeAMDX Source # 
Instance details

Defined in Vulkan.Extensions.VK_AMDX_shader_enqueue

Storable ExecutionGraphPipelineScratchSizeAMDX Source # 
Instance details

Defined in Vulkan.Extensions.VK_AMDX_shader_enqueue

Show ExecutionGraphPipelineScratchSizeAMDX Source # 
Instance details

Defined in Vulkan.Extensions.VK_AMDX_shader_enqueue

FromCStruct ExecutionGraphPipelineScratchSizeAMDX Source # 
Instance details

Defined in Vulkan.Extensions.VK_AMDX_shader_enqueue

ToCStruct ExecutionGraphPipelineScratchSizeAMDX Source # 
Instance details

Defined in Vulkan.Extensions.VK_AMDX_shader_enqueue

Zero ExecutionGraphPipelineScratchSizeAMDX Source # 
Instance details

Defined in Vulkan.Extensions.VK_AMDX_shader_enqueue

data DispatchGraphInfoAMDX Source #

VkDispatchGraphInfoAMDX - Structure specifying node parameters for execution graph dispatch

Description

Whether payloads is consumed as a device or host pointer is defined by the command this structure is used in.

Valid Usage

See Also

VK_AMDX_shader_enqueue, DeviceOrHostAddressConstAMDX, DispatchGraphCountInfoAMDX

Constructors

DispatchGraphInfoAMDX 

Fields

data DispatchGraphCountInfoAMDX Source #

VkDispatchGraphCountInfoAMDX - Structure specifying count parameters for execution graph dispatch

Description

Whether infos is consumed as a device or host pointer is defined by the command this structure is used in.

See Also

VK_AMDX_shader_enqueue, DeviceOrHostAddressConstAMDX, cmdDispatchGraphAMDX, cmdDispatchGraphIndirectAMDX, cmdDispatchGraphIndirectCountAMDX

Constructors

DispatchGraphCountInfoAMDX 

Fields

type AMDX_SHADER_ENQUEUE_EXTENSION_NAME = "VK_AMDX_shader_enqueue" Source #

data PipelineLibraryCreateInfoKHR Source #

VkPipelineLibraryCreateInfoKHR - Structure specifying pipeline libraries to use when creating a pipeline

Valid Usage

Valid Usage (Implicit)

  • If libraryCount is not 0, pLibraries must be a valid pointer to an array of libraryCount valid Pipeline handles

See Also

VK_KHR_pipeline_library, ExecutionGraphPipelineCreateInfoAMDX, Pipeline, RayTracingPipelineCreateInfoKHR, StructureType

Constructors

PipelineLibraryCreateInfoKHR 

Fields

pattern SHADER_INDEX_UNUSED_AMDX :: Word32 Source #

VK_SHADER_INDEX_UNUSED_AMDX - Sentinel for an unused shader index

See Also

VK_AMDX_shader_enqueue