Class VkExecutionGraphPipelineCreateInfoAMDX

java.lang.Object
org.lwjgl.system.Pointer.Default
org.lwjgl.system.Struct<VkExecutionGraphPipelineCreateInfoAMDX>
org.lwjgl.vulkan.VkExecutionGraphPipelineCreateInfoAMDX
All Implemented Interfaces:
AutoCloseable, org.lwjgl.system.NativeResource, org.lwjgl.system.Pointer

public class VkExecutionGraphPipelineCreateInfoAMDX extends org.lwjgl.system.Struct<VkExecutionGraphPipelineCreateInfoAMDX> implements org.lwjgl.system.NativeResource
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 VkPipelineShaderStageNodeCreateInfoAMDX 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
  • If the pNext chain does not include a VkPipelineCreateFlags2CreateInfo structure, flags must be a valid combination of VkPipelineCreateFlagBits values
  • If flags contains the PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineIndex is -1, basePipelineHandle must be a valid execution graph VkPipeline handle
  • If flags contains the PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineHandle is NULL_HANDLE, basePipelineIndex must be a valid index into the calling command’s pCreateInfos parameter
  • If flags contains the PIPELINE_CREATE_DERIVATIVE_BIT flag, basePipelineIndex must be -1 or basePipelineHandle must be NULL_HANDLE
  • If a push constant block is declared in a shader, a push constant range in layout must match the shader stage
  • If a push constant block is declared in a shader, the block must be contained inside the push constant range in layout that matches the stage
  • If a resource variable is declared in a shader, the corresponding descriptor set in layout must match the shader stage
  • If a resource variable is declared in a shader, and the descriptor type is not DESCRIPTOR_TYPE_MUTABLE_EXT, the corresponding descriptor set in layout must match the descriptor type
  • If a resource variable is declared in a shader as an array, the corresponding descriptor set in layout must match the descriptor count
  • If a resource variables is declared in a shader as an array of descriptors, then the descriptor type of that variable must not be DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK
Valid Usage (Implicit)
See Also

VkPipelineLibraryCreateInfoKHR, VkPipelineShaderStageCreateInfo, CreateExecutionGraphPipelinesAMDX

Layout


 struct VkExecutionGraphPipelineCreateInfoAMDX {
     VkStructureType sType();
     void const * pNext();
     VkPipelineCreateFlags flags();
     uint32_t stageCount();
     VkPipelineShaderStageCreateInfo const * pStages();
     VkPipelineLibraryCreateInfoKHR const * pLibraryInfo();
     VkPipelineLayout layout();
     VkPipeline basePipelineHandle();
     int32_t basePipelineIndex();
 }