Function Prototype

vkDestroyDescriptorPool

Destroy a descriptor pool object

To destroy a descriptor pool, call:

void vkDestroyDescriptorPool(
    VkDevice device,
    VkDescriptorPool descriptorPool,
    const VkAllocationCallbacks* pAllocator);
  • device is the logical device that destroys the descriptor pool.
  • descriptorPool is the descriptor pool to destroy.
  • pAllocator controls host memory allocation as described in the Memory Allocation chapter.

When a pool is destroyed, all descriptor sets allocated from the pool are implicitly freed and become invalid. Descriptor sets allocated from a given pool do not need to be freed before destroying that descriptor pool.

Valid Usage

VUID-vkDestroyDescriptorPool-descriptorPool-00303

All submitted commands that refer to descriptorPool (via any allocated descriptor sets) must have completed execution

VUID-vkDestroyDescriptorPool-descriptorPool-00304

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

VUID-vkDestroyDescriptorPool-descriptorPool-00305

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

Valid Usage (Implicit)

VUID-vkDestroyDescriptorPool-descriptorPool-parameter

If descriptorPool is not VK_NULL_HANDLE, descriptorPool must be a valid VkDescriptorPool handle

VUID-vkDestroyDescriptorPool-pAllocator-parameter

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

VUID-vkDestroyDescriptorPool-descriptorPool-parent

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

Host Synchronization

  • Host access to descriptorPool must be externally synchronized ::