Class VkDescriptorPoolCreateInfo
- java.lang.Object
-
- org.lwjgl.system.Pointer.Default
-
- org.lwjgl.system.Struct
-
- org.lwjgl.vulkan.VkDescriptorPoolCreateInfo
-
- All Implemented Interfaces:
java.lang.AutoCloseable
,org.lwjgl.system.NativeResource
,org.lwjgl.system.Pointer
public class VkDescriptorPoolCreateInfo extends org.lwjgl.system.Struct implements org.lwjgl.system.NativeResource
Structure specifying parameters of a newly created descriptor pool.Description
If multiple
VkDescriptorPoolSize
structures appear in thepPoolSizes
array then the pool will be created with enough storage for the total number of descriptors of each type.Fragmentation of a descriptor pool is possible and may lead to descriptor set allocation failures. A failure due to fragmentation is defined as failing a descriptor set allocation despite the sum of all outstanding descriptor set allocations from the pool plus the requested allocation requiring no more than the total number of descriptors requested at pool creation. Implementations provide certain guarantees of when fragmentation must not cause allocation failure, as described below.
If a descriptor pool has not had any descriptor sets freed since it was created or most recently reset then fragmentation must not cause an allocation failure (note that this is always the case for a pool created without the
DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT
bit set). Additionally, if all sets allocated from the pool since it was created or most recently reset use the same number of descriptors (of each type) and the requested allocation also uses that same number of descriptors (of each type), then fragmentation must not cause an allocation failure.If an allocation failure occurs due to fragmentation, an application can create an additional descriptor pool to perform further descriptor set allocations.
If
flags
has theDESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT
bit set, descriptor pool creation may fail with the errorERROR_FRAGMENTATION_EXT
if the total number of descriptors across all pools (including this one) created with this bit set exceedsmaxUpdateAfterBindDescriptorsInAllPools
, or if fragmentation of the underlying hardware resources occurs.Valid Usage
maxSets
must be greater than 0
Valid Usage (Implicit)
sType
must beSTRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO
pNext
must beNULL
or a pointer to a valid instance ofVkDescriptorPoolInlineUniformBlockCreateInfoEXT
flags
must be a valid combination ofVkDescriptorPoolCreateFlagBits
valuespPoolSizes
must be a valid pointer to an array ofpoolSizeCount
validVkDescriptorPoolSize
structurespoolSizeCount
must be greater than 0
See Also
VkDescriptorPoolSize
,CreateDescriptorPool
Member documentation
sType
– the type of this structure.pNext
–NULL
or a pointer to an extension-specific structure.flags
– a bitmask ofVkDescriptorPoolCreateFlagBits
specifying certain supported operations on the pool.maxSets
– the maximum number of descriptor sets that can be allocated from the pool.poolSizeCount
– the number of elements inpPoolSizes
.pPoolSizes
– a pointer to an array ofVkDescriptorPoolSize
structures, each containing a descriptor type and number of descriptors of that type to be allocated in the pool.
Layout
struct VkDescriptorPoolCreateInfo { VkStructureType sType; void const * pNext; VkDescriptorPoolCreateFlags flags; uint32_t maxSets; uint32_t poolSizeCount;
VkDescriptorPoolSize
const * pPoolSizes; }
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
VkDescriptorPoolCreateInfo.Buffer
An array ofVkDescriptorPoolCreateInfo
structs.
-
Field Summary
Fields Modifier and Type Field Description static int
ALIGNOF
The struct alignment in bytes.static int
FLAGS
MAXSETS
PNEXT
POOLSIZECOUNT
PPOOLSIZESThe struct member offsets.static int
SIZEOF
The struct size in bytes.static int
STYPE
The struct member offsets.
-
Constructor Summary
Constructors Constructor Description VkDescriptorPoolCreateInfo(java.nio.ByteBuffer container)
Creates aVkDescriptorPoolCreateInfo
instance at the current position of the specifiedByteBuffer
container.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static VkDescriptorPoolCreateInfo
calloc()
Returns a newVkDescriptorPoolCreateInfo
instance allocated withmemCalloc
.static VkDescriptorPoolCreateInfo.Buffer
calloc(int capacity)
Returns a newVkDescriptorPoolCreateInfo.Buffer
instance allocated withmemCalloc
.static VkDescriptorPoolCreateInfo
callocStack()
Returns a newVkDescriptorPoolCreateInfo
instance allocated on the thread-localMemoryStack
and initializes all its bits to zero.static VkDescriptorPoolCreateInfo.Buffer
callocStack(int capacity)
Returns a newVkDescriptorPoolCreateInfo.Buffer
instance allocated on the thread-localMemoryStack
and initializes all its bits to zero.static VkDescriptorPoolCreateInfo.Buffer
callocStack(int capacity, org.lwjgl.system.MemoryStack stack)
Returns a newVkDescriptorPoolCreateInfo.Buffer
instance allocated on the specifiedMemoryStack
and initializes all its bits to zero.static VkDescriptorPoolCreateInfo
callocStack(org.lwjgl.system.MemoryStack stack)
Returns a newVkDescriptorPoolCreateInfo
instance allocated on the specifiedMemoryStack
and initializes all its bits to zero.static VkDescriptorPoolCreateInfo
create()
Returns a newVkDescriptorPoolCreateInfo
instance allocated withBufferUtils
.static VkDescriptorPoolCreateInfo.Buffer
create(int capacity)
Returns a newVkDescriptorPoolCreateInfo.Buffer
instance allocated withBufferUtils
.static VkDescriptorPoolCreateInfo
create(long address)
Returns a newVkDescriptorPoolCreateInfo
instance for the specified memory address.static VkDescriptorPoolCreateInfo.Buffer
create(long address, int capacity)
Create aVkDescriptorPoolCreateInfo.Buffer
instance at the specified memory.static VkDescriptorPoolCreateInfo
createSafe(long address)
static VkDescriptorPoolCreateInfo.Buffer
createSafe(long address, int capacity)
int
flags()
Returns the value of theflags
field.VkDescriptorPoolCreateInfo
flags(int value)
Sets the specified value to theflags
field.static VkDescriptorPoolCreateInfo
malloc()
Returns a newVkDescriptorPoolCreateInfo
instance allocated withmemAlloc
.static VkDescriptorPoolCreateInfo.Buffer
malloc(int capacity)
Returns a newVkDescriptorPoolCreateInfo.Buffer
instance allocated withmemAlloc
.static VkDescriptorPoolCreateInfo
mallocStack()
Returns a newVkDescriptorPoolCreateInfo
instance allocated on the thread-localMemoryStack
.static VkDescriptorPoolCreateInfo.Buffer
mallocStack(int capacity)
Returns a newVkDescriptorPoolCreateInfo.Buffer
instance allocated on the thread-localMemoryStack
.static VkDescriptorPoolCreateInfo.Buffer
mallocStack(int capacity, org.lwjgl.system.MemoryStack stack)
Returns a newVkDescriptorPoolCreateInfo.Buffer
instance allocated on the specifiedMemoryStack
.static VkDescriptorPoolCreateInfo
mallocStack(org.lwjgl.system.MemoryStack stack)
Returns a newVkDescriptorPoolCreateInfo
instance allocated on the specifiedMemoryStack
.int
maxSets()
Returns the value of themaxSets
field.VkDescriptorPoolCreateInfo
maxSets(int value)
Sets the specified value to themaxSets
field.static int
nflags(long struct)
Unsafe version offlags()
.static void
nflags(long struct, int value)
Unsafe version offlags
.static int
nmaxSets(long struct)
Unsafe version ofmaxSets()
.static void
nmaxSets(long struct, int value)
Unsafe version ofmaxSets
.static long
npNext(long struct)
Unsafe version ofpNext()
.static void
npNext(long struct, long value)
Unsafe version ofpNext
.static int
npoolSizeCount(long struct)
Unsafe version ofpoolSizeCount()
.static void
npoolSizeCount(long struct, int value)
Sets the specified value to thepoolSizeCount
field of the specifiedstruct
.static VkDescriptorPoolSize.Buffer
npPoolSizes(long struct)
Unsafe version ofpPoolSizes()
.static void
npPoolSizes(long struct, VkDescriptorPoolSize.Buffer value)
Unsafe version ofpPoolSizes
.static int
nsType(long struct)
Unsafe version ofsType()
.static void
nsType(long struct, int value)
Unsafe version ofsType
.long
pNext()
Returns the value of thepNext
field.VkDescriptorPoolCreateInfo
pNext(long value)
Sets the specified value to thepNext
field.int
poolSizeCount()
Returns the value of thepoolSizeCount
field.VkDescriptorPoolSize.Buffer
pPoolSizes()
Returns aVkDescriptorPoolSize.Buffer
view of the struct array pointed to by thepPoolSizes
field.VkDescriptorPoolCreateInfo
pPoolSizes(VkDescriptorPoolSize.Buffer value)
Sets the address of the specifiedVkDescriptorPoolSize.Buffer
to thepPoolSizes
field.VkDescriptorPoolCreateInfo
set(int sType, long pNext, int flags, int maxSets, VkDescriptorPoolSize.Buffer pPoolSizes)
Initializes this struct with the specified values.VkDescriptorPoolCreateInfo
set(VkDescriptorPoolCreateInfo src)
Copies the specified struct data to this struct.int
sizeof()
int
sType()
Returns the value of thesType
field.VkDescriptorPoolCreateInfo
sType(int value)
Sets the specified value to thesType
field.static void
validate(long struct)
Validates pointer members that should not beNULL
.static void
validate(long array, int count)
Callsvalidate(long)
for each struct contained in the specified struct array.
-
-
-
Constructor Detail
-
VkDescriptorPoolCreateInfo
public VkDescriptorPoolCreateInfo(java.nio.ByteBuffer container)
Creates aVkDescriptorPoolCreateInfo
instance at the current position of the specifiedByteBuffer
container. 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:
sizeof
in classorg.lwjgl.system.Struct
-
sType
public int sType()
Returns the value of thesType
field.
-
pNext
public long pNext()
Returns the value of thepNext
field.
-
flags
public int flags()
Returns the value of theflags
field.
-
maxSets
public int maxSets()
Returns the value of themaxSets
field.
-
poolSizeCount
public int poolSizeCount()
Returns the value of thepoolSizeCount
field.
-
pPoolSizes
public VkDescriptorPoolSize.Buffer pPoolSizes()
Returns aVkDescriptorPoolSize.Buffer
view of the struct array pointed to by thepPoolSizes
field.
-
sType
public VkDescriptorPoolCreateInfo sType(int value)
Sets the specified value to thesType
field.
-
pNext
public VkDescriptorPoolCreateInfo pNext(long value)
Sets the specified value to thepNext
field.
-
flags
public VkDescriptorPoolCreateInfo flags(int value)
Sets the specified value to theflags
field.
-
maxSets
public VkDescriptorPoolCreateInfo maxSets(int value)
Sets the specified value to themaxSets
field.
-
pPoolSizes
public VkDescriptorPoolCreateInfo pPoolSizes(VkDescriptorPoolSize.Buffer value)
Sets the address of the specifiedVkDescriptorPoolSize.Buffer
to thepPoolSizes
field.
-
set
public VkDescriptorPoolCreateInfo set(int sType, long pNext, int flags, int maxSets, VkDescriptorPoolSize.Buffer pPoolSizes)
Initializes this struct with the specified values.
-
set
public VkDescriptorPoolCreateInfo set(VkDescriptorPoolCreateInfo src)
Copies the specified struct data to this struct.- Parameters:
src
- the source struct- Returns:
- this struct
-
malloc
public static VkDescriptorPoolCreateInfo malloc()
Returns a newVkDescriptorPoolCreateInfo
instance allocated withmemAlloc
. The instance must be explicitly freed.
-
calloc
public static VkDescriptorPoolCreateInfo calloc()
Returns a newVkDescriptorPoolCreateInfo
instance allocated withmemCalloc
. The instance must be explicitly freed.
-
create
public static VkDescriptorPoolCreateInfo create()
Returns a newVkDescriptorPoolCreateInfo
instance allocated withBufferUtils
.
-
create
public static VkDescriptorPoolCreateInfo create(long address)
Returns a newVkDescriptorPoolCreateInfo
instance for the specified memory address.
-
createSafe
@Nullable public static VkDescriptorPoolCreateInfo createSafe(long address)
-
malloc
public static VkDescriptorPoolCreateInfo.Buffer malloc(int capacity)
Returns a newVkDescriptorPoolCreateInfo.Buffer
instance allocated withmemAlloc
. The instance must be explicitly freed.- Parameters:
capacity
- the buffer capacity
-
calloc
public static VkDescriptorPoolCreateInfo.Buffer calloc(int capacity)
Returns a newVkDescriptorPoolCreateInfo.Buffer
instance allocated withmemCalloc
. The instance must be explicitly freed.- Parameters:
capacity
- the buffer capacity
-
create
public static VkDescriptorPoolCreateInfo.Buffer create(int capacity)
Returns a newVkDescriptorPoolCreateInfo.Buffer
instance allocated withBufferUtils
.- Parameters:
capacity
- the buffer capacity
-
create
public static VkDescriptorPoolCreateInfo.Buffer create(long address, int capacity)
Create aVkDescriptorPoolCreateInfo.Buffer
instance at the specified memory.- Parameters:
address
- the memory addresscapacity
- the buffer capacity
-
createSafe
@Nullable public static VkDescriptorPoolCreateInfo.Buffer createSafe(long address, int capacity)
-
mallocStack
public static VkDescriptorPoolCreateInfo mallocStack()
Returns a newVkDescriptorPoolCreateInfo
instance allocated on the thread-localMemoryStack
.
-
callocStack
public static VkDescriptorPoolCreateInfo callocStack()
Returns a newVkDescriptorPoolCreateInfo
instance allocated on the thread-localMemoryStack
and initializes all its bits to zero.
-
mallocStack
public static VkDescriptorPoolCreateInfo mallocStack(org.lwjgl.system.MemoryStack stack)
Returns a newVkDescriptorPoolCreateInfo
instance allocated on the specifiedMemoryStack
.- Parameters:
stack
- the stack from which to allocate
-
callocStack
public static VkDescriptorPoolCreateInfo callocStack(org.lwjgl.system.MemoryStack stack)
Returns a newVkDescriptorPoolCreateInfo
instance allocated on the specifiedMemoryStack
and initializes all its bits to zero.- Parameters:
stack
- the stack from which to allocate
-
mallocStack
public static VkDescriptorPoolCreateInfo.Buffer mallocStack(int capacity)
Returns a newVkDescriptorPoolCreateInfo.Buffer
instance allocated on the thread-localMemoryStack
.- Parameters:
capacity
- the buffer capacity
-
callocStack
public static VkDescriptorPoolCreateInfo.Buffer callocStack(int capacity)
Returns a newVkDescriptorPoolCreateInfo.Buffer
instance allocated on the thread-localMemoryStack
and initializes all its bits to zero.- Parameters:
capacity
- the buffer capacity
-
mallocStack
public static VkDescriptorPoolCreateInfo.Buffer mallocStack(int capacity, org.lwjgl.system.MemoryStack stack)
Returns a newVkDescriptorPoolCreateInfo.Buffer
instance allocated on the specifiedMemoryStack
.- Parameters:
stack
- the stack from which to allocatecapacity
- the buffer capacity
-
callocStack
public static VkDescriptorPoolCreateInfo.Buffer callocStack(int capacity, org.lwjgl.system.MemoryStack stack)
Returns a newVkDescriptorPoolCreateInfo.Buffer
instance allocated on the specifiedMemoryStack
and 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()
.
-
nflags
public static int nflags(long struct)
Unsafe version offlags()
.
-
nmaxSets
public static int nmaxSets(long struct)
Unsafe version ofmaxSets()
.
-
npoolSizeCount
public static int npoolSizeCount(long struct)
Unsafe version ofpoolSizeCount()
.
-
npPoolSizes
public static VkDescriptorPoolSize.Buffer npPoolSizes(long struct)
Unsafe version ofpPoolSizes()
.
-
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
.
-
nmaxSets
public static void nmaxSets(long struct, int value)
Unsafe version ofmaxSets
.
-
npoolSizeCount
public static void npoolSizeCount(long struct, int value)
Sets the specified value to thepoolSizeCount
field of the specifiedstruct
.
-
npPoolSizes
public static void npPoolSizes(long struct, VkDescriptorPoolSize.Buffer value)
Unsafe version ofpPoolSizes
.
-
validate
public static void validate(long struct)
Validates pointer members that should not beNULL
.- Parameters:
struct
- the struct to validate
-
validate
public static void validate(long array, int count)
Callsvalidate(long)
for each struct contained in the specified struct array.- Parameters:
array
- the struct array to validatecount
- the number of structs inarray
-
-