VK_DEFINE_NON_DISPATCHABLE_HANDLE(3)

# VK_DEFINE_NON_DISPATCHABLE_HANDLE(3) Manual Page

## Name

VK_DEFINE_NON_DISPATCHABLE_HANDLE - Declare a non-dispatchable object handle

Loading… please wait.

## C Specification

`VK_DEFINE_NON_DISPATCHABLE_HANDLE` defines a non-dispatchable handle type.

    // Provided by VK_VERSION_1_0
    #ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE
        #if (VK_USE_64_BIT_PTR_DEFINES==1)
            #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
        #else
            #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
        #endif
    #endif

## Description

- `object` is the name of the resulting C type.

Most Vulkan handle types, such as VkBuffer, are non-dispatchable.

Note | The `vulkan_core.h` header allows the VK_DEFINE_NON_DISPATCHABLE_HANDLE and VK_NULL_HANDLE definitions to be overridden by the application. If VK_DEFINE_NON_DISPATCHABLE_HANDLE is already defined when `vulkan_core.h` is compiled, the default definitions for VK_DEFINE_NON_DISPATCHABLE_HANDLE and VK_NULL_HANDLE are skipped. This allows the application to define a binary-compatible custom handle which may provide more type-safety or other features needed by the application. Applications must not define handles in a way that is not binary compatible - where binary compatibility is platform dependent.

## See Also

VK_NULL_HANDLE, VK_VERSION_1_0, VkAccelerationStructureKHR, VkAccelerationStructureNV, VkBuffer, VkBufferCollectionFUCHSIA, VkBufferView, VkCommandPool, VkCuFunctionNVX, VkCuModuleNVX, VkCudaFunctionNV, VkCudaModuleNV, VkDataGraphPipelineSessionARM, VkDebugReportCallbackEXT, VkDebugUtilsMessengerEXT, VkDeferredOperationKHR, VkDescriptorPool, VkDescriptorSet, VkDescriptorSetLayout, VkDescriptorUpdateTemplate, VkDeviceMemory, VkDisplayKHR, VkDisplayModeKHR, VkEvent, VkFence, VkFramebuffer, VkImage, VkImageView, VkIndirectCommandsLayoutEXT, VkIndirectCommandsLayoutNV, VkIndirectExecutionSetEXT, VkMicromapEXT, VkOpticalFlowSessionNV, VkPerformanceConfigurationINTEL, VkPipeline, VkPipelineBinaryKHR, VkPipelineCache, VkPipelineLayout, VkPrivateDataSlot, VkQueryPool, VkRenderPass, VkSampler, VkSamplerYcbcrConversion, VkSemaphore, VkShaderEXT, VkShaderModule, VkSurfaceKHR, VkSwapchainKHR, VkTensorARM, VkTensorViewARM, VkValidationCacheEXT, VkVideoSessionKHR, VkVideoSessionParametersKHR

## 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 2014-2025 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0