# vkDestroyInstance(3) Manual Page

## Name

vkDestroyInstance - Destroy an instance of Vulkan

## C Specification

To destroy an instance, call:

    void vkDestroyInstance(
        VkInstance                                  instance,
        const VkAllocationCallbacks*                pAllocator);

## Parameters

- `instance` is the handle of the instance to destroy.

- `pAllocator` controls host memory allocation as described in the Memory Allocation chapter.

## Description

Valid Usage

- All child objects created using `instance` must have been destroyed prior to destroying `instance`

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

- If no `VkAllocationCallbacks` were provided when `instance` was created, `pAllocator` must be `NULL`

Valid Usage (Implicit)

- If `instance` is not `NULL`, `instance` must be a valid VkInstance handle

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

Host Synchronization

- Host access to `instance` must be externally synchronized

## See Also

VkAllocationCallbacks, VkInstance

## 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-2020 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.