Function Prototype

vkCmdEndTransformFeedback2EXT

Make transform feedback inactive in the command buffer

Transform feedback for specific transform feedback buffers is made inactive by calling:

void vkCmdEndTransformFeedback2EXT(
    VkCommandBuffer   commandBuffer,
    uint32_t                            firstCounterRange,
    uint32_t            counterRangeCount,
    const VkBindTransformFeedbackBuffer2InfoEXT* pCounterInfos);
  • commandBuffer is the command buffer into which the command is recorded.
  • firstCounterBuffer is the index of the first transform feedback buffer corresponding to pCounterInfos[0].
  • counterRangeCount is the size of the pCounterInfos array.
  • pCounterInfos is NULL or a pointer to an array of VkBindTransformFeedbackBuffer2InfoEXT structures defining memory ranges used to write counters used to later resume transform feedback.

If pCounterInfos is NULL, it is equivalent to an array of VkBindTransformFeedbackBuffer2InfoEXT structures with each element having a addressRange.size of 0.

If the addressRange.size of an element of pCounterInfos at index i is 0, no data is written to the address range. If the addressRange.size of an element of pCounterInfos at index i is not 0, the byte offset, where the next vertex data would be written to in the transform feedback buffer at a binding equal to the sum of i and firstCounterBuffer, is written to that range’s address.

Valid Usage

VUID-vkCmdEndTransformFeedback2EXT-transformFeedback-02374

VkPhysicalDeviceTransformFeedbackFeaturesEXT::transformFeedbackmust be enabled

VUID-vkCmdEndTransformFeedback2EXT-None-02375

Transform feedback must be active

VUID-vkCmdEndTransformFeedback2EXT-firstCounterBuffer-02376

firstCounterBuffer must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers

VUID-vkCmdEndTransformFeedback2EXT-firstCounterBuffer-02377

The sum of firstCounterBuffer and counterRangeCount must be less than or equal to VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers

VUID-vkCmdEndTransformFeedback2EXT-None-10657

This command must not be recorded when per-tile execution model is enabled

VUID-vkCmdEndTransformFeedback2EXT-pCounterInfos-13095

Each element of pCounterInfos must have a addressRange.size that is either 0 or greater than or equal to 4

VUID-vkCmdEndTransformFeedback2EXT-pCounterInfos-13096

For each element of pCounterInfos with a non-zero address, the buffer the address was queried from must have been created with the VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT usage flag set

Valid Usage (Implicit)

VUID-vkCmdEndTransformFeedback2EXT-pCounterInfos-parameter

If counterRangeCount is not 0, and pCounterInfos is not NULL, pCounterInfos must be a valid pointer to an array of counterRangeCount valid VkBindTransformFeedbackBuffer2InfoEXT structures

VUID-vkCmdEndTransformFeedback2EXT-commandBuffer-cmdpool

The VkCommandPool that commandBuffer was allocated from must support VK_QUEUE_GRAPHICS_BIT operations

VUID-vkCmdEndTransformFeedback2EXT-renderpass

This command must only be called inside of a render pass instance

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