vkCmdResetQueryPool
To reset a range of queries in a query pool on a queue, call:
void vkCmdResetQueryPool(
    VkCommandBuffer commandBuffer,
    VkQueryPool queryPool,
    uint32_t firstQuery,
    uint32_t queryCount);
- commandBufferis the command buffer into which this command will be recorded.
- queryPoolis the handle of the query pool managing the queries being reset.
- firstQueryis the initial query index to reset.
- queryCountis the number of queries to reset.
When executed on a queue, this command sets the status of query indices
[firstQuery, firstQuery +  queryCount - 1] to
unavailable.
This command defines an execution dependency between other query commands that reference the same query.
The first synchronization scope
includes all commands which reference the queries in queryPool
indicated by firstQuery and queryCount that occur earlier in
submission order.
The second synchronization scope
includes all commands which reference the queries in queryPool
indicated by firstQuery and queryCount that occur later in
submission order.
The operation of this command happens after the first scope and happens before the second scope.
If the queryType used to create queryPool was
VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, this command sets the status of
query indices [firstQuery, firstQuery +
queryCount - 1] to unavailable for each pass of queryPool, as
indicated by a call to
vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR.
Because vkCmdResetQueryPool resets all the passes of the indicated
queries, applications must not record a vkCmdResetQueryPool command
for a queryPool created with VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR
in a command buffer that needs to be submitted multiple times as indicated
by a call to vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR.
Otherwise applications will never be able to complete the recorded queries.
Valid Usage
VUID-vkCmdResetQueryPool-firstQuery-09436
firstQuery must be less than the number of queries in
queryPool
VUID-vkCmdResetQueryPool-firstQuery-09437
The sum of firstQuery and queryCount must be less than or
equal to the number of queries in queryPool
VUID-vkCmdResetQueryPool-None-02841
All queries used by the command must not be active
VUID-vkCmdResetQueryPool-firstQuery-02862
If queryPool was created with
VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, this command must not be
recorded in a command buffer that, either directly or through secondary
command buffers, also contains begin commands for a query from the set
of queries [firstQuery, firstQuery +
queryCount - 1]
Valid Usage (Implicit)
VUID-vkCmdResetQueryPool-commandBuffer-parameter
commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdResetQueryPool-queryPool-parameter
queryPool must be a valid VkQueryPool handle
VUID-vkCmdResetQueryPool-commandBuffer-recording
commandBuffer must be in the recording state
VUID-vkCmdResetQueryPool-commandBuffer-cmdpool
The VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, encode, or optical flow operations
VUID-vkCmdResetQueryPool-renderpass
This command must only be called outside of a render pass instance
VUID-vkCmdResetQueryPool-videocoding
This command must only be called outside of a video coding scope
VUID-vkCmdResetQueryPool-commonparent
Both of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice
Host Synchronization
- Host access to commandBuffermust be externally synchronized
- Host access to the VkCommandPoolthatcommandBufferwas allocated from must be externally synchronized ::