Package org.lwjgl.vulkan
Class VkGraphicsPipelineShaderGroupsCreateInfoNV
java.lang.Object
org.lwjgl.system.Pointer.Default
org.lwjgl.system.Struct<VkGraphicsPipelineShaderGroupsCreateInfoNV>
org.lwjgl.vulkan.VkGraphicsPipelineShaderGroupsCreateInfoNV
- All Implemented Interfaces:
AutoCloseable,org.lwjgl.system.NativeResource,org.lwjgl.system.Pointer
public class VkGraphicsPipelineShaderGroupsCreateInfoNV
extends org.lwjgl.system.Struct<VkGraphicsPipelineShaderGroupsCreateInfoNV>
implements org.lwjgl.system.NativeResource
Structure 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 the pPipelines array and in the pGroups array 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_NV- If
groupCountis not 0,pGroupsmust be a valid pointer to an array ofgroupCountvalidVkGraphicsShaderGroupCreateInfoNVstructures - If
pipelineCountis not 0,pPipelinesmust be a valid pointer to an array ofpipelineCountvalidVkPipelinehandles
See Also
VkGraphicsShaderGroupCreateInfoNV
Layout
struct VkGraphicsPipelineShaderGroupsCreateInfoNV {
VkStructureType sType();
void const * pNext();
uint32_t groupCount();
VkGraphicsShaderGroupCreateInfoNV const * pGroups();
uint32_t pipelineCount();
VkPipeline const * pPipelines();
}-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classAn array ofVkGraphicsPipelineShaderGroupsCreateInfoNVstructs.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 size in bytes.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
ConstructorsConstructorDescriptionCreates aVkGraphicsPipelineShaderGroupsCreateInfoNVinstance at the current position of the specifiedByteBuffercontainer. -
Method Summary
Modifier and TypeMethodDescriptioncalloc()Returns a newVkGraphicsPipelineShaderGroupsCreateInfoNVinstance allocated withmemCalloc.calloc(int capacity) Returns a newVkGraphicsPipelineShaderGroupsCreateInfoNV.Bufferinstance allocated withmemCalloc.calloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkGraphicsPipelineShaderGroupsCreateInfoNV.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.calloc(org.lwjgl.system.MemoryStack stack) Returns a newVkGraphicsPipelineShaderGroupsCreateInfoNVinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.create()Returns a newVkGraphicsPipelineShaderGroupsCreateInfoNVinstance allocated withBufferUtils.create(int capacity) Returns a newVkGraphicsPipelineShaderGroupsCreateInfoNV.Bufferinstance allocated withBufferUtils.create(long address) Returns a newVkGraphicsPipelineShaderGroupsCreateInfoNVinstance for the specified memory address.create(long address, int capacity) Create aVkGraphicsPipelineShaderGroupsCreateInfoNV.Bufferinstance at the specified memory.static @Nullable VkGraphicsPipelineShaderGroupsCreateInfoNVcreateSafe(long address) static @Nullable VkGraphicsPipelineShaderGroupsCreateInfoNV.BuffercreateSafe(long address, int capacity) intthe number of elements in thepGroupsarray.malloc()Returns a newVkGraphicsPipelineShaderGroupsCreateInfoNVinstance allocated withmemAlloc.malloc(int capacity) Returns a newVkGraphicsPipelineShaderGroupsCreateInfoNV.Bufferinstance allocated withmemAlloc.malloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkGraphicsPipelineShaderGroupsCreateInfoNV.Bufferinstance allocated on the specifiedMemoryStack.malloc(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 @Nullable VkGraphicsShaderGroupCreateInfoNV.BuffernpGroups(long struct) Unsafe version ofpGroups().static voidnpGroups(long struct, @Nullable 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 @Nullable LongBuffernpPipelines(long struct) Unsafe version ofpPipelines.static voidnpPipelines(long struct, @Nullable LongBuffer value) Unsafe version ofpPipelines.static intnsType(long struct) Unsafe version ofsType().static voidnsType(long struct, int value) Unsafe version ofsType.@Nullable VkGraphicsShaderGroupCreateInfoNV.BufferpGroups()a pointer to an array ofVkGraphicsShaderGroupCreateInfoNVstructures specifying which state of the originalVkGraphicsPipelineCreateInfoeach shader group overrides.pGroups(@Nullable VkGraphicsShaderGroupCreateInfoNV.Buffer value) Sets the address of the specifiedVkGraphicsShaderGroupCreateInfoNV.Bufferto thepGroups()field.intthe number of elements in thepPipelinesarray.longpNext()NULLor a pointer to a structure extending this structure.pNext(long value) Sets the specified value to thepNext()field.@Nullable LongBuffera pointer to an array of graphicsVkPipelinestructures which are referenced within the created pipeline, including all their shader groups.pPipelines(@Nullable LongBuffer value) Sets the address of the specifiedLongBufferto thepPipelines()field.set(int sType, long pNext, @Nullable VkGraphicsShaderGroupCreateInfoNV.Buffer pGroups, @Nullable LongBuffer pPipelines) Initializes this struct with the specified values.Copies the specified struct data to this struct.intsizeof()intsType()aVkStructureTypevalue identifying this structure.sType(int value) Sets the specified value to thesType()field.Sets theSTRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NVvalue 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. -
GROUPCOUNT
public static final int GROUPCOUNTThe struct member offsets. -
PGROUPS
public static final int PGROUPSThe struct member offsets. -
PIPELINECOUNT
public static final int PIPELINECOUNTThe struct member offsets. -
PPIPELINES
public static final int PPIPELINESThe struct member offsets.
-
-
Constructor Details
-
VkGraphicsPipelineShaderGroupsCreateInfoNV
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 Details
-
sizeof
public int sizeof()- Specified by:
sizeofin classorg.lwjgl.system.Struct<VkGraphicsPipelineShaderGroupsCreateInfoNV>
-
sType
public int sType()aVkStructureTypevalue identifying 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
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
a pointer to an array of graphicsVkPipelinestructures which are referenced within the created pipeline, including all their shader groups. -
sType
Sets the specified value to thesType()field. -
sType$Default
Sets theSTRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NVvalue to thesType()field. -
pNext
Sets the specified value to thepNext()field. -
pGroups
public VkGraphicsPipelineShaderGroupsCreateInfoNV pGroups(@Nullable VkGraphicsShaderGroupCreateInfoNV.Buffer value) Sets the address of the specifiedVkGraphicsShaderGroupCreateInfoNV.Bufferto thepGroups()field. -
pPipelines
Sets the address of the specifiedLongBufferto thepPipelines()field. -
set
public VkGraphicsPipelineShaderGroupsCreateInfoNV set(int sType, long pNext, @Nullable VkGraphicsShaderGroupCreateInfoNV.Buffer pGroups, @Nullable 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
Returns a newVkGraphicsPipelineShaderGroupsCreateInfoNVinstance allocated withmemAlloc. The instance must be explicitly freed. -
calloc
Returns a newVkGraphicsPipelineShaderGroupsCreateInfoNVinstance allocated withmemCalloc. The instance must be explicitly freed. -
create
Returns a newVkGraphicsPipelineShaderGroupsCreateInfoNVinstance allocated withBufferUtils. -
create
Returns a newVkGraphicsPipelineShaderGroupsCreateInfoNVinstance for the specified memory address. -
createSafe
-
malloc
Returns a newVkGraphicsPipelineShaderGroupsCreateInfoNV.Bufferinstance allocated withmemAlloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
calloc
Returns a newVkGraphicsPipelineShaderGroupsCreateInfoNV.Bufferinstance allocated withmemCalloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
create
Returns a newVkGraphicsPipelineShaderGroupsCreateInfoNV.Bufferinstance allocated withBufferUtils.- Parameters:
capacity- the buffer capacity
-
create
Create aVkGraphicsPipelineShaderGroupsCreateInfoNV.Bufferinstance at the specified memory.- Parameters:
address- the memory addresscapacity- the buffer capacity
-
createSafe
public static @Nullable VkGraphicsPipelineShaderGroupsCreateInfoNV.Buffer createSafe(long address, int capacity) -
malloc
Returns a newVkGraphicsPipelineShaderGroupsCreateInfoNVinstance allocated on the specifiedMemoryStack.- Parameters:
stack- the stack from which to allocate
-
calloc
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:
capacity- the buffer capacitystack- the stack from which to allocate
-
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:
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(). -
ngroupCount
public static int ngroupCount(long struct) Unsafe version ofgroupCount(). -
npGroups
Unsafe version ofpGroups(). -
npipelineCount
public static int npipelineCount(long struct) Unsafe version ofpipelineCount(). -
npPipelines
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
Unsafe version ofpGroups. -
npipelineCount
public static void npipelineCount(long struct, int value) Sets the specified value to thepipelineCountfield of the specifiedstruct. -
npPipelines
Unsafe version ofpPipelines. -
validate
public static void validate(long struct) Validates pointer members that should not beNULL.- Parameters:
struct- the struct to validate
-