Function Prototype

vkCmdBindDescriptorBuffersEXT

Binding descriptor buffers to a command buffer
primary / secondary
both
graphics / compute
state

To bind descriptor buffers to a command buffer, call:

void vkCmdBindDescriptorBuffersEXT(
    VkCommandBuffer commandBuffer,
    uint32_t bufferCount,
    const VkDescriptorBufferBindingInfoEXT* pBindingInfos);
  • commandBuffer is the command buffer that the descriptor buffers will be bound to.
  • bufferCount is the number of elements in the pBindingInfos array.
  • pBindingInfos is 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-maxSamplerDescriptorBufferBindings-08048

There must be no more than VkPhysicalDeviceDescriptorBufferPropertiesEXT::maxSamplerDescriptorBufferBindings descriptor buffers containing sampler descriptor data bound

VUID-vkCmdBindDescriptorBuffersEXT-maxResourceDescriptorBufferBindings-08049

There must be no more than VkPhysicalDeviceDescriptorBufferPropertiesEXT::maxResourceDescriptorBufferBindings descriptor buffers containing resource descriptor data bound

VUID-vkCmdBindDescriptorBuffersEXT-None-08050

There must be no more than 1 descriptor buffer bound that was created with the VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT bit set

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-pBindingInfos-parameter

pBindingInfos must be a valid pointer to an array of bufferCount valid VkDescriptorBufferBindingInfoEXT structures

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

Host Synchronization

  • Host access to commandBuffer must be externally synchronized
  • Host access to the VkCommandPool that commandBuffer was allocated from must be externally synchronized ::