1= Debugging 2 3To aid developers in tracking down errors in the application's use of 4Vulkan, particularly in combination with an external debugger or profiler, 5_debugging extensions_ may be available. 6 7[open,refpage='VkObjectType',desc='Specify an enumeration to track object handle types',type='enums'] 8-- 9 10The elink:VkObjectType enumeration defines values, each of which corresponds 11to a specific Vulkan handle type. 12These values can: be used to associate debug information with a particular 13type of object through one or more extensions. 14 15include::../api/enums/VkObjectType.txt[] 16 17[[debugging-object-types]] 18.VkObjectType and Vulkan Handle Relationship 19[width="80%",cols="<35,<23",options="header"] 20|==== 21| elink:VkObjectType | Vulkan Handle Type 22| ename:VK_OBJECT_TYPE_UNKNOWN | Unknown/Undefined Handle 23| ename:VK_OBJECT_TYPE_INSTANCE | slink:VkInstance 24| ename:VK_OBJECT_TYPE_PHYSICAL_DEVICE | slink:VkPhysicalDevice 25| ename:VK_OBJECT_TYPE_DEVICE | slink:VkDevice 26| ename:VK_OBJECT_TYPE_QUEUE | slink:VkQueue 27| ename:VK_OBJECT_TYPE_SEMAPHORE | slink:VkSemaphore 28| ename:VK_OBJECT_TYPE_COMMAND_BUFFER | slink:VkCommandBuffer 29| ename:VK_OBJECT_TYPE_FENCE | slink:VkFence 30| ename:VK_OBJECT_TYPE_DEVICE_MEMORY | slink:VkDeviceMemory 31| ename:VK_OBJECT_TYPE_BUFFER | slink:VkBuffer 32| ename:VK_OBJECT_TYPE_IMAGE | slink:VkImage 33| ename:VK_OBJECT_TYPE_EVENT | slink:VkEvent 34| ename:VK_OBJECT_TYPE_QUERY_POOL | slink:VkQueryPool 35| ename:VK_OBJECT_TYPE_BUFFER_VIEW | slink:VkBufferView 36| ename:VK_OBJECT_TYPE_IMAGE_VIEW | slink:VkImageView 37| ename:VK_OBJECT_TYPE_SHADER_MODULE | slink:VkShaderModule 38| ename:VK_OBJECT_TYPE_PIPELINE_CACHE | slink:VkPipelineCache 39| ename:VK_OBJECT_TYPE_PIPELINE_LAYOUT | slink:VkPipelineLayout 40| ename:VK_OBJECT_TYPE_RENDER_PASS | slink:VkRenderPass 41| ename:VK_OBJECT_TYPE_PIPELINE | slink:VkPipeline 42| ename:VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT | slink:VkDescriptorSetLayout 43| ename:VK_OBJECT_TYPE_SAMPLER | slink:VkSampler 44| ename:VK_OBJECT_TYPE_DESCRIPTOR_POOL | slink:VkDescriptorPool 45| ename:VK_OBJECT_TYPE_DESCRIPTOR_SET | slink:VkDescriptorSet 46| ename:VK_OBJECT_TYPE_FRAMEBUFFER | slink:VkFramebuffer 47| ename:VK_OBJECT_TYPE_COMMAND_POOL | slink:VkCommandPool 48ifdef::VK_KHR_surface[] 49| ename:VK_OBJECT_TYPE_SURFACE_KHR | slink:VkSurfaceKHR 50endif::VK_KHR_surface[] 51ifdef::VK_KHR_surface[] 52| ename:VK_OBJECT_TYPE_SWAPCHAIN_KHR | slink:VkSwapchainKHR 53endif::VK_KHR_surface[] 54ifdef::VK_KHR_display[] 55| ename:VK_OBJECT_TYPE_DISPLAY_KHR | slink:VkDisplayKHR 56| ename:VK_OBJECT_TYPE_DISPLAY_MODE_KHR | slink:VkDisplayModeKHR 57endif::VK_KHR_display[] 58ifdef::VK_EXT_debug_report[] 59| ename:VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT | slink:VkDebugReportCallbackEXT 60endif::VK_EXT_debug_report[] 61ifdef::VK_VERSION_1_1,VK_KHR_descriptor_update_template[] 62| ename:VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE | slink:VkDescriptorUpdateTemplate 63endif::VK_VERSION_1_1,VK_KHR_descriptor_update_template[] 64ifdef::VK_NVX_device_generated_commands[] 65| ename:VK_OBJECT_TYPE_OBJECT_TABLE_NVX | slink:VkObjectTableNVX 66| ename:VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX | slink:VkIndirectCommandsLayoutNVX 67endif::VK_NVX_device_generated_commands[] 68ifdef::VK_EXT_validation_cache[] 69| ename:VK_OBJECT_TYPE_VALIDATION_CACHE_EXT | slink:VkValidationCacheEXT 70endif::VK_EXT_validation_cache[] 71|==== 72 73-- 74 75If this Specification was generated with any such extensions included, they 76will be described in the remainder of this chapter. 77 78ifdef::VK_EXT_debug_utils[] 79include::VK_EXT_debug_utils.txt[] 80endif::VK_EXT_debug_utils[] 81 82ifdef::VK_EXT_debug_marker[] 83include::VK_EXT_debug_marker.txt[] 84endif::VK_EXT_debug_marker[] 85 86ifdef::VK_EXT_debug_report[] 87include::VK_EXT_debug_report.txt[] 88endif::VK_EXT_debug_report[] 89 90ifdef::VK_NV_device_diagnostic_checkpoints[] 91include::VK_NV_device_diagnostic_checkpoints/device_diagnostic_checkpoints.txt[] 92endif::VK_NV_device_diagnostic_checkpoints[] 93