## C Specification

To destroy a buffer, call:

void vkDestroyBuffer(
VkDevice                                    device,
VkBuffer                                    buffer,
const VkAllocationCallbacks*                pAllocator);

## Parameters

• device is the logical device that destroys the buffer.

• buffer is the buffer to destroy.

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

## Description

Valid Usage
• All submitted commands that refer to buffer, either directly or via a VkBufferView, must have completed execution

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

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

Valid Usage (Implicit)
• device must be a valid VkDevice handle

• If buffer is not VK_NULL_HANDLE, buffer must be a valid VkBuffer handle

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

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

Host Synchronization
• Host access to buffer must be externally synchronized

## Document Notes

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