Function Prototype

vkCmdEndQueryIndexedEXT

Ends a query
primary / secondary
both
graphics / compute / decode / encode
action / state

To end an indexed query after the set of desired drawing or dispatching commands is recorded, call:

void vkCmdEndQueryIndexedEXT(
    VkCommandBuffer commandBuffer,
    VkQueryPool queryPool,
    uint32_t query,
    uint32_t index);
  • commandBuffer is the command buffer into which this command will be recorded.
  • queryPool is the query pool that is managing the results of the query.
  • query is the query index within the query pool where the result is stored.
  • index is the query type specific index.

The command completes the query in queryPool identified by query and index, and marks it as available.

The vkCmdEndQueryIndexedEXT command operates the same as the vkCmdEndQuery command, except that it also accepts a query type specific index parameter.

This command defines an execution dependency between other query commands that reference the same query index.

The first synchronization scope includes all commands which reference the queries in queryPool indicated by query that occur earlier in submission order.

The second synchronization scope includes only the operation of this command.

Valid Usage

VUID-vkCmdEndQueryIndexedEXT-None-02342

All queries used by the command must be active

VUID-vkCmdEndQueryIndexedEXT-query-02343

query must be less than the number of queries in queryPool

VUID-vkCmdEndQueryIndexedEXT-query-02345

If vkCmdEndQueryIndexedEXT is called within a render pass instance, the sum of query and the number of bits set in the current subpass’s view mask must be less than or equal to the number of queries in queryPool

VUID-vkCmdEndQueryIndexedEXT-queryType-06694

If the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT or VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT, the index parameter must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams

VUID-vkCmdEndQueryIndexedEXT-queryType-06695

If the queryType used to create queryPool was not VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT and not VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT, the index must be zero

VUID-vkCmdEndQueryIndexedEXT-queryType-06696

If the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT or VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT, index must equal the index used to begin the query

VUID-vkCmdEndQueryIndexedEXT-None-07007

If called within a subpass of a render pass instance, the corresponding vkCmdBeginQuery* command must have been called previously within the same subpass

Valid Usage (Implicit)

VUID-vkCmdEndQueryIndexedEXT-commandBuffer-cmdpool

The VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations

VUID-vkCmdEndQueryIndexedEXT-videocoding

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

VUID-vkCmdEndQueryIndexedEXT-commonparent

Both of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice

Host Synchronization

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