vulkan-3.26.1: Bindings to the Vulkan graphics API.
Safe HaskellSafe-Inferred
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
1
Ratification Status
Not ratified
Extension and Version Dependencies
VK_KHR_get_physical_device_properties2 and VK_KHR_synchronization2 and VK_KHR_pipeline_library and VK_KHR_spirv_1_4
  • __This is a provisional extension and must be used with caution. See the description of provisional header files for enablement and stability details.__
Contact
Extension Proposal
VK_AMDX_shader_enqueue

Other Extension Metadata

Last Modified Date
2021-07-22
Interactions and External Dependencies
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 compute shader workgroups from other compute shaders.

New Commands

New Structures

New Unions

New Enum Constants

If VK_KHR_maintenance5 is supported:

Version History

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

    • Initial revision

See Also

SHADER_INDEX_UNUSED_AMDX, DeviceOrHostAddressConstAMDX, DispatchGraphCountInfoAMDX, DispatchGraphInfoAMDX, ExecutionGraphPipelineCreateInfoAMDX, ExecutionGraphPipelineScratchSizeAMDX, PhysicalDeviceShaderEnqueueFeaturesAMDX, PhysicalDeviceShaderEnqueuePropertiesAMDX, PipelineShaderStageNodeCreateInfoAMDX, cmdDispatchGraphAMDX, cmdDispatchGraphIndirectAMDX, cmdDispatchGraphIndirectCountAMDX, cmdInitializeGraphScratchMemoryAMDX, createExecutionGraphPipelinesAMDX, getExecutionGraphPipelineNodeIndexAMDX, getExecutionGraphPipelineScratchSizeAMDX

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

:: forall io. MonadIO io 
=> Device

device is the 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

:: forall io. MonadIO io 
=> Device

device is the 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

:: forall io. 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.

-> ("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

The implementation will create a pipeline in each element of pPipelines from the corresponding element of pCreateInfos. If creation of any pipeline fails, that pipeline will be set to NULL_HANDLE.

If creation fails for a pipeline create info with a ExecutionGraphPipelineCreateInfoAMDX::flags value that included PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT, all pipelines at a greater index all automatically fail.

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

:: forall io. MonadIO io 
=> CommandBuffer

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

-> ("scratch" ::: DeviceAddress)

scratch is a pointer to the 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 currently bound execution graph pipeline.

Execution of this command may modify any memory locations in the range [scratch,scratch + size), where size is the value returned in ExecutionGraphPipelineScratchSizeAMDX::size by ExecutionGraphPipelineScratchSizeAMDX for the currently bound execution graph pipeline. 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 a multiple of 64

Valid Usage (Implicit)

  • commandBuffer must be in the recording state
  • The CommandPool that commandBuffer was allocated from must support graphics, or compute operations
  • This command must only be called outside of a render pass instance
  • This command must only be called outside of a video coding scope
  • commandBuffer must be a primary CommandBuffer

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 Outside Outside Graphics ComputeAction

See Also

VK_AMDX_shader_enqueue, CommandBuffer, DeviceAddress

cmdDispatchGraphAMDX Source #

Arguments

:: forall io. MonadIO io 
=> CommandBuffer

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

-> ("scratch" ::: DeviceAddress)

scratch is a pointer to the 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.

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 + size), where size is the value returned in ExecutionGraphPipelineScratchSizeAMDX::size by ExecutionGraphPipelineScratchSizeAMDX for the currently bound execution graph pipeline 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)

  • pCountInfo must be a valid pointer to a valid DispatchGraphCountInfoAMDX structure
  • commandBuffer must be in the recording state
  • The CommandPool that commandBuffer was allocated from must support graphics, or compute operations
  • This command must only be called outside of a render pass instance
  • This command must only be called outside of a video coding scope
  • commandBuffer must be a primary CommandBuffer

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 Outside Outside Graphics ComputeAction

See Also

VK_AMDX_shader_enqueue, CommandBuffer, DeviceAddress, DispatchGraphCountInfoAMDX

cmdDispatchGraphIndirectAMDX Source #

Arguments

:: forall io. MonadIO io 
=> CommandBuffer

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

-> ("scratch" ::: DeviceAddress)

scratch is a pointer to the 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.

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 + size), where size is the value returned in ExecutionGraphPipelineScratchSizeAMDX::size by ExecutionGraphPipelineScratchSizeAMDX for the currently bound execution graph pipeline. 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)

  • pCountInfo must be a valid pointer to a valid DispatchGraphCountInfoAMDX structure
  • commandBuffer must be in the recording state
  • The CommandPool that commandBuffer was allocated from must support graphics, or compute operations
  • This command must only be called outside of a render pass instance
  • This command must only be called outside of a video coding scope
  • commandBuffer must be a primary CommandBuffer

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 Outside Outside Graphics ComputeAction

See Also

VK_AMDX_shader_enqueue, CommandBuffer, DeviceAddress, DispatchGraphCountInfoAMDX

cmdDispatchGraphIndirectCountAMDX Source #

Arguments

:: forall io. MonadIO io 
=> CommandBuffer

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

-> ("scratch" ::: DeviceAddress)

scratch is a pointer to the 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 + size), where size is the value returned in ExecutionGraphPipelineScratchSizeAMDX::size by ExecutionGraphPipelineScratchSizeAMDX for the currently bound execution graph pipeline. 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)

  • commandBuffer must be in the recording state
  • The CommandPool that commandBuffer was allocated from must support graphics, or compute operations
  • This command must only be called outside of a render pass instance
  • This command must only be called outside of a video coding scope
  • commandBuffer must be a primary CommandBuffer

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 Outside Outside Graphics ComputeAction

See Also

VK_AMDX_shader_enqueue, CommandBuffer, DeviceAddress

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.

Instances

Instances details
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

Eq 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. PhysicalDeviceShaderEnqueueFeaturesAMDX can also be used in the pNext chain of DeviceCreateInfo to selectively enable these features.

Valid Usage (Implicit)

See Also

VK_AMDX_shader_enqueue, Bool32, StructureType

Constructors

PhysicalDeviceShaderEnqueueFeaturesAMDX 

Fields

Instances

Instances details
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

Eq 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.

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.

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

Valid Usage (Implicit)

See Also

VK_AMDX_shader_enqueue, DeviceSize, StructureType, getExecutionGraphPipelineScratchSizeAMDX

Constructors

ExecutionGraphPipelineScratchSizeAMDX 

Fields

  • size :: DeviceSize

    size indicates the scratch space required for dispatch the queried execution graph.

Instances

Instances details
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

Eq 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

newtype BufferUsageFlagBits2KHR Source #

VkBufferUsageFlagBits2KHR - Bitmask controlling how a pipeline is created

See Also

VK_KHR_maintenance5

Bundled Patterns

pattern BUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR :: BufferUsageFlagBits2KHR

BUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR specifies that the buffer can be used as the source of a transfer command (see the definition of https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-transfer).

pattern BUFFER_USAGE_2_TRANSFER_DST_BIT_KHR :: BufferUsageFlagBits2KHR

BUFFER_USAGE_2_TRANSFER_DST_BIT_KHR specifies that the buffer can be used as the destination of a transfer command.

pattern BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR :: BufferUsageFlagBits2KHR

BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR specifies that the buffer can be used to create a BufferView suitable for occupying a DescriptorSet slot of type DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER.

pattern BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR :: BufferUsageFlagBits2KHR

BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR specifies that the buffer can be used to create a BufferView suitable for occupying a DescriptorSet slot of type DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER.

pattern BUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR :: BufferUsageFlagBits2KHR

BUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR specifies that the buffer can be used in a DescriptorBufferInfo suitable for occupying a DescriptorSet slot either of type DESCRIPTOR_TYPE_UNIFORM_BUFFER or DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC.

pattern BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR :: BufferUsageFlagBits2KHR

BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR specifies that the buffer can be used in a DescriptorBufferInfo suitable for occupying a DescriptorSet slot either of type DESCRIPTOR_TYPE_STORAGE_BUFFER or DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC.

pattern BUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR :: BufferUsageFlagBits2KHR

BUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR specifies that the buffer is suitable for passing as the buffer parameter to cmdBindIndexBuffer2KHR and cmdBindIndexBuffer.

pattern BUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR :: BufferUsageFlagBits2KHR

BUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR specifies that the buffer is suitable for passing as an element of the pBuffers array to cmdBindVertexBuffers.

pattern BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR :: BufferUsageFlagBits2KHR

BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR specifies that the buffer is suitable for passing as the buffer parameter to cmdDrawIndirect, cmdDrawIndexedIndirect, cmdDrawMeshTasksIndirectNV, cmdDrawMeshTasksIndirectCountNV, cmdDrawMeshTasksIndirectEXT, cmdDrawMeshTasksIndirectCountEXT, cmdDrawClusterIndirectHUAWEI, or cmdDispatchIndirect. It is also suitable for passing as the buffer member of IndirectCommandsStreamNV, or sequencesCountBuffer or sequencesIndexBuffer or preprocessedBuffer member of GeneratedCommandsInfoNV

pattern BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT :: BufferUsageFlagBits2KHR 
pattern BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT :: BufferUsageFlagBits2KHR 
pattern BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT :: BufferUsageFlagBits2KHR

BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT specifies that the buffer, when bound, can be used by the implementation to support push descriptors when using descriptor buffers.

pattern BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT :: BufferUsageFlagBits2KHR

BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT specifies that the buffer is suitable to contain resource descriptors when bound as a descriptor buffer.

pattern BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT :: BufferUsageFlagBits2KHR

BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT specifies that the buffer is suitable to contain sampler and combined image sampler descriptors when bound as a descriptor buffer. Buffers containing combined image sampler descriptors must also specify BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT.

pattern BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR :: BufferUsageFlagBits2KHR

BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR specifies that the buffer is suitable for storage space for a AccelerationStructureKHR.

pattern BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR :: BufferUsageFlagBits2KHR

BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR specifies that the buffer is suitable for use as a read-only input to an acceleration structure build.

pattern BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR :: BufferUsageFlagBits2KHR

BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR specifies that the buffer can be used to retrieve a buffer device address via getBufferDeviceAddress and use that address to access the buffer’s memory from a shader.

pattern BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR :: BufferUsageFlagBits2KHR

BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR is reserved for future use.

pattern BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR :: BufferUsageFlagBits2KHR

BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR specifies that the buffer can be used as the destination video bitstream buffer in a video encode operation.

pattern BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR :: BufferUsageFlagBits2KHR

BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR is reserved for future use.

pattern BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR :: BufferUsageFlagBits2KHR

BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR specifies that the buffer can be used as the source video bitstream buffer in a video decode operation.

pattern BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT :: BufferUsageFlagBits2KHR

BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT specifies that the buffer is suitable for using as a counter buffer with cmdBeginTransformFeedbackEXT and cmdEndTransformFeedbackEXT.

pattern BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT :: BufferUsageFlagBits2KHR

BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT specifies that the buffer is suitable for using for binding as a transform feedback buffer with cmdBindTransformFeedbackBuffersEXT.

pattern BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR :: BufferUsageFlagBits2KHR

BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR specifies that the buffer is suitable for use as a Shader Binding Table.

pattern BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT :: BufferUsageFlagBits2KHR

BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT specifies that the buffer is suitable for passing as the buffer parameter to cmdBeginConditionalRenderingEXT.

pattern BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX :: BufferUsageFlagBits2KHR

BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX specifies that the buffer can be used for as scratch memory for execution graph dispatch.

Instances

Instances details
Storable BufferUsageFlagBits2KHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_AMDX_shader_enqueue

Bits BufferUsageFlagBits2KHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_AMDX_shader_enqueue

FiniteBits BufferUsageFlagBits2KHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_AMDX_shader_enqueue

Read BufferUsageFlagBits2KHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_AMDX_shader_enqueue

Show BufferUsageFlagBits2KHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_AMDX_shader_enqueue

Eq BufferUsageFlagBits2KHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_AMDX_shader_enqueue

Ord BufferUsageFlagBits2KHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_AMDX_shader_enqueue

Zero BufferUsageFlagBits2KHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_AMDX_shader_enqueue

type AMDX_SHADER_ENQUEUE_EXTENSION_NAME = "VK_AMDX_shader_enqueue" Source #

pattern AMDX_SHADER_ENQUEUE_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a 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