| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Graphics.Vulkan.Core10.DescriptorSet
- newtype VkDescriptorType = VkDescriptorType Int32
- pattern VK_DESCRIPTOR_TYPE_SAMPLER :: VkDescriptorType
- pattern VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER :: VkDescriptorType
- pattern VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE :: VkDescriptorType
- pattern VK_DESCRIPTOR_TYPE_STORAGE_IMAGE :: VkDescriptorType
- pattern VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER :: VkDescriptorType
- pattern VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER :: VkDescriptorType
- pattern VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER :: VkDescriptorType
- pattern VK_DESCRIPTOR_TYPE_STORAGE_BUFFER :: VkDescriptorType
- pattern VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC :: VkDescriptorType
- pattern VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC :: VkDescriptorType
- pattern VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT :: VkDescriptorType
- newtype VkDescriptorSetLayoutCreateFlagBits = VkDescriptorSetLayoutCreateFlagBits VkFlags
- newtype VkDescriptorPoolCreateFlagBits = VkDescriptorPoolCreateFlagBits VkFlags
- pattern VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT :: VkDescriptorPoolCreateFlagBits
- newtype VkDescriptorPoolResetFlags = VkDescriptorPoolResetFlags VkFlags
- type VkDescriptorSet = Ptr VkDescriptorSet_T
- type VkDescriptorPool = Ptr VkDescriptorPool_T
- vkCreateDescriptorSetLayout :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkDescriptorSetLayoutCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pSetLayout" ::: Ptr VkDescriptorSetLayout) -> IO VkResult
- vkDestroyDescriptorSetLayout :: ("device" ::: VkDevice) -> ("descriptorSetLayout" ::: VkDescriptorSetLayout) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()
- vkCreateDescriptorPool :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkDescriptorPoolCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pDescriptorPool" ::: Ptr VkDescriptorPool) -> IO VkResult
- vkDestroyDescriptorPool :: ("device" ::: VkDevice) -> ("descriptorPool" ::: VkDescriptorPool) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()
- vkResetDescriptorPool :: ("device" ::: VkDevice) -> ("descriptorPool" ::: VkDescriptorPool) -> ("flags" ::: VkDescriptorPoolResetFlags) -> IO VkResult
- vkAllocateDescriptorSets :: ("device" ::: VkDevice) -> ("pAllocateInfo" ::: Ptr VkDescriptorSetAllocateInfo) -> ("pDescriptorSets" ::: Ptr VkDescriptorSet) -> IO VkResult
- vkFreeDescriptorSets :: ("device" ::: VkDevice) -> ("descriptorPool" ::: VkDescriptorPool) -> ("descriptorSetCount" ::: Word32) -> ("pDescriptorSets" ::: Ptr VkDescriptorSet) -> IO VkResult
- vkUpdateDescriptorSets :: ("device" ::: VkDevice) -> ("descriptorWriteCount" ::: Word32) -> ("pDescriptorWrites" ::: Ptr VkWriteDescriptorSet) -> ("descriptorCopyCount" ::: Word32) -> ("pDescriptorCopies" ::: Ptr VkCopyDescriptorSet) -> IO ()
- data VkDescriptorBufferInfo = VkDescriptorBufferInfo {}
- data VkDescriptorImageInfo = VkDescriptorImageInfo {}
- data VkWriteDescriptorSet = VkWriteDescriptorSet {
- vkSType :: VkStructureType
- vkPNext :: Ptr ()
- vkDstSet :: VkDescriptorSet
- vkDstBinding :: Word32
- vkDstArrayElement :: Word32
- vkDescriptorCount :: Word32
- vkDescriptorType :: VkDescriptorType
- vkPImageInfo :: Ptr VkDescriptorImageInfo
- vkPBufferInfo :: Ptr VkDescriptorBufferInfo
- vkPTexelBufferView :: Ptr VkBufferView
- data VkCopyDescriptorSet = VkCopyDescriptorSet {}
- data VkDescriptorSetLayoutBinding = VkDescriptorSetLayoutBinding {}
- data VkDescriptorSetLayoutCreateInfo = VkDescriptorSetLayoutCreateInfo {}
- data VkDescriptorPoolSize = VkDescriptorPoolSize {}
- data VkDescriptorPoolCreateInfo = VkDescriptorPoolCreateInfo {}
- data VkDescriptorSetAllocateInfo = VkDescriptorSetAllocateInfo {}
- type VkDescriptorSetLayoutCreateFlags = VkDescriptorSetLayoutCreateFlagBits
- type VkDescriptorPoolCreateFlags = VkDescriptorPoolCreateFlagBits
Documentation
newtype VkDescriptorType Source #
VkDescriptorType - Specifies the type of a descriptor in a descriptor set
Description
VK_DESCRIPTOR_TYPE_SAMPLERspecifies a sampler descriptor.
VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLERspecifies a combined image sampler descriptor.VK_DESCRIPTOR_TYPE_SAMPLED_IMAGEspecifies a sampled image descriptor.VK_DESCRIPTOR_TYPE_STORAGE_IMAGEspecifies a storage image descriptor.VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFERspecifies a uniform texel buffer descriptor.VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFERspecifies a storage texel buffer descriptor.VK_DESCRIPTOR_TYPE_UNIFORM_BUFFERspecifies a uniform buffer descriptor.VK_DESCRIPTOR_TYPE_STORAGE_BUFFERspecifies a storage buffer descriptor.VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMICspecifies a dynamic uniform buffer descriptor.VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMICspecifies a dynamic storage buffer descriptor.VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENTspecifies a input attachment descriptor.
When a descriptor set is updated via elements of VkWriteDescriptorSet,
members of pImageInfo, pBufferInfo and pTexelBufferView are only
accessed by the implementation when they correspond to descriptor type
being defined - otherwise they are ignored. The members accessed are as
follows for each descriptor type:
- For
VK_DESCRIPTOR_TYPE_SAMPLER, only thesamplemember of each element ofVkWriteDescriptorSet::pImageInfois accessed. - For
VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE,VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, orVK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, only theimageViewandimageLayoutmembers of each element ofVkWriteDescriptorSet::pImageInfoare accessed. - For
VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, all members of each element ofVkWriteDescriptorSet::pImageInfoare accessed. - For
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,VK_DESCRIPTOR_TYPE_STORAGE_BUFFER,VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, orVK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, all members of each element ofVkWriteDescriptorSet::pBufferInfoare accessed. - For
VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFERorVK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, each element ofVkWriteDescriptorSet::pTexelBufferViewis accessed.
See Also
VkDescriptorPoolSize, VkDescriptorSetLayoutBinding,
VkDescriptorUpdateTemplateEntry,
VkWriteDescriptorSet
Constructors
| VkDescriptorType Int32 |
pattern VK_DESCRIPTOR_TYPE_SAMPLER :: VkDescriptorType Source #
pattern VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE :: VkDescriptorType Source #
pattern VK_DESCRIPTOR_TYPE_STORAGE_IMAGE :: VkDescriptorType Source #
pattern VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER :: VkDescriptorType Source #
pattern VK_DESCRIPTOR_TYPE_STORAGE_BUFFER :: VkDescriptorType Source #
newtype VkDescriptorSetLayoutCreateFlagBits Source #
VkDescriptorSetLayoutCreateFlagBits - Bitmask specifying descriptor set layout properties
See Also
Constructors
| VkDescriptorSetLayoutCreateFlagBits VkFlags |
Instances
newtype VkDescriptorPoolCreateFlagBits Source #
VkDescriptorPoolCreateFlagBits - Bitmask specifying certain supported operations on a descriptor pool
See Also
Constructors
| VkDescriptorPoolCreateFlagBits VkFlags |
Instances
pattern VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT :: VkDescriptorPoolCreateFlagBits Source #
VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT specifies that
descriptor sets can return their individual allocations to the pool,
i.e. all of vkAllocateDescriptorSets, vkFreeDescriptorSets, and
vkResetDescriptorPool are allowed. Otherwise, descriptor sets
allocated from the pool must not be individually freed back to the
pool, i.e. only vkAllocateDescriptorSets and vkResetDescriptorPool
are allowed.
newtype VkDescriptorPoolResetFlags Source #
VkDescriptorPoolResetFlags - Reserved for future use
Description
VkDescriptorPoolResetFlags is a bitmask type for setting a mask, but
is currently reserved for future use.
See Also
Constructors
| VkDescriptorPoolResetFlags VkFlags |
Instances
type VkDescriptorSet = Ptr VkDescriptorSet_T Source #
VkDescriptorSet - Opaque handle to a descriptor set object
Description
See Also
VkCopyDescriptorSet,
VkObjectTableDescriptorSetEntryNVX,
VkWriteDescriptorSet, vkAllocateDescriptorSets,
vkCmdBindDescriptorSets,
vkFreeDescriptorSets,
vkUpdateDescriptorSetWithTemplate,
vkUpdateDescriptorSetWithTemplateKHR
type VkDescriptorPool = Ptr VkDescriptorPool_T Source #
VkDescriptorPool - Opaque handle to a descriptor pool object
Description
See Also
VkDescriptorSetAllocateInfo, vkCreateDescriptorPool,
vkDestroyDescriptorPool, vkFreeDescriptorSets,
vkResetDescriptorPool
vkCreateDescriptorSetLayout :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkDescriptorSetLayoutCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pSetLayout" ::: Ptr VkDescriptorSetLayout) -> IO VkResult Source #
vkCreateDescriptorSetLayout - Create a new descriptor set layout
Parameters
deviceis the logical device that creates the descriptor set layout.
pCreateInfois a pointer to an instance of theVkDescriptorSetLayoutCreateInfostructure specifying the state of the descriptor set layout object.pAllocatorcontrols host memory allocation as described in the Memory Allocation chapter.pSetLayoutpoints to aVkDescriptorSetLayouthandle in which the resulting descriptor set layout object is returned.
Description
Valid Usage (Implicit)
devicemust be a validVkDevicehandle
pCreateInfomust be a valid pointer to a validVkDescriptorSetLayoutCreateInfostructure- If
pAllocatoris notNULL,pAllocatormust be a valid pointer to a validVkAllocationCallbacksstructure pSetLayoutmust be a valid pointer to aVkDescriptorSetLayouthandle
Return Codes
- Success
- -
VK_SUCCESS
- Failure
- -
VK_ERROR_OUT_OF_HOST_MEMORYVK_ERROR_OUT_OF_DEVICE_MEMORY
See Also
VkAllocationCallbacks,
VkDescriptorSetLayout,
VkDescriptorSetLayoutCreateInfo,
VkDevice
vkDestroyDescriptorSetLayout :: ("device" ::: VkDevice) -> ("descriptorSetLayout" ::: VkDescriptorSetLayout) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO () Source #
vkDestroyDescriptorSetLayout - Destroy a descriptor set layout object
Parameters
deviceis the logical device that destroys the descriptor set layout.
descriptorSetLayoutis the descriptor set layout to destroy.pAllocatorcontrols host memory allocation as described in the Memory Allocation chapter.
Description
Valid Usage
- If
VkAllocationCallbackswere provided whendescriptorSetLayoutwas created, a compatible set of callbacks must be provided here
- If no
VkAllocationCallbackswere provided whendescriptorSetLayoutwas created,pAllocatormust beNULL
Valid Usage (Implicit)
devicemust be a validVkDevicehandle
- If
descriptorSetLayoutis notVK_NULL_HANDLE,descriptorSetLayoutmust be a validVkDescriptorSetLayouthandle - If
pAllocatoris notNULL,pAllocatormust be a valid pointer to a validVkAllocationCallbacksstructure - If
descriptorSetLayoutis a valid handle, it must have been created, allocated, or retrieved fromdevice
Host Synchronization
- Host access to
descriptorSetLayoutmust be externally synchronized
See Also
vkCreateDescriptorPool :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkDescriptorPoolCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pDescriptorPool" ::: Ptr VkDescriptorPool) -> IO VkResult Source #
vkCreateDescriptorPool - Creates a descriptor pool object
Parameters
deviceis the logical device that creates the descriptor pool.
pCreateInfois a pointer to an instance of theVkDescriptorPoolCreateInfostructure specifying the state of the descriptor pool object.pAllocatorcontrols host memory allocation as described in the Memory Allocation chapter.pDescriptorPoolpoints to aVkDescriptorPoolhandle in which the resulting descriptor pool object is returned.
Description
pAllocator controls host memory allocation as described in the
Memory Allocation chapter.
The created descriptor pool is returned in pDescriptorPool.
Valid Usage (Implicit)
devicemust be a validVkDevicehandle
pCreateInfomust be a valid pointer to a validVkDescriptorPoolCreateInfostructure- If
pAllocatoris notNULL,pAllocatormust be a valid pointer to a validVkAllocationCallbacksstructure pDescriptorPoolmust be a valid pointer to aVkDescriptorPoolhandle
Return Codes
- Success
- -
VK_SUCCESS
- Failure
- -
VK_ERROR_OUT_OF_HOST_MEMORYVK_ERROR_OUT_OF_DEVICE_MEMORY
VK_ERROR_FRAGMENTATION_EXT
See Also
VkAllocationCallbacks,
VkDescriptorPool, VkDescriptorPoolCreateInfo,
VkDevice
vkDestroyDescriptorPool :: ("device" ::: VkDevice) -> ("descriptorPool" ::: VkDescriptorPool) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO () Source #
vkDestroyDescriptorPool - Destroy a descriptor pool object
Parameters
deviceis the logical device that destroys the descriptor pool.
descriptorPoolis the descriptor pool to destroy.pAllocatorcontrols host memory allocation as described in the Memory Allocation chapter.
Description
When a pool is destroyed, all descriptor sets allocated from the pool are implicitly freed and become invalid. Descriptor sets allocated from a given pool do not need to be freed before destroying that descriptor pool.
Valid Usage
- All submitted commands that refer to
descriptorPool(via any allocated descriptor sets) must have completed execution
- If
VkAllocationCallbackswere provided whendescriptorPoolwas created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbackswere provided whendescriptorPoolwas created,pAllocatormust beNULL
Valid Usage (Implicit)
devicemust be a validVkDevicehandle
- If
descriptorPoolis notVK_NULL_HANDLE,descriptorPoolmust be a validVkDescriptorPoolhandle - If
pAllocatoris notNULL,pAllocatormust be a valid pointer to a validVkAllocationCallbacksstructure - If
descriptorPoolis a valid handle, it must have been created, allocated, or retrieved fromdevice
Host Synchronization
- Host access to
descriptorPoolmust be externally synchronized
See Also
vkResetDescriptorPool :: ("device" ::: VkDevice) -> ("descriptorPool" ::: VkDescriptorPool) -> ("flags" ::: VkDescriptorPoolResetFlags) -> IO VkResult Source #
vkResetDescriptorPool - Resets a descriptor pool object
Parameters
deviceis the logical device that owns the descriptor pool.
descriptorPoolis the descriptor pool to be reset.flagsis reserved for future use.
Description
Resetting a descriptor pool recycles all of the resources from all of the descriptor sets allocated from the descriptor pool back to the descriptor pool, and the descriptor sets are implicitly freed.
Valid Usage
- All uses of
descriptorPool(via any allocated descriptor sets) must have completed execution
Valid Usage (Implicit)
devicemust be a validVkDevicehandle
descriptorPoolmust be a validVkDescriptorPoolhandleflagsmust be0descriptorPoolmust have been created, allocated, or retrieved fromdevice
Host Synchronization
- Host access to
descriptorPoolmust be externally synchronized
- Host access to any
VkDescriptorSetobjects allocated fromdescriptorPoolmust be externally synchronized
Return Codes
- Success
- -
VK_SUCCESS
- Failure
- -
VK_ERROR_OUT_OF_HOST_MEMORYVK_ERROR_OUT_OF_DEVICE_MEMORY
See Also
vkAllocateDescriptorSets :: ("device" ::: VkDevice) -> ("pAllocateInfo" ::: Ptr VkDescriptorSetAllocateInfo) -> ("pDescriptorSets" ::: Ptr VkDescriptorSet) -> IO VkResult Source #
vkAllocateDescriptorSets - Allocate one or more descriptor sets
Parameters
deviceis the logical device that owns the descriptor pool.
pAllocateInfois a pointer to an instance of theVkDescriptorSetAllocateInfostructure describing parameters of the allocation.pDescriptorSetsis a pointer to an array ofVkDescriptorSethandles in which the resulting descriptor set objects are returned.
Description
The allocated descriptor sets are returned in pDescriptorSets.
When a descriptor set is allocated, the initial state is largely
uninitialized and all descriptors are undefined. However, the descriptor
set can be bound in a command buffer without causing errors or
exceptions. For descriptor set bindings created with the
VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT bit set, all descriptors
in that binding that are dynamically used must have been populated
before the descriptor set is
consumed. For descriptor
set bindings created without the
VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT bit set, all descriptors
in that binding that are statically used must have been populated
before the descriptor set is
consumed. Entries that are
not used by a pipeline can have uninitialized descriptors or
descriptors of resources that have been destroyed, and executing a draw
or dispatch with such a descriptor set bound does not cause undefined
behavior. This means applications need not populate unused entries with
dummy descriptors.
If a call to vkAllocateDescriptorSets would cause the total number of
descriptor sets allocated from the pool to exceed the value of
VkDescriptorPoolCreateInfo::maxSets used to create
pAllocateInfo→descriptorPool, then the allocation may fail due to
lack of space in the descriptor pool. Similarly, the allocation may
fail due to lack of space if the call to vkAllocateDescriptorSets
would cause the number of any given descriptor type to exceed the sum of
all the descriptorCount members of each element of
VkDescriptorPoolCreateInfo::pPoolSizes with a member equal to that
type. If the allocation fails due to no more space in the descriptor
pool, and not because of system or device memory exhaustion, then
VK_ERROR_OUT_OF_POOL_MEMORY must be returned.
vkAllocateDescriptorSets can be used to create multiple descriptor
sets. If the creation of any of those descriptor sets fails, then the
implementation must destroy all successfully created descriptor set
objects from this command, set all entries of the pDescriptorSets
array to VK_NULL_HANDLE and return
the error.
Valid Usage (Implicit)
devicemust be a validVkDevicehandle
pAllocateInfomust be a valid pointer to a validVkDescriptorSetAllocateInfostructurepDescriptorSetsmust be a valid pointer to an array ofpAllocateInfo::descriptorSetCountVkDescriptorSethandles
Host Synchronization
- Host access to
pAllocateInfo::descriptorPool must be externally synchronized
Return Codes
- Success
- -
VK_SUCCESS
- Failure
- -
VK_ERROR_OUT_OF_HOST_MEMORYVK_ERROR_OUT_OF_DEVICE_MEMORY
VK_ERROR_FRAGMENTED_POOL
VK_ERROR_OUT_OF_POOL_MEMORY
See Also
vkFreeDescriptorSets :: ("device" ::: VkDevice) -> ("descriptorPool" ::: VkDescriptorPool) -> ("descriptorSetCount" ::: Word32) -> ("pDescriptorSets" ::: Ptr VkDescriptorSet) -> IO VkResult Source #
vkFreeDescriptorSets - Free one or more descriptor sets
Parameters
deviceis the logical device that owns the descriptor pool.
descriptorPoolis the descriptor pool from which the descriptor sets were allocated.descriptorSetCountis the number of elements in thepDescriptorSetsarray.pDescriptorSetsis an array of handles toVkDescriptorSetobjects.
Description
After a successful call to vkFreeDescriptorSets, all descriptor sets
in pDescriptorSets are invalid.
Valid Usage
- All submitted commands that refer to any element of
pDescriptorSetsmust have completed execution
pDescriptorSetsmust be a valid pointer to an array ofdescriptorSetCountVkDescriptorSethandles, each element of which must either be a valid handle orVK_NULL_HANDLE- Each valid handle in
pDescriptorSetsmust have been allocated fromdescriptorPool descriptorPoolmust have been created with theVK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BITflag
Valid Usage (Implicit)
devicemust be a validVkDevicehandle
descriptorPoolmust be a validVkDescriptorPoolhandledescriptorSetCountmust be greater than0descriptorPoolmust have been created, allocated, or retrieved fromdevice- Each element of
pDescriptorSetsthat is a valid handle must have been created, allocated, or retrieved fromdescriptorPool
Host Synchronization
- Host access to
descriptorPoolmust be externally synchronized
- Host access to each member of
pDescriptorSetsmust be externally synchronized
Return Codes
- Success
- -
VK_SUCCESS
- Failure
- -
VK_ERROR_OUT_OF_HOST_MEMORYVK_ERROR_OUT_OF_DEVICE_MEMORY
See Also
vkUpdateDescriptorSets :: ("device" ::: VkDevice) -> ("descriptorWriteCount" ::: Word32) -> ("pDescriptorWrites" ::: Ptr VkWriteDescriptorSet) -> ("descriptorCopyCount" ::: Word32) -> ("pDescriptorCopies" ::: Ptr VkCopyDescriptorSet) -> IO () Source #
vkUpdateDescriptorSets - Update the contents of a descriptor set object
Parameters
deviceis the logical device that updates the descriptor sets.
descriptorWriteCountis the number of elements in thepDescriptorWritesarray.pDescriptorWritesis a pointer to an array ofVkWriteDescriptorSetstructures describing the descriptor sets to write to.descriptorCopyCountis the number of elements in thepDescriptorCopiesarray.pDescriptorCopiesis a pointer to an array ofVkCopyDescriptorSetstructures describing the descriptor sets to copy between.
Description
The operations described by pDescriptorWrites are performed first,
followed by the operations described by pDescriptorCopies. Within each
array, the operations are performed in the order they appear in the
array.
Each element in the pDescriptorWrites array describes an operation
updating the descriptor set using descriptors for resources specified in
the structure.
Each element in the pDescriptorCopies array is a VkCopyDescriptorSet
structure describing an operation copying descriptors between sets.
If the dstSet member of any element of pDescriptorWrites or
pDescriptorCopies is bound, accessed, or modified by any command that
was recorded to a command buffer which is currently in the
recording or executable state,
and any of the descriptor bindings that are updated were not created
with the VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT or
VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT bits set,
that command buffer becomes
invalid.
Valid Usage
- Descriptor bindings updated by this command which were created
without the
VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXTorVK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXTbits set must not be used by any command that was recorded to a command buffer which is in the pending state.
Valid Usage (Implicit)
devicemust be a validVkDevicehandle
- If
descriptorWriteCountis not0,pDescriptorWritesmust be a valid pointer to an array ofdescriptorWriteCountvalidVkWriteDescriptorSetstructures - If
descriptorCopyCountis not0,pDescriptorCopiesmust be a valid pointer to an array ofdescriptorCopyCountvalidVkCopyDescriptorSetstructures
Host Synchronization
- Host access to
pDescriptorWrites[].dstSet must be externally synchronized
- Host access to
pDescriptorCopies[].dstSet must be externally synchronized
See Also
data VkDescriptorBufferInfo Source #
VkDescriptorBufferInfo - Structure specifying descriptor buffer info
Description
Note
When setting range to VK_WHOLE_SIZE, the effective range must not
be larger than the maximum range for the descriptor type
(maxUniformBufferRange
or
maxStorageBufferRange).
This means that VK_WHOLE_SIZE is not typically useful in the common
case where uniform buffer descriptors are suballocated from a buffer
that is much larger than maxUniformBufferRange.
For VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC and
VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC descriptor types, offset
is the base offset from which the dynamic offset is applied and range
is the static size used for all dynamic offsets.
Valid Usage
offsetmust be less than the size ofbuffer
- If
rangeis not equal toVK_WHOLE_SIZE,rangemust be greater than0 - If
rangeis not equal toVK_WHOLE_SIZE,rangemust be less than or equal to the size ofbufferminusoffset
Valid Usage (Implicit)
buffermust be a validVkBufferhandle
See Also
VkBuffer, VkDeviceSize,
VkWriteDescriptorSet
Constructors
| VkDescriptorBufferInfo | |
Fields
| |
data VkDescriptorImageInfo Source #
VkDescriptorImageInfo - Structure specifying descriptor image info
Description
Members of VkDescriptorImageInfo that are not used in an update (as
described above) are ignored.
Valid Usage
imageViewmust not be 2D or 2D array image view created from a 3D image
imageLayoutmust match the actualVkImageLayoutof each subresource accessible fromimageViewat the time this descriptor is accessedIf
sampleris used and enables sampler Y’CBCR conversion:- The
formatof theimageViewmust be the same as theVkFormatof the image - The
aspectMaskof theimageViewmust beVK_IMAGE_ASPECT_COLOR_BIT - The
components.aof theimageViewmust beVK_COMPONENT_SWIZZLE_IDENTITY - The
components.rof theimageViewmust beVK_COMPONENT_SWIZZLE_IDENTITY - The
components.gof theimageViewmust beVK_COMPONENT_SWIZZLE_IDENTITY - The
components.bof theimageViewmust beVK_COMPONENT_SWIZZLE_IDENTITY - The
pNextchain of theimageViewmust contain aVkSamplerYcbcrConversionInfowhich has aconversionwhich is an identically defined object to theconversionof theVkSamplerYcbcrConversionInfowhich is in thepNextchain of thesampler
- The
- If
sampleris used and does not enable sampler Y’CBCR conversion and theVkFormatof the image is a multi-planar format, the image must have been created withVK_IMAGE_CREATE_MUTABLE_FORMAT_BIT, and theaspectMaskof theimageViewmust beVK_IMAGE_ASPECT_PLANE_0_BIT,VK_IMAGE_ASPECT_PLANE_1_BITor (for three-plane formats only)VK_IMAGE_ASPECT_PLANE_2_BIT
Valid Usage (Implicit)
- Both of
imageView, andsamplerthat are valid handles must have been created, allocated, or retrieved from the sameVkDevice
See Also
Constructors
| VkDescriptorImageInfo | |
Fields
| |
data VkWriteDescriptorSet Source #
VkWriteDescriptorSet - Structure specifying the parameters of a descriptor set write operation
Description
Only one of pImageInfo, pBufferInfo, or pTexelBufferView members
is used according to the descriptor type specified in the
descriptorType member of the containing VkWriteDescriptorSet
structure, as specified below.
If the dstBinding has fewer than descriptorCount array elements
remaining starting from dstArrayElement, then the remainder will be
used to update the subsequent binding - dstBinding+1 starting at array
element zero. If a binding has a descriptorCount of zero, it is
skipped. This behavior applies recursively, with the update affecting
consecutive bindings as needed to update all descriptorCount
descriptors.
Valid Usage
dstBindingmust be less than or equal to the maximum value ofbindingof allVkDescriptorSetLayoutBindingstructures specified whendstSet’s descriptor set layout was created
dstBindingmust be a binding with a non-zerodescriptorCount- All consecutive bindings updated via a single
VkWriteDescriptorSetstructure, except those with adescriptorCountof zero, must have identicaldescriptorTypeandstageFlags. - All consecutive bindings updated via a single
VkWriteDescriptorSetstructure, except those with adescriptorCountof zero, must all either use immutable samplers or must all not use immutable samplers. descriptorTypemust match the type ofdstBindingwithindstSetdstSetmust be a validVkDescriptorSethandle- The sum of
dstArrayElementanddescriptorCountmust be less than or equal to the number of array elements in the descriptor set binding specified bydstBinding, and all applicable consecutive bindings, as described by {html_spec_relative}#descriptorsets-updates-consecutive - If
descriptorTypeisVK_DESCRIPTOR_TYPE_SAMPLER,VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE,VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, orVK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT,pImageInfomust be a valid pointer to an array ofdescriptorCountvalidVkDescriptorImageInfostructures - If
descriptorTypeisVK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFERorVK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER,pTexelBufferViewmust be a valid pointer to an array ofdescriptorCountvalidVkBufferViewhandles - If
descriptorTypeisVK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,VK_DESCRIPTOR_TYPE_STORAGE_BUFFER,VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, orVK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC,pBufferInfomust be a valid pointer to an array ofdescriptorCountvalidVkDescriptorBufferInfostructures - If
descriptorTypeisVK_DESCRIPTOR_TYPE_SAMPLERorVK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, anddstSetwas not allocated with a layout that included immutable samplers fordstBindingwithdescriptorType, thesamplermember of each element ofpImageInfomust be a validVkSamplerobject - If
descriptorTypeisVK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE,VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, orVK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, theimageViewandimageLayoutmembers of each element ofpImageInfomust be a validVkImageViewandVkImageLayout, respectively - If
descriptorTypeisVK_DESCRIPTOR_TYPE_STORAGE_IMAGE, for each descriptor that will be accessed via load or store operations theimageLayoutmember for corresponding elements ofpImageInfomust beVK_IMAGE_LAYOUT_GENERAL - If
descriptorTypeisVK_DESCRIPTOR_TYPE_UNIFORM_BUFFERorVK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, theoffsetmember of each element ofpBufferInfomust be a multiple ofVkPhysicalDeviceLimits::minUniformBufferOffsetAlignment - If
descriptorTypeisVK_DESCRIPTOR_TYPE_STORAGE_BUFFERorVK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, theoffsetmember of each element ofpBufferInfomust be a multiple ofVkPhysicalDeviceLimits::minStorageBufferOffsetAlignment - If
descriptorTypeisVK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC,VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, orVK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, and thebuffermember of any element ofpBufferInfois the handle of a non-sparse buffer, then that buffer must be bound completely and contiguously to a singleVkDeviceMemoryobject - If
descriptorTypeisVK_DESCRIPTOR_TYPE_UNIFORM_BUFFERorVK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, thebuffermember of each element ofpBufferInfomust have been created withVK_BUFFER_USAGE_UNIFORM_BUFFER_BITset - If
descriptorTypeisVK_DESCRIPTOR_TYPE_STORAGE_BUFFERorVK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, thebuffermember of each element ofpBufferInfomust have been created withVK_BUFFER_USAGE_STORAGE_BUFFER_BITset - If
descriptorTypeisVK_DESCRIPTOR_TYPE_UNIFORM_BUFFERorVK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, therangemember of each element ofpBufferInfo, or the effective range ifrangeisVK_WHOLE_SIZE, must be less than or equal toVkPhysicalDeviceLimits::maxUniformBufferRange - If
descriptorTypeisVK_DESCRIPTOR_TYPE_STORAGE_BUFFERorVK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, therangemember of each element ofpBufferInfo, or the effective range ifrangeisVK_WHOLE_SIZE, must be less than or equal toVkPhysicalDeviceLimits::maxStorageBufferRange - If
descriptorTypeisVK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, theVkBufferthat each element ofpTexelBufferViewwas created from must have been created withVK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BITset - If
descriptorTypeisVK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, theVkBufferthat each element ofpTexelBufferViewwas created from must have been created withVK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BITset - If
descriptorTypeisVK_DESCRIPTOR_TYPE_STORAGE_IMAGEorVK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, theimageViewmember of each element ofpImageInfomust have been created with the identity swizzle - If
descriptorTypeisVK_DESCRIPTOR_TYPE_SAMPLED_IMAGEorVK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, theimageViewmember of each element ofpImageInfomust have been created withVK_IMAGE_USAGE_SAMPLED_BITset - If
descriptorTypeisVK_DESCRIPTOR_TYPE_SAMPLED_IMAGEorVK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, theimageLayoutmember of each element ofpImageInfomust beVK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL,VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMALorVK_IMAGE_LAYOUT_GENERAL - If
descriptorTypeisVK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, theimageViewmember of each element ofpImageInfomust have been created withVK_IMAGE_USAGE_INPUT_ATTACHMENT_BITset - If
descriptorTypeisVK_DESCRIPTOR_TYPE_STORAGE_IMAGE, theimageViewmember of each element ofpImageInfomust have been created withVK_IMAGE_USAGE_STORAGE_BITset - All consecutive bindings updated via a single
VkWriteDescriptorSetstructure, except those with adescriptorCountof zero, must have identicalVkDescriptorBindingFlagBitsEXT.
Valid Usage (Implicit)
sTypemust beVK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET
pNextmust beNULLdescriptorTypemust be a validVkDescriptorTypevaluedescriptorCountmust be greater than0- Both of
dstSet, and the elements ofpTexelBufferViewthat are valid handles must have been created, allocated, or retrieved from the sameVkDevice
See Also
VkBufferView,
VkDescriptorBufferInfo, VkDescriptorImageInfo, VkDescriptorSet,
VkDescriptorType, VkStructureType,
vkCmdPushDescriptorSetKHR,
vkUpdateDescriptorSets
Constructors
| VkWriteDescriptorSet | |
Fields
| |
data VkCopyDescriptorSet Source #
VkCopyDescriptorSet - Structure specifying a copy descriptor set operation
Description
Valid Usage
srcBindingmust be a valid binding withinsrcSet
- The sum of
srcArrayElementanddescriptorCountmust be less than or equal to the number of array elements in the descriptor set binding specified bysrcBinding, and all applicable consecutive bindings, as described by {html_spec_relative}#descriptorsets-updates-consecutive dstBindingmust be a valid binding withindstSet- The sum of
dstArrayElementanddescriptorCountmust be less than or equal to the number of array elements in the descriptor set binding specified bydstBinding, and all applicable consecutive bindings, as described by {html_spec_relative}#descriptorsets-updates-consecutive - If
srcSetis equal todstSet, then the source and destination ranges of descriptors must not overlap, where the ranges may include array elements from consecutive bindings as described by {html_spec_relative}#descriptorsets-updates-consecutive - If
srcSet’s layout was created with theVK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXTflag set, thendstSet’s layout must also have been created with theVK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXTflag set - If
srcSet’s layout was created without theVK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXTflag set, thendstSet’s layout must also have been created without theVK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXTflag set - If the descriptor pool from which
srcSetwas allocated was created with theVK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXTflag set, then the descriptor pool from whichdstSetwas allocated must also have been created with theVK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXTflag set - If the descriptor pool from which
srcSetwas allocated was created without theVK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXTflag set, then the descriptor pool from whichdstSetwas allocated must also have been created without theVK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXTflag set
Valid Usage (Implicit)
sTypemust beVK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET
pNextmust beNULLsrcSetmust be a validVkDescriptorSethandledstSetmust be a validVkDescriptorSethandle- Both of
dstSet, andsrcSetmust have been created, allocated, or retrieved from the sameVkDevice
See Also
Constructors
| VkCopyDescriptorSet | |
Fields
| |
data VkDescriptorSetLayoutBinding Source #
VkDescriptorSetLayoutBinding - Structure specifying a descriptor set layout binding
Members
bindingis the binding number of this entry and corresponds to a resource of the same binding number in the shader stages.
descriptorTypeis aVkDescriptorTypespecifying which type of resource descriptors are used for this binding.descriptorCountis the number of descriptors contained in the binding, accessed in a shader as an array. IfdescriptorCountis zero this binding entry is reserved and the resource must not be accessed from any stage via this binding within any pipeline using the set layout.stageFlagsmember is a bitmask ofVkShaderStageFlagBitsspecifying which pipeline shader stages can access a resource for this binding.VK_SHADER_STAGE_ALLis a shorthand specifying that all defined shader stages, including any additional stages defined by extensions, can access the resource.If a shader stage is not included in
stageFlags, then a resource must not be accessed from that stage via this binding within any pipeline using the set layout. Other than input attachments which are limited to the fragment shader, there are no limitations on what combinations of stages can use a descriptor binding, and in particular a binding can be used by both graphics stages and the compute stage.
Description
pImmutableSamplersaffects initialization of samplers. IfdescriptorTypespecifies aVK_DESCRIPTOR_TYPE_SAMPLERorVK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLERtype descriptor, thenpImmutableSamplerscan be used to initialize a set of /immutable samplers/. Immutable samplers are permanently bound into the set layout; later binding a sampler into an immutable sampler slot in a descriptor set is not allowed. IfpImmutableSamplersis notNULL, then it is considered to be a pointer to an array of sampler handles that will be consumed by the set layout and used for the corresponding binding. IfpImmutableSamplersisNULL, then the sampler slots are dynamic and sampler handles must be bound into descriptor sets using this layout. IfdescriptorTypeis not one of these descriptor types, thenpImmutableSamplersis ignored.
The above layout definition allows the descriptor bindings to be
specified sparsely such that not all binding numbers between 0 and the
maximum binding number need to be specified in the pBindings array.
Bindings that are not specified have a descriptorCount and
stageFlags of zero, and the descriptorType is treated as undefined.
However, all binding numbers between 0 and the maximum binding number in
the VkDescriptorSetLayoutCreateInfo::pBindings array may consume
memory in the descriptor set layout even if not all descriptor bindings
are used, though it should not consume additional memory from the
descriptor pool.
Note
The maximum binding number specified should be as compact as possible to avoid wasted memory.
Valid Usage
- If
descriptorTypeisVK_DESCRIPTOR_TYPE_SAMPLERorVK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, anddescriptorCountis not0andpImmutableSamplersis notNULL,pImmutableSamplersmust be a valid pointer to an array ofdescriptorCountvalidVkSamplerhandles
- If
descriptorCountis not0,stageFlagsmust be a valid combination ofVkShaderStageFlagBitsvalues - If
descriptorTypeisVK_DESCRIPTOR_TYPE_INPUT_ATTACHMENTanddescriptorCountis not0, thenstageFlagsmust be0orVK_SHADER_STAGE_FRAGMENT_BIT
Valid Usage (Implicit)
descriptorTypemust be a validVkDescriptorTypevalue
See Also
VkDescriptorSetLayoutCreateInfo, VkDescriptorType,
VkSampler,
VkShaderStageFlags
Constructors
| VkDescriptorSetLayoutBinding | |
data VkDescriptorSetLayoutCreateInfo Source #
VkDescriptorSetLayoutCreateInfo - Structure specifying parameters of a newly created descriptor set layout
Description
Valid Usage
- The
VkDescriptorSetLayoutBinding::bindingmembers of the elements of thepBindingsarray must each have different values.
- If
flagscontainsVK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR, then all elements ofpBindingsmust not have adescriptorTypeofVK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMICorVK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC - If
flagscontainsVK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR, then the total number of elements of all bindings must be less than or equal toVkPhysicalDevicePushDescriptorPropertiesKHR::maxPushDescriptors - If any binding has the
VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXTbit set,flagsmust includeVK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT - If any binding has the
VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXTbit set, then all bindings must not havedescriptorTypeofVK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMICorVK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
Valid Usage (Implicit)
sTypemust beVK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO
pNextmust beNULLor a pointer to a valid instance ofVkDescriptorSetLayoutBindingFlagsCreateInfoEXTflagsmust be a valid combination ofVkDescriptorSetLayoutCreateFlagBitsvalues- If
bindingCountis not0,pBindingsmust be a valid pointer to an array ofbindingCountvalidVkDescriptorSetLayoutBindingstructures
See Also
VkDescriptorSetLayoutBinding, VkDescriptorSetLayoutCreateFlags,
VkStructureType,
vkCreateDescriptorSetLayout,
vkGetDescriptorSetLayoutSupport,
vkGetDescriptorSetLayoutSupportKHR
Constructors
| VkDescriptorSetLayoutCreateInfo | |
Fields
| |
data VkDescriptorPoolSize Source #
VkDescriptorPoolSize - Structure specifying descriptor pool size
Description
Valid Usage
descriptorCountmust be greater than0
Valid Usage (Implicit)
typemust be a validVkDescriptorTypevalue
See Also
Constructors
| VkDescriptorPoolSize | |
Fields
| |
data VkDescriptorPoolCreateInfo Source #
VkDescriptorPoolCreateInfo - Structure specifying parameters of a newly created descriptor pool
Description
If multiple VkDescriptorPoolSize structures appear in the 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 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 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 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 the VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT
bit set, descriptor pool creation may fail with the error
VK_ERROR_FRAGMENTATION_EXT if the total number of descriptors across
all pools (including this one) created with this bit set exceeds
maxUpdateAfterBindDescriptorsInAllPools, or if fragmentation of the
underlying hardware resources occurs.
Valid Usage
maxSetsmust be greater than0
Valid Usage (Implicit)
sTypemust beVK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO
pNextmust beNULLflagsmust be a valid combination ofVkDescriptorPoolCreateFlagBitsvaluespPoolSizesmust be a valid pointer to an array ofpoolSizeCountvalidVkDescriptorPoolSizestructurespoolSizeCountmust be greater than0
See Also
VkDescriptorPoolCreateFlags, VkDescriptorPoolSize,
VkStructureType, vkCreateDescriptorPool
Constructors
| VkDescriptorPoolCreateInfo | |
Fields
| |
data VkDescriptorSetAllocateInfo Source #
VkDescriptorSetAllocateInfo - Structure specifying the allocation parameters for descriptor sets
Description
Valid Usage
- Each element of
pSetLayoutsmust not have been created withVK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHRset
- If any element of
pSetLayoutswas created with theVK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXTbit set,descriptorPoolmust have been created with theVK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXTflag set
Valid Usage (Implicit)
sTypemust beVK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO
pNextmust beNULLor a pointer to a valid instance ofVkDescriptorSetVariableDescriptorCountAllocateInfoEXTdescriptorPoolmust be a validVkDescriptorPoolhandlepSetLayoutsmust be a valid pointer to an array ofdescriptorSetCountvalidVkDescriptorSetLayouthandlesdescriptorSetCountmust be greater than0- Both of
descriptorPool, and the elements ofpSetLayoutsmust have been created, allocated, or retrieved from the sameVkDevice
See Also
VkDescriptorPool,
VkDescriptorSetLayout,
VkStructureType,
vkAllocateDescriptorSets
Constructors
| VkDescriptorSetAllocateInfo | |
Fields
| |
type VkDescriptorSetLayoutCreateFlags = VkDescriptorSetLayoutCreateFlagBits Source #
VkDescriptorSetLayoutCreateFlags - Bitmask of VkDescriptorSetLayoutCreateFlagBits
Description
VkDescriptorSetLayoutCreateFlags is a bitmask type for setting a mask
of zero or more VkDescriptorSetLayoutCreateFlagBits.
See Also
VkDescriptorSetLayoutCreateFlagBits, VkDescriptorSetLayoutCreateInfo
type VkDescriptorPoolCreateFlags = VkDescriptorPoolCreateFlagBits Source #
VkDescriptorPoolCreateFlags - Bitmask of VkDescriptorPoolCreateFlagBits
Description
VkDescriptorPoolCreateFlags is a bitmask type for setting a mask of
zero or more VkDescriptorPoolCreateFlagBits.