Package org.lwjgl.vulkan
Class VkComputePipelineCreateInfo
java.lang.Object
org.lwjgl.system.Pointer.Default
org.lwjgl.system.Struct<VkComputePipelineCreateInfo>
org.lwjgl.vulkan.VkComputePipelineCreateInfo
- All Implemented Interfaces:
AutoCloseable,org.lwjgl.system.NativeResource,org.lwjgl.system.Pointer
public class VkComputePipelineCreateInfo
extends org.lwjgl.system.Struct<VkComputePipelineCreateInfo>
implements org.lwjgl.system.NativeResource
Structure specifying parameters of a newly created compute pipeline.
Description
The parameters basePipelineHandle and basePipelineIndex are described in more detail in Pipeline Derivatives.
If the pNext chain includes a VkPipelineCreateFlags2CreateInfo structure, VkPipelineCreateFlags2CreateInfo::flags from that structure is used instead of flags from this structure.
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 computeVkPipelinehandle - 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 ofstagemust beSHADER_STAGE_COMPUTE_BIT - The shader code for the entry point identified by
stageand the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter - The number of resources in
layoutaccessible to the compute shader stage must be less than or equal toVkPhysicalDeviceLimits::maxPerStageResources - If the
shaderEnqueuefeature is not enabled,flagsmust not includePIPELINE_CREATE_LIBRARY_BIT_KHR - If
flagsdoes not includePIPELINE_CREATE_LIBRARY_BIT_KHR, the shader specified bystagemust not declare theShaderEnqueueAMDXcapability - If
VkPipelineCreationFeedbackCreateInfo::pipelineStageCreationFeedbackCountis not 0, it must be 1 flagsmust not includePIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXTflagsmust not includePIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV
Valid Usage (Implicit)
sTypemust beSTRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO- Each
pNextmember of any structure (including this one) in thepNextchain must be eitherNULLor a pointer to a valid instance ofVkComputePipelineIndirectBufferInfoNV,VkPipelineBinaryInfoKHR,VkPipelineCompilerControlCreateInfoAMD,VkPipelineCreateFlags2CreateInfo,VkPipelineCreationFeedbackCreateInfo,VkPipelineRobustnessCreateInfo, orVkSubpassShadingPipelineCreateInfoHUAWEI - The
sTypevalue of each struct in thepNextchain must be unique stagemust be a validVkPipelineShaderStageCreateInfostructurelayoutmust 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
VkPipelineShaderStageCreateInfo, CreateComputePipelines, GetPipelineIndirectMemoryRequirementsNV
Layout
struct VkComputePipelineCreateInfo {
VkStructureType sType();
void const * pNext();
VkPipelineCreateFlags flags();
VkPipelineShaderStageCreateInfo stage();
VkPipelineLayout layout();
VkPipeline basePipelineHandle();
int32_t basePipelineIndex();
}-
Nested Class Summary
Nested ClassesNested 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 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
ConstructorsConstructorDescriptionVkComputePipelineCreateInfo(ByteBuffer container) Creates aVkComputePipelineCreateInfoinstance at the current position of the specifiedByteBuffercontainer. -
Method Summary
Modifier and TypeMethodDescriptionlonga pipeline to derive from.basePipelineHandle(long value) Sets the specified value to thebasePipelineHandle()field.intan index into thepCreateInfosparameter to use as a pipeline to derive from.basePipelineIndex(int value) Sets the specified value to thebasePipelineIndex()field.static VkComputePipelineCreateInfocalloc()Returns a newVkComputePipelineCreateInfoinstance allocated withmemCalloc.calloc(int capacity) Returns a newVkComputePipelineCreateInfo.Bufferinstance allocated withmemCalloc.calloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkComputePipelineCreateInfo.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.static VkComputePipelineCreateInfocalloc(org.lwjgl.system.MemoryStack stack) Returns a newVkComputePipelineCreateInfoinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.static VkComputePipelineCreateInfoDeprecated.callocStack(int capacity) Deprecated.callocStack(int capacity, org.lwjgl.system.MemoryStack stack) Deprecated.static VkComputePipelineCreateInfocallocStack(org.lwjgl.system.MemoryStack stack) Deprecated.static VkComputePipelineCreateInfocreate()Returns a newVkComputePipelineCreateInfoinstance allocated withBufferUtils.create(int capacity) Returns a newVkComputePipelineCreateInfo.Bufferinstance allocated withBufferUtils.static VkComputePipelineCreateInfocreate(long address) Returns a newVkComputePipelineCreateInfoinstance for the specified memory address.create(long address, int capacity) Create aVkComputePipelineCreateInfo.Bufferinstance at the specified memory.static @Nullable VkComputePipelineCreateInfocreateSafe(long address) static @Nullable VkComputePipelineCreateInfo.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.static VkComputePipelineCreateInfomalloc()Returns a newVkComputePipelineCreateInfoinstance allocated withmemAlloc.malloc(int capacity) Returns a newVkComputePipelineCreateInfo.Bufferinstance allocated withmemAlloc.malloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkComputePipelineCreateInfo.Bufferinstance allocated on the specifiedMemoryStack.static VkComputePipelineCreateInfomalloc(org.lwjgl.system.MemoryStack stack) Returns a newVkComputePipelineCreateInfoinstance allocated on the specifiedMemoryStack.static VkComputePipelineCreateInfoDeprecated.mallocStack(int capacity) Deprecated.mallocStack(int capacity, org.lwjgl.system.MemoryStack stack) Deprecated.static VkComputePipelineCreateInfomallocStack(org.lwjgl.system.MemoryStack stack) Deprecated.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 longnpNext(long struct) Unsafe version ofpNext().static voidnpNext(long struct, long value) Unsafe version ofpNext.nstage(long struct) Unsafe version ofstage().static voidnstage(long struct, VkPipelineShaderStageCreateInfo value) Unsafe version ofstage.static intnsType(long struct) Unsafe version ofsType().static voidnsType(long struct, int value) Unsafe version ofsType.longpNext()NULLor a pointer to a structure extending this structure.pNext(long value) Sets the specified value to thepNext()field.Prepends the specifiedVkComputePipelineIndirectBufferInfoNVvalue to thepNextchain.pNext(VkPipelineBinaryInfoKHR value) Prepends the specifiedVkPipelineBinaryInfoKHRvalue to thepNextchain.Prepends the specifiedVkPipelineCompilerControlCreateInfoAMDvalue to thepNextchain.Prepends the specifiedVkPipelineCreateFlags2CreateInfovalue to thepNextchain.Prepends the specifiedVkPipelineCreateFlags2CreateInfoKHRvalue to thepNextchain.Prepends the specifiedVkPipelineCreationFeedbackCreateInfovalue to thepNextchain.Prepends the specifiedVkPipelineCreationFeedbackCreateInfoEXTvalue to thepNextchain.Prepends the specifiedVkPipelineRobustnessCreateInfovalue to thepNextchain.Prepends the specifiedVkPipelineRobustnessCreateInfoEXTvalue to thepNextchain.Prepends the specifiedVkSubpassShadingPipelineCreateInfoHUAWEIvalue to thepNextchain.set(int sType, long pNext, int flags, VkPipelineShaderStageCreateInfo stage, long layout, long basePipelineHandle, int basePipelineIndex) Initializes this struct with the specified values.Copies the specified struct data to this struct.intsizeof()stage()aVkPipelineShaderStageCreateInfostructure describing the compute shader.stage(Consumer<VkPipelineShaderStageCreateInfo> consumer) Copies the specifiedVkPipelineShaderStageCreateInfoto thestage()field.intsType()aVkStructureTypevalue identifying this structure.sType(int value) Sets the specified value to thesType()field.Sets theSTRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFOvalue 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. -
STAGE
public static final int STAGEThe 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
-
VkComputePipelineCreateInfo
Creates aVkComputePipelineCreateInfoinstance 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<VkComputePipelineCreateInfo>
-
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. -
stage
aVkPipelineShaderStageCreateInfostructure describing the compute shader. -
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_COMPUTE_PIPELINE_CREATE_INFOvalue to thesType()field. -
pNext
Sets the specified value to thepNext()field. -
pNext
Prepends the specifiedVkComputePipelineIndirectBufferInfoNVvalue to thepNextchain. -
pNext
Prepends the specifiedVkPipelineBinaryInfoKHRvalue to thepNextchain. -
pNext
Prepends the specifiedVkPipelineCompilerControlCreateInfoAMDvalue to thepNextchain. -
pNext
Prepends the specifiedVkPipelineCreateFlags2CreateInfovalue to thepNextchain. -
pNext
Prepends the specifiedVkPipelineCreateFlags2CreateInfoKHRvalue to thepNextchain. -
pNext
Prepends the specifiedVkPipelineCreationFeedbackCreateInfovalue to thepNextchain. -
pNext
Prepends the specifiedVkPipelineCreationFeedbackCreateInfoEXTvalue to thepNextchain. -
pNext
Prepends the specifiedVkPipelineRobustnessCreateInfovalue to thepNextchain. -
pNext
Prepends the specifiedVkPipelineRobustnessCreateInfoEXTvalue to thepNextchain. -
pNext
Prepends the specifiedVkSubpassShadingPipelineCreateInfoHUAWEIvalue to thepNextchain. -
flags
Sets the specified value to theflags()field. -
stage
Copies the specifiedVkPipelineShaderStageCreateInfoto thestage()field. -
stage
-
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 VkComputePipelineCreateInfo set(int sType, long pNext, int flags, VkPipelineShaderStageCreateInfo stage, 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 newVkComputePipelineCreateInfoinstance allocated withmemAlloc. The instance must be explicitly freed. -
calloc
Returns a newVkComputePipelineCreateInfoinstance allocated withmemCalloc. The instance must be explicitly freed. -
create
Returns a newVkComputePipelineCreateInfoinstance allocated withBufferUtils. -
create
Returns a newVkComputePipelineCreateInfoinstance for the specified memory address. -
createSafe
-
malloc
Returns a newVkComputePipelineCreateInfo.Bufferinstance allocated withmemAlloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
calloc
Returns a newVkComputePipelineCreateInfo.Bufferinstance allocated withmemCalloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
create
Returns a newVkComputePipelineCreateInfo.Bufferinstance allocated withBufferUtils.- Parameters:
capacity- the buffer capacity
-
create
Create aVkComputePipelineCreateInfo.Bufferinstance at the specified memory.- Parameters:
address- the memory addresscapacity- the buffer capacity
-
createSafe
-
mallocStack
Deprecated.Deprecated for removal in 3.4.0. Usemalloc(MemoryStack)instead. -
callocStack
Deprecated.Deprecated for removal in 3.4.0. Usecalloc(MemoryStack)instead. -
mallocStack
@Deprecated public static VkComputePipelineCreateInfo mallocStack(org.lwjgl.system.MemoryStack stack) Deprecated.Deprecated for removal in 3.4.0. Usemalloc(MemoryStack)instead. -
callocStack
@Deprecated public static VkComputePipelineCreateInfo callocStack(org.lwjgl.system.MemoryStack stack) Deprecated.Deprecated for removal in 3.4.0. Usecalloc(MemoryStack)instead. -
mallocStack
Deprecated.Deprecated for removal in 3.4.0. Usemalloc(int, MemoryStack)instead. -
callocStack
Deprecated.Deprecated for removal in 3.4.0. Usecalloc(int, MemoryStack)instead. -
mallocStack
@Deprecated public static VkComputePipelineCreateInfo.Buffer mallocStack(int capacity, org.lwjgl.system.MemoryStack stack) Deprecated.Deprecated for removal in 3.4.0. Usemalloc(int, MemoryStack)instead. -
callocStack
@Deprecated public static VkComputePipelineCreateInfo.Buffer callocStack(int capacity, org.lwjgl.system.MemoryStack stack) Deprecated.Deprecated for removal in 3.4.0. Usecalloc(int, MemoryStack)instead. -
malloc
Returns a newVkComputePipelineCreateInfoinstance allocated on the specifiedMemoryStack.- Parameters:
stack- the stack from which to allocate
-
calloc
Returns a newVkComputePipelineCreateInfoinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
stack- the stack from which to allocate
-
malloc
public static VkComputePipelineCreateInfo.Buffer malloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkComputePipelineCreateInfo.Bufferinstance allocated on the specifiedMemoryStack.- Parameters:
capacity- the buffer capacitystack- the stack from which to allocate
-
calloc
public static VkComputePipelineCreateInfo.Buffer calloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkComputePipelineCreateInfo.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(). -
nstage
Unsafe version ofstage(). -
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. -
nstage
Unsafe version ofstage. -
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
-