102 lines
3.8 KiB
Plaintext
102 lines
3.8 KiB
Plaintext
// Copyright (c) 2014-2016 Khronos Group. This work is licensed under a
|
|
// Creative Commons Attribution 4.0 International License; see
|
|
// http://creativecommons.org/licenses/by/4.0/
|
|
|
|
VkDescriptorPoolCreateInfo(3)
|
|
=============================
|
|
|
|
Name
|
|
----
|
|
VkDescriptorPoolCreateInfo - Structure specifying parameters of a newly created descriptor pool
|
|
|
|
C Specification
|
|
---------------
|
|
|
|
// refBegin VkDescriptorPoolCreateInfo - Structure specifying parameters of a newly created descriptor pool
|
|
|
|
Additional information about the pool is passed in an instance of the
|
|
sname:VkDescriptorPoolCreateInfo structure:
|
|
|
|
include::../api/structs/VkDescriptorPoolCreateInfo.txt[]
|
|
|
|
|
|
Members
|
|
-------
|
|
|
|
* pname:sType is the type of this structure.
|
|
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
|
* pname:flags specifies certain supported operations on the pool.
|
|
Bits which can: be set include:
|
|
+
|
|
--
|
|
// refBegin VkDescriptorPoolCreateFlagBits - Bitmask specifying certain supported operations on a descriptor pool
|
|
include::../api/enums/VkDescriptorPoolCreateFlagBits.txt[]
|
|
--
|
|
+
|
|
If pname:flags includes
|
|
ename:VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT, then descriptor
|
|
sets can: return their individual allocations to the pool, i.e. all of
|
|
fname:vkAllocateDescriptorSets, fname:vkFreeDescriptorSets, and
|
|
fname:vkResetDescriptorPool are allowed. Otherwise, descriptor sets
|
|
allocated from the pool mustnot: be individually freed back to the pool,
|
|
i.e. only fname:vkAllocateDescriptorSets and fname:vkResetDescriptorPool are
|
|
allowed.
|
|
+
|
|
* pname:maxSets is the maximum number of descriptor sets that can:
|
|
be allocated from the pool.
|
|
* pname:poolSizeCount is the number of elements in pname:pPoolSizes.
|
|
* pname:pPoolSizes is a pointer to an array of sname:VkDescriptorPoolSize
|
|
structures, each containing a descriptor type and number of descriptors
|
|
of that type to be allocated in the pool.
|
|
|
|
|
|
Description
|
|
-----------
|
|
|
|
If multiple sname:VkDescriptorPoolSize structures appear in the
|
|
pname:pPoolSizes 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
|
|
mustnot: 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 mustnot: cause an
|
|
allocation failure (note that this is always the case for a pool created
|
|
without the ename:VK_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 mustnot: 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.
|
|
|
|
include::../validity/structs/VkDescriptorPoolCreateInfo.txt[]
|
|
|
|
|
|
See Also
|
|
--------
|
|
|
|
elink:VkDescriptorPoolCreateFlags, slink:VkDescriptorPoolSize, elink:VkStructureType, flink:vkCreateDescriptorPool
|
|
|
|
|
|
Document Notes
|
|
--------------
|
|
|
|
For more information, see the Vulkan Specification at URL
|
|
|
|
https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#VkDescriptorPoolCreateInfo
|
|
|
|
This page is extracted from the Vulkan Specification.
|
|
Fixes and changes should be made to the Specification,not directly.
|
|
|
|
include::footer.txt[]
|
|
|