Package org.lwjgl.vulkan
Class VkGraphicsPipelineShaderGroupsCreateInfoNV
- java.lang.Object
-
- org.lwjgl.system.Pointer.Default
-
- org.lwjgl.system.Struct
-
- org.lwjgl.vulkan.VkGraphicsPipelineShaderGroupsCreateInfoNV
-
- All Implemented Interfaces:
java.lang.AutoCloseable,org.lwjgl.system.NativeResource,org.lwjgl.system.Pointer
public class VkGraphicsPipelineShaderGroupsCreateInfoNV extends org.lwjgl.system.Struct implements org.lwjgl.system.NativeResourceStructure specifying parameters of a newly created multi shader group pipeline.Description
When referencing shader groups by index, groups defined in the referenced pipelines are treated as if they were defined as additional entries in
pGroups. They are appended in the order they appear in thepPipelinesarray and in thepGroupsarray when those pipelines were defined.The application must maintain the lifetime of all such referenced pipelines based on the pipelines that make use of them.
Valid Usage
groupCountmust be at least 1 and as maximumVkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxGraphicsShaderGroupCount- The sum of
groupCountincluding those groups added from referencedpPipelinesmust also be as maximumVkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxGraphicsShaderGroupCount - The state of the first element of
pGroupsmust match its equivalent within the parent’sVkGraphicsPipelineCreateInfo - Each element of
pGroupsmust in combination with the rest of the pipeline state yield a valid state configuration - All elements of
pGroupsmust use the same shader stage combinations unless any mesh shader stage is used, then either combination of task and mesh or just mesh shader is valid - Mesh and regular primitive shading stages cannot be mixed across
pGroups - Each element of
pPipelinesmust have been created with identical state to the pipeline currently created except the state that can be overridden byVkGraphicsShaderGroupCreateInfoNV - The
VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommandsfeature must be enabled
Valid Usage (Implicit)
sTypemust beSTRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NVpGroupsmust be a valid pointer to an array ofgroupCountvalidVkGraphicsShaderGroupCreateInfoNVstructures- If
pipelineCountis not 0,pPipelinesmust be a valid pointer to an array ofpipelineCountvalidVkPipelinehandles groupCountmust be greater than 0
See Also
VkGraphicsShaderGroupCreateInfoNVLayout
struct VkGraphicsPipelineShaderGroupsCreateInfoNV { VkStructureTypesType(); void const *pNext(); uint32_tgroupCount();VkGraphicsShaderGroupCreateInfoNVconst *pGroups(); uint32_tpipelineCount(); VkPipeline const *pPipelines(); }
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classVkGraphicsPipelineShaderGroupsCreateInfoNV.BufferAn array ofVkGraphicsPipelineShaderGroupsCreateInfoNVstructs.
-
Field Summary
Fields Modifier and Type Field Description static intALIGNOFThe struct alignment in bytes.static intGROUPCOUNT
PGROUPS
PIPELINECOUNT
PNEXT
PPIPELINESThe struct member offsets.static intSIZEOFThe struct size in bytes.static intSTYPEThe struct member offsets.
-
Constructor Summary
Constructors Constructor Description VkGraphicsPipelineShaderGroupsCreateInfoNV(java.nio.ByteBuffer container)Creates aVkGraphicsPipelineShaderGroupsCreateInfoNVinstance at the current position of the specifiedByteBuffercontainer.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static VkGraphicsPipelineShaderGroupsCreateInfoNVcalloc()Returns a newVkGraphicsPipelineShaderGroupsCreateInfoNVinstance allocated withmemCalloc.static VkGraphicsPipelineShaderGroupsCreateInfoNV.Buffercalloc(int capacity)Returns a newVkGraphicsPipelineShaderGroupsCreateInfoNV.Bufferinstance allocated withmemCalloc.static VkGraphicsPipelineShaderGroupsCreateInfoNV.Buffercalloc(int capacity, org.lwjgl.system.MemoryStack stack)Returns a newVkGraphicsPipelineShaderGroupsCreateInfoNV.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.static VkGraphicsPipelineShaderGroupsCreateInfoNVcalloc(org.lwjgl.system.MemoryStack stack)Returns a newVkGraphicsPipelineShaderGroupsCreateInfoNVinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.static VkGraphicsPipelineShaderGroupsCreateInfoNVcreate()Returns a newVkGraphicsPipelineShaderGroupsCreateInfoNVinstance allocated withBufferUtils.static VkGraphicsPipelineShaderGroupsCreateInfoNV.Buffercreate(int capacity)Returns a newVkGraphicsPipelineShaderGroupsCreateInfoNV.Bufferinstance allocated withBufferUtils.static VkGraphicsPipelineShaderGroupsCreateInfoNVcreate(long address)Returns a newVkGraphicsPipelineShaderGroupsCreateInfoNVinstance for the specified memory address.static VkGraphicsPipelineShaderGroupsCreateInfoNV.Buffercreate(long address, int capacity)Create aVkGraphicsPipelineShaderGroupsCreateInfoNV.Bufferinstance at the specified memory.static VkGraphicsPipelineShaderGroupsCreateInfoNVcreateSafe(long address)static VkGraphicsPipelineShaderGroupsCreateInfoNV.BuffercreateSafe(long address, int capacity)intgroupCount()the number of elements in thepGroupsarray.static VkGraphicsPipelineShaderGroupsCreateInfoNVmalloc()Returns a newVkGraphicsPipelineShaderGroupsCreateInfoNVinstance allocated withmemAlloc.static VkGraphicsPipelineShaderGroupsCreateInfoNV.Buffermalloc(int capacity)Returns a newVkGraphicsPipelineShaderGroupsCreateInfoNV.Bufferinstance allocated withmemAlloc.static VkGraphicsPipelineShaderGroupsCreateInfoNV.Buffermalloc(int capacity, org.lwjgl.system.MemoryStack stack)Returns a newVkGraphicsPipelineShaderGroupsCreateInfoNV.Bufferinstance allocated on the specifiedMemoryStack.static VkGraphicsPipelineShaderGroupsCreateInfoNVmalloc(org.lwjgl.system.MemoryStack stack)Returns a newVkGraphicsPipelineShaderGroupsCreateInfoNVinstance allocated on the specifiedMemoryStack.static intngroupCount(long struct)Unsafe version ofgroupCount().static voidngroupCount(long struct, int value)Sets the specified value to thegroupCountfield of the specifiedstruct.static VkGraphicsShaderGroupCreateInfoNV.BuffernpGroups(long struct)Unsafe version ofpGroups().static voidnpGroups(long struct, VkGraphicsShaderGroupCreateInfoNV.Buffer value)Unsafe version ofpGroups.static intnpipelineCount(long struct)Unsafe version ofpipelineCount().static voidnpipelineCount(long struct, int value)Sets the specified value to thepipelineCountfield of the specifiedstruct.static longnpNext(long struct)Unsafe version ofpNext().static voidnpNext(long struct, long value)Unsafe version ofpNext.static java.nio.LongBuffernpPipelines(long struct)Unsafe version ofpPipelines.static voidnpPipelines(long struct, java.nio.LongBuffer value)Unsafe version ofpPipelines.static intnsType(long struct)Unsafe version ofsType().static voidnsType(long struct, int value)Unsafe version ofsType.VkGraphicsShaderGroupCreateInfoNV.BufferpGroups()a pointer to an array ofVkGraphicsShaderGroupCreateInfoNVstructures specifying which state of the originalVkGraphicsPipelineCreateInfoeach shader group overrides.VkGraphicsPipelineShaderGroupsCreateInfoNVpGroups(VkGraphicsShaderGroupCreateInfoNV.Buffer value)Sets the address of the specifiedVkGraphicsShaderGroupCreateInfoNV.Bufferto thepGroups()field.intpipelineCount()the number of elements in thepPipelinesarray.longpNext()NULLor a pointer to a structure extending this structure.VkGraphicsPipelineShaderGroupsCreateInfoNVpNext(long value)Sets the specified value to thepNext()field.java.nio.LongBufferpPipelines()a pointer to an array of graphicsVkPipelinestructures which are referenced within the created pipeline, including all their shader groups.VkGraphicsPipelineShaderGroupsCreateInfoNVpPipelines(java.nio.LongBuffer value)Sets the address of the specifiedLongBufferto thepPipelines()field.VkGraphicsPipelineShaderGroupsCreateInfoNVset(int sType, long pNext, VkGraphicsShaderGroupCreateInfoNV.Buffer pGroups, java.nio.LongBuffer pPipelines)Initializes this struct with the specified values.VkGraphicsPipelineShaderGroupsCreateInfoNVset(VkGraphicsPipelineShaderGroupsCreateInfoNV src)Copies the specified struct data to this struct.intsizeof()intsType()the type of this structure.VkGraphicsPipelineShaderGroupsCreateInfoNVsType(int value)Sets the specified value to thesType()field.VkGraphicsPipelineShaderGroupsCreateInfoNVsType$Default()Sets theSTRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NVvalue to thesType()field.static voidvalidate(long struct)Validates pointer members that should not beNULL.
-
-
-
Constructor Detail
-
VkGraphicsPipelineShaderGroupsCreateInfoNV
public VkGraphicsPipelineShaderGroupsCreateInfoNV(java.nio.ByteBuffer container)
Creates aVkGraphicsPipelineShaderGroupsCreateInfoNVinstance 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 Detail
-
sizeof
public int sizeof()
- Specified by:
sizeofin classorg.lwjgl.system.Struct
-
sType
public int sType()
the type of this structure.
-
pNext
public long pNext()
NULLor a pointer to a structure extending this structure.
-
groupCount
public int groupCount()
the number of elements in thepGroupsarray.
-
pGroups
public VkGraphicsShaderGroupCreateInfoNV.Buffer pGroups()
a pointer to an array ofVkGraphicsShaderGroupCreateInfoNVstructures specifying which state of the originalVkGraphicsPipelineCreateInfoeach shader group overrides.
-
pipelineCount
public int pipelineCount()
the number of elements in thepPipelinesarray.
-
pPipelines
@Nullable public java.nio.LongBuffer pPipelines()
a pointer to an array of graphicsVkPipelinestructures which are referenced within the created pipeline, including all their shader groups.
-
sType
public VkGraphicsPipelineShaderGroupsCreateInfoNV sType(int value)
Sets the specified value to thesType()field.
-
sType$Default
public VkGraphicsPipelineShaderGroupsCreateInfoNV sType$Default()
Sets theSTRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NVvalue to thesType()field.
-
pNext
public VkGraphicsPipelineShaderGroupsCreateInfoNV pNext(long value)
Sets the specified value to thepNext()field.
-
pGroups
public VkGraphicsPipelineShaderGroupsCreateInfoNV pGroups(VkGraphicsShaderGroupCreateInfoNV.Buffer value)
Sets the address of the specifiedVkGraphicsShaderGroupCreateInfoNV.Bufferto thepGroups()field.
-
pPipelines
public VkGraphicsPipelineShaderGroupsCreateInfoNV pPipelines(@Nullable java.nio.LongBuffer value)
Sets the address of the specifiedLongBufferto thepPipelines()field.
-
set
public VkGraphicsPipelineShaderGroupsCreateInfoNV set(int sType, long pNext, VkGraphicsShaderGroupCreateInfoNV.Buffer pGroups, @Nullable java.nio.LongBuffer pPipelines)
Initializes this struct with the specified values.
-
set
public VkGraphicsPipelineShaderGroupsCreateInfoNV set(VkGraphicsPipelineShaderGroupsCreateInfoNV src)
Copies the specified struct data to this struct.- Parameters:
src- the source struct- Returns:
- this struct
-
malloc
public static VkGraphicsPipelineShaderGroupsCreateInfoNV malloc()
Returns a newVkGraphicsPipelineShaderGroupsCreateInfoNVinstance allocated withmemAlloc. The instance must be explicitly freed.
-
calloc
public static VkGraphicsPipelineShaderGroupsCreateInfoNV calloc()
Returns a newVkGraphicsPipelineShaderGroupsCreateInfoNVinstance allocated withmemCalloc. The instance must be explicitly freed.
-
create
public static VkGraphicsPipelineShaderGroupsCreateInfoNV create()
Returns a newVkGraphicsPipelineShaderGroupsCreateInfoNVinstance allocated withBufferUtils.
-
create
public static VkGraphicsPipelineShaderGroupsCreateInfoNV create(long address)
Returns a newVkGraphicsPipelineShaderGroupsCreateInfoNVinstance for the specified memory address.
-
createSafe
@Nullable public static VkGraphicsPipelineShaderGroupsCreateInfoNV createSafe(long address)
-
malloc
public static VkGraphicsPipelineShaderGroupsCreateInfoNV.Buffer malloc(int capacity)
Returns a newVkGraphicsPipelineShaderGroupsCreateInfoNV.Bufferinstance allocated withmemAlloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
calloc
public static VkGraphicsPipelineShaderGroupsCreateInfoNV.Buffer calloc(int capacity)
Returns a newVkGraphicsPipelineShaderGroupsCreateInfoNV.Bufferinstance allocated withmemCalloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
create
public static VkGraphicsPipelineShaderGroupsCreateInfoNV.Buffer create(int capacity)
Returns a newVkGraphicsPipelineShaderGroupsCreateInfoNV.Bufferinstance allocated withBufferUtils.- Parameters:
capacity- the buffer capacity
-
create
public static VkGraphicsPipelineShaderGroupsCreateInfoNV.Buffer create(long address, int capacity)
Create aVkGraphicsPipelineShaderGroupsCreateInfoNV.Bufferinstance at the specified memory.- Parameters:
address- the memory addresscapacity- the buffer capacity
-
createSafe
@Nullable public static VkGraphicsPipelineShaderGroupsCreateInfoNV.Buffer createSafe(long address, int capacity)
-
malloc
public static VkGraphicsPipelineShaderGroupsCreateInfoNV malloc(org.lwjgl.system.MemoryStack stack)
Returns a newVkGraphicsPipelineShaderGroupsCreateInfoNVinstance allocated on the specifiedMemoryStack.- Parameters:
stack- the stack from which to allocate
-
calloc
public static VkGraphicsPipelineShaderGroupsCreateInfoNV calloc(org.lwjgl.system.MemoryStack stack)
Returns a newVkGraphicsPipelineShaderGroupsCreateInfoNVinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
stack- the stack from which to allocate
-
malloc
public static VkGraphicsPipelineShaderGroupsCreateInfoNV.Buffer malloc(int capacity, org.lwjgl.system.MemoryStack stack)
Returns a newVkGraphicsPipelineShaderGroupsCreateInfoNV.Bufferinstance allocated on the specifiedMemoryStack.- Parameters:
stack- the stack from which to allocatecapacity- the buffer capacity
-
calloc
public static VkGraphicsPipelineShaderGroupsCreateInfoNV.Buffer calloc(int capacity, org.lwjgl.system.MemoryStack stack)
Returns a newVkGraphicsPipelineShaderGroupsCreateInfoNV.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
stack- the stack from which to allocatecapacity- the buffer capacity
-
nsType
public static int nsType(long struct)
Unsafe version ofsType().
-
npNext
public static long npNext(long struct)
Unsafe version ofpNext().
-
ngroupCount
public static int ngroupCount(long struct)
Unsafe version ofgroupCount().
-
npGroups
public static VkGraphicsShaderGroupCreateInfoNV.Buffer npGroups(long struct)
Unsafe version ofpGroups().
-
npipelineCount
public static int npipelineCount(long struct)
Unsafe version ofpipelineCount().
-
npPipelines
@Nullable public static java.nio.LongBuffer npPipelines(long struct)
Unsafe version ofpPipelines.
-
nsType
public static void nsType(long struct, int value)Unsafe version ofsType.
-
npNext
public static void npNext(long struct, long value)Unsafe version ofpNext.
-
ngroupCount
public static void ngroupCount(long struct, int value)Sets the specified value to thegroupCountfield of the specifiedstruct.
-
npGroups
public static void npGroups(long struct, VkGraphicsShaderGroupCreateInfoNV.Buffer value)Unsafe version ofpGroups.
-
npipelineCount
public static void npipelineCount(long struct, int value)Sets the specified value to thepipelineCountfield of the specifiedstruct.
-
npPipelines
public static void npPipelines(long struct, @Nullable java.nio.LongBuffer value)Unsafe version ofpPipelines.
-
validate
public static void validate(long struct)
Validates pointer members that should not beNULL.- Parameters:
struct- the struct to validate
-
-