vkFreeDescriptorSets(3)

# vkFreeDescriptorSets(3) Manual Page

## Name

vkFreeDescriptorSets - Free one or more descriptor sets

## C Specification

To free allocated descriptor sets, call:

    VkResult vkFreeDescriptorSets(
        VkDevice                                    device,
        VkDescriptorPool                            descriptorPool,
        uint32_t                                    descriptorSetCount,
        const VkDescriptorSet*                      pDescriptorSets);

## Parameters

- `device` is the logical device that owns the descriptor pool.

- `descriptorPool` is the descriptor pool from which the descriptor sets were allocated.

- `descriptorSetCount` is the number of elements in the `pDescriptorSets` array.

- `pDescriptorSets` is a pointer to an array of handles to VkDescriptorSet objects.

## Description

After calling `vkFreeDescriptorSets`, all descriptor sets in `pDescriptorSets` are invalid.

Valid Usage

- All submitted commands that refer to any element of `pDescriptorSets` must have completed execution

- `pDescriptorSets` must be a valid pointer to an array of `descriptorSetCount` `VkDescriptorSet` handles, each element of which must either be a valid handle or VK_NULL_HANDLE

- Each valid handle in `pDescriptorSets` must have been allocated from `descriptorPool`

- `descriptorPool` must have been created with the `VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT` flag

Valid Usage (Implicit)

- `device` must be a valid VkDevice handle

- `descriptorPool` must be a valid VkDescriptorPool handle

- `descriptorSetCount` must be greater than `0`

- `descriptorPool` must have been created, allocated, or retrieved from `device`

- Each element of `pDescriptorSets` that is a valid handle must have been created, allocated, or retrieved from `descriptorPool`

Host Synchronization

- Host access to `descriptorPool` must be externally synchronized

- Host access to each member of `pDescriptorSets` must be externally synchronized

Return Codes

On success, this command returns

  - `VK_SUCCESS`

## See Also

VkDescriptorPool, VkDescriptorSet, VkDevice

## Document Notes

For more information, see the Vulkan Specification

This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.

## Copyright

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.