Function Prototype

vkCmdBindTransformFeedbackBuffers2EXT

Bind transform feedback memory ranges to a command buffer

To bind transform feedback memory ranges to a command buffer for use in subsequent drawing commands, call:

void vkCmdBindTransformFeedbackBuffers2EXT(
    VkCommandBuffer   commandBuffer,
    uint32_t                            firstBinding,
    uint32_t                            bindingCount,
    const VkBindTransformFeedbackBuffer2InfoEXT* pBindingInfos);
  • commandBuffer is the command buffer into which the command is recorded.
  • firstBinding is the index of the first transform feedback binding whose state is updated by the command.
  • bindingCount is the number of transform feedback bindings whose state is updated by the command.
  • pBindingInfos is a pointer to an array of VkBindTransformFeedbackBuffer2InfoEXT structures specifying the ranges of memory to be used to capture transform feedback data.

Element i of pBindingInfos replaces the current state for the transform feedback binding firstBinding + i, for i in [0,bindingCount).

Valid Usage

VUID-vkCmdBindTransformFeedbackBuffers2EXT-transformFeedback-02355

VkPhysicalDeviceTransformFeedbackFeaturesEXT::transformFeedbackmust be enabled

VUID-vkCmdBindTransformFeedbackBuffers2EXT-firstBinding-02356

firstBinding must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers

VUID-vkCmdBindTransformFeedbackBuffers2EXT-firstBinding-02357

The sum of firstBinding and bindingCount must be less than or equal to VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers

VUID-vkCmdBindTransformFeedbackBuffers2EXT-None-02365

Transform feedback must not be active when the vkCmdBindTransformFeedbackBuffers2EXT command is recorded

VUID-vkCmdBindTransformFeedbackBuffers2EXT-addressRange-13090

The addressRange.address member of all elements of pBindingInfos must be a multiple of 4

VUID-vkCmdBindTransformFeedbackBuffers2EXT-addressRange-13091

The buffer that the addressRange of each element of pBindingInfos was queried from must have been created with VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT

VUID-vkCmdBindTransformFeedbackBuffers2EXT-addressRange-13092

The addressRange.size member of all elements of pBindingInfos must be less than or equal to VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBufferSize

Valid Usage (Implicit)

VUID-vkCmdBindTransformFeedbackBuffers2EXT-pBindingInfos-parameter

If pBindingInfos is not NULL, pBindingInfos must be a valid pointer to an array of bindingCount valid VkBindTransformFeedbackBuffer2InfoEXT structures

VUID-vkCmdBindTransformFeedbackBuffers2EXT-commandBuffer-cmdpool

The VkCommandPool that commandBuffer was allocated from must support VK_QUEUE_GRAPHICS_BIT operations

VUID-vkCmdBindTransformFeedbackBuffers2EXT-videocoding

This command must only be called outside of a video coding scope

VUID-vkCmdBindTransformFeedbackBuffers2EXT-bindingCount-arraylength

If pBindingInfos is not NULL, bindingCount must be greater than 0

Host Synchronization

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