Class VkExecutionGraphPipelineCreateInfoAMDX
- All Implemented Interfaces:
AutoCloseable,org.lwjgl.system.NativeResource,org.lwjgl.system.Pointer
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
pNextchain does not include aVkPipelineCreateFlags2CreateInfostructure,flagsmust be a valid combination ofVkPipelineCreateFlagBitsvalues - If
flagscontains thePIPELINE_CREATE_DERIVATIVE_BITflag, andbasePipelineIndexis -1,basePipelineHandlemust be a valid execution graphVkPipelinehandle - If
flagscontains thePIPELINE_CREATE_DERIVATIVE_BITflag, andbasePipelineHandleisNULL_HANDLE,basePipelineIndexmust be a valid index into the calling command’spCreateInfosparameter - If
flagscontains thePIPELINE_CREATE_DERIVATIVE_BITflag,basePipelineIndexmust be -1 orbasePipelineHandlemust beNULL_HANDLE - If a push constant block is declared in a shader, a push constant range in
layoutmust 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
layoutthat matches the stage - If a resource variable is declared in a shader, the corresponding descriptor set in
layoutmust 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 inlayoutmust match the descriptor type - If a resource variable is declared in a shader as an array, the corresponding descriptor set in
layoutmust 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
flagsmust not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHRflagsmust not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHRflagsmust not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHRflagsmust not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHRflagsmust not includePIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHRflagsmust not includePIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHRflagsmust not includePIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHRflagsmust not includePIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV- If the
VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedComputePipelinesfeature is not enabled,flagsmust not includePIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV - If
flagsincludesPIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV, then thepNextchain must include a pointer to a valid instance ofVkComputePipelineIndirectBufferInfoNVspecifying the address where the pipeline’s metadata will be saved - If
flagsincludesPIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT, then theVkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT::deviceGeneratedCommandsfeature must be enabled - If the
pipelineCreationCacheControlfeature is not enabled,flagsmust not includePIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BITorPIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT - The
stagemember of any element ofpStagesmust beSHADER_STAGE_COMPUTE_BIT - The shader code for the entry point identified by each element of
pStagesand the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter layoutmust be consistent with the layout of the shaders specified inpStages- If
pLibraryInfois notNULL, each element of itspLibrariesmember must have been created with alayoutthat is compatible with thelayoutin this pipeline - The number of resources in
layoutaccessible to each shader stage that is used by the pipeline must be less than or equal toVkPhysicalDeviceLimits::maxPerStageResources - If
pLibraryInfois notNULL, each element ofpLibraryInfo→pLibrariesmust be either a compute pipeline, an execution graph pipeline, or a graphics pipeline - If
pLibraryInfois notNULL, each element ofpLibraryInfo→pLibrariesthat is a compute pipeline or a graphics pipeline must have been created withPIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDXset - If the
shaderMeshEnqueuefeature is not enabled, andpLibraryInfo→pLibrariesis notNULL,pLibraryInfo→pLibrariesmust not contain any graphics pipelines - Any element of
pLibraryInfo→pLibrariesidentifying a graphics pipeline must have been created with all possible state subsets - There must be no two nodes in the pipeline that share both the same shader name and index, as specified by
VkPipelineShaderStageNodeCreateInfoAMDX - There must be no two nodes in the pipeline that share the same shader name and have input payload declarations with different sizes
- There must be no two nodes in the pipeline that share the same name but have different execution models
- There must be no two nodes in the pipeline that share the same name where one includes
CoalescedInputCountAMDXand the other does not - There must be no two nodes in the pipeline that share the same name where one includes
StaticNumWorkgroupsAMDXand the other does not - If an output payload declared in any shader in the pipeline has a
PayloadNodeNameAMDXdecoration with aNodeNamethat matches the shader name of any other node in the graph, the size of the output payload must match the size of the input payload in the matching node - If
flagsdoes not includePIPELINE_CREATE_LIBRARY_BIT_KHR, and an output payload declared in any shader in the pipeline does not have aPayloadNodeSparseArrayAMDXdecoration, there must be a node in the graph corresponding to every index from 0 to itsPayloadNodeArraySizeAMDXdecoration
Valid Usage (Implicit)
sTypemust beSTRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX- Each
pNextmember of any structure (including this one) in thepNextchain must be eitherNULLor a pointer to a valid instance ofVkPipelineCompilerControlCreateInfoAMDorVkPipelineCreationFeedbackCreateInfo - The
sTypevalue of each struct in thepNextchain must be unique - If
stageCountis not 0, andpStagesis notNULL,pStagesmust be a valid pointer to an array ofstageCountvalidVkPipelineShaderStageCreateInfostructures - If
pLibraryInfois notNULL,pLibraryInfomust be a valid pointer to a validVkPipelineLibraryCreateInfoKHRstructure layoutmust be a validVkPipelineLayouthandle- Both of
basePipelineHandle, andlayoutthat are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the sameVkDevice
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();
}-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classAn array ofVkExecutionGraphPipelineCreateInfoAMDXstructs.Nested classes/interfaces inherited from class org.lwjgl.system.Struct
org.lwjgl.system.Struct.StructValidationNested classes/interfaces inherited from interface org.lwjgl.system.Pointer
org.lwjgl.system.Pointer.Default -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intThe struct alignment in bytes.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct size in bytes.static final intThe struct member offsets.static final intThe struct member offsets.Fields inherited from interface org.lwjgl.system.Pointer
BITS32, BITS64, CLONG_SHIFT, CLONG_SIZE, POINTER_SHIFT, POINTER_SIZE -
Constructor Summary
ConstructorsConstructorDescriptionVkExecutionGraphPipelineCreateInfoAMDX(ByteBuffer container) Creates aVkExecutionGraphPipelineCreateInfoAMDXinstance at the current position of the specifiedByteBuffercontainer. -
Method Summary
Modifier and TypeMethodDescriptionlonga pipeline to derive frombasePipelineHandle(long value) Sets the specified value to thebasePipelineHandle()field.intan index into thepCreateInfosparameter to use as a pipeline to derive frombasePipelineIndex(int value) Sets the specified value to thebasePipelineIndex()field.calloc()Returns a newVkExecutionGraphPipelineCreateInfoAMDXinstance allocated withmemCalloc.calloc(int capacity) Returns a newVkExecutionGraphPipelineCreateInfoAMDX.Bufferinstance allocated withmemCalloc.calloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkExecutionGraphPipelineCreateInfoAMDX.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.calloc(org.lwjgl.system.MemoryStack stack) Returns a newVkExecutionGraphPipelineCreateInfoAMDXinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.create()Returns a newVkExecutionGraphPipelineCreateInfoAMDXinstance allocated withBufferUtils.create(int capacity) Returns a newVkExecutionGraphPipelineCreateInfoAMDX.Bufferinstance allocated withBufferUtils.create(long address) Returns a newVkExecutionGraphPipelineCreateInfoAMDXinstance for the specified memory address.create(long address, int capacity) Create aVkExecutionGraphPipelineCreateInfoAMDX.Bufferinstance at the specified memory.static @Nullable VkExecutionGraphPipelineCreateInfoAMDXcreateSafe(long address) static @Nullable VkExecutionGraphPipelineCreateInfoAMDX.BuffercreateSafe(long address, int capacity) intflags()a bitmask ofVkPipelineCreateFlagBitsspecifying how the pipeline will be generated.flags(int value) Sets the specified value to theflags()field.longlayout()the description of binding locations used by both the pipeline and descriptor sets used with the pipeline.layout(long value) Sets the specified value to thelayout()field.malloc()Returns a newVkExecutionGraphPipelineCreateInfoAMDXinstance allocated withmemAlloc.malloc(int capacity) Returns a newVkExecutionGraphPipelineCreateInfoAMDX.Bufferinstance allocated withmemAlloc.malloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkExecutionGraphPipelineCreateInfoAMDX.Bufferinstance allocated on the specifiedMemoryStack.malloc(org.lwjgl.system.MemoryStack stack) Returns a newVkExecutionGraphPipelineCreateInfoAMDXinstance allocated on the specifiedMemoryStack.static longnbasePipelineHandle(long struct) Unsafe version ofbasePipelineHandle().static voidnbasePipelineHandle(long struct, long value) Unsafe version ofbasePipelineHandle.static intnbasePipelineIndex(long struct) Unsafe version ofbasePipelineIndex().static voidnbasePipelineIndex(long struct, int value) Unsafe version ofbasePipelineIndex.static intnflags(long struct) Unsafe version offlags().static voidnflags(long struct, int value) Unsafe version offlags.static longnlayout(long struct) Unsafe version oflayout().static voidnlayout(long struct, long value) Unsafe version oflayout.static @Nullable VkPipelineLibraryCreateInfoKHRnpLibraryInfo(long struct) Unsafe version ofpLibraryInfo().static voidnpLibraryInfo(long struct, @Nullable VkPipelineLibraryCreateInfoKHR value) Unsafe version ofpLibraryInfo.static longnpNext(long struct) Unsafe version ofpNext().static voidnpNext(long struct, long value) Unsafe version ofpNext.static @Nullable VkPipelineShaderStageCreateInfo.BuffernpStages(long struct) Unsafe version ofpStages().static voidnpStages(long struct, @Nullable VkPipelineShaderStageCreateInfo.Buffer value) Unsafe version ofpStages.static intnstageCount(long struct) Unsafe version ofstageCount().static voidnstageCount(long struct, int value) Sets the specified value to thestageCountfield of the specifiedstruct.static intnsType(long struct) Unsafe version ofsType().static voidnsType(long struct, int value) Unsafe version ofsType.@Nullable VkPipelineLibraryCreateInfoKHRa pointer to aVkPipelineLibraryCreateInfoKHRstructure defining pipeline libraries to include.pLibraryInfo(@Nullable VkPipelineLibraryCreateInfoKHR value) Sets the address of the specifiedVkPipelineLibraryCreateInfoKHRto thepLibraryInfo()field.longpNext()NULLor a pointer to a structure extending this structure.pNext(long value) Sets the specified value to thepNext()field.Prepends the specifiedVkPipelineCompilerControlCreateInfoAMDvalue to thepNextchain.Prepends the specifiedVkPipelineCreationFeedbackCreateInfovalue to thepNextchain.Prepends the specifiedVkPipelineCreationFeedbackCreateInfoEXTvalue to thepNextchain.@Nullable VkPipelineShaderStageCreateInfo.BufferpStages()a pointer to an array ofstageCountVkPipelineShaderStageCreateInfostructures describing the set of the shader stages to be included in the execution graph pipeline.pStages(@Nullable VkPipelineShaderStageCreateInfo.Buffer value) Sets the address of the specifiedVkPipelineShaderStageCreateInfo.Bufferto thepStages()field.set(int sType, long pNext, int flags, int stageCount, @Nullable VkPipelineShaderStageCreateInfo.Buffer pStages, @Nullable VkPipelineLibraryCreateInfoKHR pLibraryInfo, long layout, long basePipelineHandle, int basePipelineIndex) Initializes this struct with the specified values.Copies the specified struct data to this struct.intsizeof()intthe number of entries in thepStagesarray.stageCount(int value) Sets the specified value to thestageCount()field.intsType()aVkStructureTypevalue identifying this structure.sType(int value) Sets the specified value to thesType()field.Sets theSTRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDXvalue to thesType()field.static voidvalidate(long struct) Validates pointer members that should not beNULL.Methods inherited from class org.lwjgl.system.Struct
clear, free, isNull, validate, validateMethods inherited from class org.lwjgl.system.Pointer.Default
address, equals, hashCode, toStringMethods inherited from interface org.lwjgl.system.NativeResource
close, free
-
Field Details
-
SIZEOF
public static final int SIZEOFThe struct size in bytes. -
ALIGNOF
public static final int ALIGNOFThe struct alignment in bytes. -
STYPE
public static final int STYPEThe struct member offsets. -
PNEXT
public static final int PNEXTThe struct member offsets. -
FLAGS
public static final int FLAGSThe struct member offsets. -
STAGECOUNT
public static final int STAGECOUNTThe struct member offsets. -
PSTAGES
public static final int PSTAGESThe struct member offsets. -
PLIBRARYINFO
public static final int PLIBRARYINFOThe struct member offsets. -
LAYOUT
public static final int LAYOUTThe struct member offsets. -
BASEPIPELINEHANDLE
public static final int BASEPIPELINEHANDLEThe struct member offsets. -
BASEPIPELINEINDEX
public static final int BASEPIPELINEINDEXThe struct member offsets.
-
-
Constructor Details
-
VkExecutionGraphPipelineCreateInfoAMDX
Creates aVkExecutionGraphPipelineCreateInfoAMDXinstance at the current position of the specifiedByteBuffercontainer. Changes to the buffer's content will be visible to the struct instance and vice versa.The created instance holds a strong reference to the container object.
-
-
Method Details
-
sizeof
public int sizeof()- Specified by:
sizeofin classorg.lwjgl.system.Struct<VkExecutionGraphPipelineCreateInfoAMDX>
-
sType
public int sType()aVkStructureTypevalue identifying this structure. -
pNext
public long pNext()NULLor a pointer to a structure extending this structure. -
flags
public int flags()a bitmask ofVkPipelineCreateFlagBitsspecifying how the pipeline will be generated. -
stageCount
public int stageCount()the number of entries in thepStagesarray. -
pStages
a pointer to an array ofstageCountVkPipelineShaderStageCreateInfostructures describing the set of the shader stages to be included in the execution graph pipeline. -
pLibraryInfo
a pointer to aVkPipelineLibraryCreateInfoKHRstructure defining pipeline libraries to include. -
layout
public long layout()the description of binding locations used by both the pipeline and descriptor sets used with the pipeline. -
basePipelineHandle
public long basePipelineHandle()a pipeline to derive from -
basePipelineIndex
public int basePipelineIndex()an index into thepCreateInfosparameter to use as a pipeline to derive from -
sType
Sets the specified value to thesType()field. -
sType$Default
Sets theSTRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDXvalue to thesType()field. -
pNext
Sets the specified value to thepNext()field. -
pNext
Prepends the specifiedVkPipelineCompilerControlCreateInfoAMDvalue to thepNextchain. -
pNext
Prepends the specifiedVkPipelineCreationFeedbackCreateInfovalue to thepNextchain. -
pNext
Prepends the specifiedVkPipelineCreationFeedbackCreateInfoEXTvalue to thepNextchain. -
flags
Sets the specified value to theflags()field. -
stageCount
Sets the specified value to thestageCount()field. -
pStages
public VkExecutionGraphPipelineCreateInfoAMDX pStages(@Nullable VkPipelineShaderStageCreateInfo.Buffer value) Sets the address of the specifiedVkPipelineShaderStageCreateInfo.Bufferto thepStages()field. -
pLibraryInfo
public VkExecutionGraphPipelineCreateInfoAMDX pLibraryInfo(@Nullable VkPipelineLibraryCreateInfoKHR value) Sets the address of the specifiedVkPipelineLibraryCreateInfoKHRto thepLibraryInfo()field. -
layout
Sets the specified value to thelayout()field. -
basePipelineHandle
Sets the specified value to thebasePipelineHandle()field. -
basePipelineIndex
Sets the specified value to thebasePipelineIndex()field. -
set
public VkExecutionGraphPipelineCreateInfoAMDX set(int sType, long pNext, int flags, int stageCount, @Nullable VkPipelineShaderStageCreateInfo.Buffer pStages, @Nullable VkPipelineLibraryCreateInfoKHR pLibraryInfo, long layout, long basePipelineHandle, int basePipelineIndex) Initializes this struct with the specified values. -
set
Copies the specified struct data to this struct.- Parameters:
src- the source struct- Returns:
- this struct
-
malloc
Returns a newVkExecutionGraphPipelineCreateInfoAMDXinstance allocated withmemAlloc. The instance must be explicitly freed. -
calloc
Returns a newVkExecutionGraphPipelineCreateInfoAMDXinstance allocated withmemCalloc. The instance must be explicitly freed. -
create
Returns a newVkExecutionGraphPipelineCreateInfoAMDXinstance allocated withBufferUtils. -
create
Returns a newVkExecutionGraphPipelineCreateInfoAMDXinstance for the specified memory address. -
createSafe
-
malloc
Returns a newVkExecutionGraphPipelineCreateInfoAMDX.Bufferinstance allocated withmemAlloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
calloc
Returns a newVkExecutionGraphPipelineCreateInfoAMDX.Bufferinstance allocated withmemCalloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
create
Returns a newVkExecutionGraphPipelineCreateInfoAMDX.Bufferinstance allocated withBufferUtils.- Parameters:
capacity- the buffer capacity
-
create
Create aVkExecutionGraphPipelineCreateInfoAMDX.Bufferinstance at the specified memory.- Parameters:
address- the memory addresscapacity- the buffer capacity
-
createSafe
public static @Nullable VkExecutionGraphPipelineCreateInfoAMDX.Buffer createSafe(long address, int capacity) -
malloc
Returns a newVkExecutionGraphPipelineCreateInfoAMDXinstance allocated on the specifiedMemoryStack.- Parameters:
stack- the stack from which to allocate
-
calloc
Returns a newVkExecutionGraphPipelineCreateInfoAMDXinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
stack- the stack from which to allocate
-
malloc
public static VkExecutionGraphPipelineCreateInfoAMDX.Buffer malloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkExecutionGraphPipelineCreateInfoAMDX.Bufferinstance allocated on the specifiedMemoryStack.- Parameters:
capacity- the buffer capacitystack- the stack from which to allocate
-
calloc
public static VkExecutionGraphPipelineCreateInfoAMDX.Buffer calloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkExecutionGraphPipelineCreateInfoAMDX.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
capacity- the buffer capacitystack- the stack from which to allocate
-
nsType
public static int nsType(long struct) Unsafe version ofsType(). -
npNext
public static long npNext(long struct) Unsafe version ofpNext(). -
nflags
public static int nflags(long struct) Unsafe version offlags(). -
nstageCount
public static int nstageCount(long struct) Unsafe version ofstageCount(). -
npStages
Unsafe version ofpStages(). -
npLibraryInfo
Unsafe version ofpLibraryInfo(). -
nlayout
public static long nlayout(long struct) Unsafe version oflayout(). -
nbasePipelineHandle
public static long nbasePipelineHandle(long struct) Unsafe version ofbasePipelineHandle(). -
nbasePipelineIndex
public static int nbasePipelineIndex(long struct) Unsafe version ofbasePipelineIndex(). -
nsType
public static void nsType(long struct, int value) Unsafe version ofsType. -
npNext
public static void npNext(long struct, long value) Unsafe version ofpNext. -
nflags
public static void nflags(long struct, int value) Unsafe version offlags. -
nstageCount
public static void nstageCount(long struct, int value) Sets the specified value to thestageCountfield of the specifiedstruct. -
npStages
Unsafe version ofpStages. -
npLibraryInfo
Unsafe version ofpLibraryInfo. -
nlayout
public static void nlayout(long struct, long value) Unsafe version oflayout. -
nbasePipelineHandle
public static void nbasePipelineHandle(long struct, long value) Unsafe version ofbasePipelineHandle. -
nbasePipelineIndex
public static void nbasePipelineIndex(long struct, int value) Unsafe version ofbasePipelineIndex. -
validate
public static void validate(long struct) Validates pointer members that should not beNULL.- Parameters:
struct- the struct to validate
-