Function Prototype

vkCmdBindDescriptorSets2

Binds descriptor sets to a command buffer

To bind one or more descriptor sets to a command buffer, call:

void vkCmdBindDescriptorSets2(
    VkCommandBuffer commandBuffer,
    const VkBindDescriptorSetsInfo*   pBindDescriptorSetsInfo);
void vkCmdBindDescriptorSets2KHR(
    VkCommandBuffer commandBuffer,
    const VkBindDescriptorSetsInfo*   pBindDescriptorSetsInfo);
  • commandBuffer is the command buffer that the descriptor sets will be bound to.
  • pBindDescriptorSetsInfo is a pointer to a VkBindDescriptorSetsInfo structure.

Valid Usage

VUID-vkCmdBindDescriptorSets2-commandBuffer-11295

If commandBuffer is a secondary command buffer, it must have begun with VkCommandBufferInheritanceDescriptorHeapInfoEXT::pSamplerHeapBindInfo equal to NULL

VUID-vkCmdBindDescriptorSets2-commandBuffer-11296

If commandBuffer is a secondary command buffer, it must have begun with VkCommandBufferInheritanceDescriptorHeapInfoEXT::pResourceHeapBindInfo equal to NULL

VUID-vkCmdBindDescriptorSets2-pBindDescriptorSetsInfo-09467

Each bit in pBindDescriptorSetsInfo→stageFlags must be a stage supported by the commandBuffer’s parent VkCommandPool’s queue family

Valid Usage (Implicit)

VUID-vkCmdBindDescriptorSets2-pBindDescriptorSetsInfo-parameter

pBindDescriptorSetsInfo must be a valid pointer to a valid VkBindDescriptorSetsInfo structure

VUID-vkCmdBindDescriptorSets2-commandBuffer-cmdpool

The VkCommandPool that commandBuffer was allocated from must support VK_QUEUE_COMPUTE_BIT, or VK_QUEUE_GRAPHICS_BIT operations

VUID-vkCmdBindDescriptorSets2-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