vkCmdBindTransformFeedbackBuffers2EXT(3)

# vkCmdBindTransformFeedbackBuffers2EXT(3) Manual Page

## Name

vkCmdBindTransformFeedbackBuffers2EXT - Bind transform feedback memory ranges to a command buffer

## C Specification

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

    // Provided by VK_KHR_device_address_commands with VK_EXT_transform_feedback
    void vkCmdBindTransformFeedbackBuffers2EXT(
        VkCommandBuffer                             commandBuffer,
        uint32_t                                    firstBinding,
        uint32_t                                    bindingCount,
        const VkBindTransformFeedbackBuffer2InfoEXT* pBindingInfos);

## Parameters

- `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.

## Description

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`::`transformFeedback` must 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-commandBuffer-parameter
  `commandBuffer` must be a valid VkCommandBuffer handle

- 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-recording
  `commandBuffer` must be in the recording state

- 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

Command Properties

Command Buffer Levels | Render Pass Scope | Video Coding Scope | Supported Queue Types | Command Type
--- | --- | --- | --- | ---
Primary Secondary | Both | Outside | VK_QUEUE_GRAPHICS_BIT | State

Conditional Rendering

vkCmdBindTransformFeedbackBuffers2EXT is not affected by conditional rendering

## See Also

VK_EXT_transform_feedback, VK_KHR_device_address_commands, VkBindTransformFeedbackBuffer2InfoEXT, VkCommandBuffer

## Document Notes

For more information, see the Vulkan Specification.

This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.

## Copyright

Copyright 2014-2026 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0