vkCmdBindDescriptorBuffersEXT
To bind descriptor buffers to a command buffer, call:
void vkCmdBindDescriptorBuffersEXT(
VkCommandBuffer commandBuffer,
uint32_t bufferCount,
const VkDescriptorBufferBindingInfoEXT* pBindingInfos);
commandBufferis the command buffer that the descriptor buffers will be bound to.bufferCountis the number of elements in thepBindingInfosarray.pBindingInfosis a pointer to an array of VkDescriptorBufferBindingInfoEXT structures.
vkCmdBindDescriptorBuffersEXT causes any offsets previously set by
vkCmdSetDescriptorBufferOffsetsEXT that use the bindings numbered
[0..
bufferCount-1] to be no longer valid for subsequent bound pipeline
commands.
Any previously bound buffers at binding points greater than or equal to
bufferCount are unbound.
Valid Usage
VUID-vkCmdBindDescriptorBuffersEXT-None-08047
The descriptorBuffer feature must
be enabled
VUID-vkCmdBindDescriptorBuffersEXT-maxSamplerDescriptorBufferBindings-08048
There must be no more than
VkPhysicalDeviceDescriptorBufferPropertiesEXT::maxSamplerDescriptorBufferBindings
elements in pBindingInfos with
VkDescriptorBufferBindingInfoEXT::usage containing
VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdBindDescriptorBuffersEXT-maxResourceDescriptorBufferBindings-08049
There must be no more than
VkPhysicalDeviceDescriptorBufferPropertiesEXT::maxResourceDescriptorBufferBindings
elements in pBindingInfos with
VkDescriptorBufferBindingInfoEXT::usage containing
VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdBindDescriptorBuffersEXT-None-08050
There must be no more than 1 element in pBindingInfos with
VkDescriptorBufferBindingInfoEXT::usage containing
VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdBindDescriptorBuffersEXT-bufferCount-08051
bufferCount must be less than or equal to
VkPhysicalDeviceDescriptorBufferPropertiesEXT::maxDescriptorBufferBindings
VUID-vkCmdBindDescriptorBuffersEXT-pBindingInfos-08052
For any element of pBindingInfos, if the buffer from which
address was queried is non-sparse then it must be bound
completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdBindDescriptorBuffersEXT-pBindingInfos-08053
For any element of pBindingInfos, the buffer from which
address was queried must have been created with the
VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT bit set if it
contains sampler descriptor data
VUID-vkCmdBindDescriptorBuffersEXT-pBindingInfos-08054
For any element of pBindingInfos, the buffer from which
address was queried must have been created with the
VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT bit set if it
contains resource descriptor data
VUID-vkCmdBindDescriptorBuffersEXT-pBindingInfos-08055
For any element of pBindingInfos, usage must match the
buffer from which address was queried
Valid Usage (Implicit)
VUID-vkCmdBindDescriptorBuffersEXT-commandBuffer-parameter
commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBindDescriptorBuffersEXT-pBindingInfos-parameter
pBindingInfos must be a valid pointer to an array of bufferCount valid VkDescriptorBufferBindingInfoEXT structures
VUID-vkCmdBindDescriptorBuffersEXT-commandBuffer-recording
commandBuffer must be in the recording state
VUID-vkCmdBindDescriptorBuffersEXT-commandBuffer-cmdpool
The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdBindDescriptorBuffersEXT-videocoding
This command must only be called outside of a video coding scope
VUID-vkCmdBindDescriptorBuffersEXT-bufferCount-arraylength
bufferCount must be greater than 0
Host Synchronization
- Host access to
commandBuffermust be externally synchronized - Host access to the
VkCommandPoolthatcommandBufferwas allocated from must be externally synchronized ::