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);
commandBuffer
is the command buffer into which this command will be recorded.queryPool
is the handle of the query pool managing the queries being reset.firstQuery
is the initial query index to reset.queryCount
is 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
commandBuffer
must be externally synchronized - Host access to the
VkCommandPool
thatcommandBuffer
was allocated from must be externally synchronized ::