Function Prototype

vkDestroyShaderModule

Destroy a shader module

To destroy a shader module, call:

void vkDestroyShaderModule(
    VkDevice device,
    VkShaderModule shaderModule,
    const VkAllocationCallbacks* pAllocator);
  • device is the logical device that destroys the shader module.
  • shaderModule is the handle of the shader module to destroy.
  • pAllocator controls host memory allocation as described in the Memory Allocation chapter.

A shader module can be destroyed while pipelines created using its shaders are still in use.

Valid Usage

VUID-vkDestroyShaderModule-shaderModule-01092

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

VUID-vkDestroyShaderModule-shaderModule-01093

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

Valid Usage (Implicit)

VUID-vkDestroyShaderModule-shaderModule-parameter

If shaderModule is not VK_NULL_HANDLE, shaderModule must be a valid VkShaderModule handle

VUID-vkDestroyShaderModule-pAllocator-parameter

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

VUID-vkDestroyShaderModule-shaderModule-parent

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

Host Synchronization

  • Host access to shaderModule must be externally synchronized ::