Function Prototype

vkDestroyQueryPool

Destroy a query pool object

To destroy a query pool, call:

void vkDestroyQueryPool(
    VkDevice device,
    VkQueryPool queryPool,
    const VkAllocationCallbacks* pAllocator);
  • device is the logical device that destroys the query pool.
  • queryPool is the query pool to destroy.
  • pAllocator controls host memory allocation as described in the Memory Allocation chapter.

Valid Usage

VUID-vkDestroyQueryPool-queryPool-00793

All submitted commands that refer to queryPool must have completed execution

VUID-vkDestroyQueryPool-queryPool-00794

If VkAllocationCallbacks were provided when queryPool was created, a compatible set of callbacks must be provided here

VUID-vkDestroyQueryPool-queryPool-00795

If no VkAllocationCallbacks were provided when queryPool was created, pAllocator must be NULL

Applications can verify that queryPool can be destroyed by checking that vkGetQueryPoolResults() without the VK_QUERY_RESULT_PARTIAL_BIT flag returns VK_SUCCESS for all queries that are used in command buffers submitted for execution.

Valid Usage (Implicit)

VUID-vkDestroyQueryPool-queryPool-parameter

If queryPool is not VK_NULL_HANDLE, queryPool must be a valid VkQueryPool handle

VUID-vkDestroyQueryPool-pAllocator-parameter

If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure

VUID-vkDestroyQueryPool-queryPool-parent

If queryPool is a valid handle, it must have been created, allocated, or retrieved from device

Host Synchronization

  • Host access to queryPool must be externally synchronized ::