/ chapters / debugging.txt
debugging.txt
  1  = Debugging
  2  
  3  To aid developers in tracking down errors in the application's use of
  4  Vulkan, 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  
 10  The elink:VkObjectType enumeration defines values, each of which corresponds
 11  to a specific Vulkan handle type.
 12  These values can: be used to associate debug information with a particular
 13  type of object through one or more extensions.
 14  
 15  include::{generated}/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
 48  ifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
 49  | ename:VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION | slink:VkSamplerYcbcrConversion
 50  endif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
 51  ifdef::VK_VERSION_1_1,VK_KHR_descriptor_update_template[]
 52  | ename:VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE | slink:VkDescriptorUpdateTemplate
 53  endif::VK_VERSION_1_1,VK_KHR_descriptor_update_template[]
 54  ifdef::VK_KHR_surface[]
 55  | ename:VK_OBJECT_TYPE_SURFACE_KHR           | slink:VkSurfaceKHR
 56  endif::VK_KHR_surface[]
 57  ifdef::VK_KHR_swapchain[]
 58  | ename:VK_OBJECT_TYPE_SWAPCHAIN_KHR         | slink:VkSwapchainKHR
 59  endif::VK_KHR_swapchain[]
 60  ifdef::VK_KHR_display[]
 61  | ename:VK_OBJECT_TYPE_DISPLAY_KHR           | slink:VkDisplayKHR
 62  | ename:VK_OBJECT_TYPE_DISPLAY_MODE_KHR      | slink:VkDisplayModeKHR
 63  endif::VK_KHR_display[]
 64  ifdef::VK_EXT_debug_report[]
 65  | ename:VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT | slink:VkDebugReportCallbackEXT
 66  endif::VK_EXT_debug_report[]
 67  ifdef::VK_NVX_device_generated_commands[]
 68  | ename:VK_OBJECT_TYPE_OBJECT_TABLE_NVX | slink:VkObjectTableNVX
 69  | ename:VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX | slink:VkIndirectCommandsLayoutNVX
 70  endif::VK_NVX_device_generated_commands[]
 71  ifdef::VK_EXT_debug_utils[]
 72  | ename:VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT | slink:VkDebugUtilsMessengerEXT
 73  endif::VK_EXT_debug_utils[]
 74  ifdef::VK_EXT_validation_cache[]
 75  | ename:VK_OBJECT_TYPE_VALIDATION_CACHE_EXT | slink:VkValidationCacheEXT
 76  endif::VK_EXT_validation_cache[]
 77  ifdef::VK_NV_ray_tracing[]
 78  | ename:VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV | slink:VkAccelerationStructureNV
 79  endif::VK_NV_ray_tracing[]
 80  ifdef::VK_INTEL_performance_query[]
 81  | ename:VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL | slink:VkPerformanceConfigurationINTEL
 82  endif::VK_INTEL_performance_query[]
 83  |====
 84  
 85  --
 86  
 87  If this Specification was generated with any such extensions included, they
 88  will be described in the remainder of this chapter.
 89  
 90  ifdef::VK_EXT_debug_utils[]
 91  include::VK_EXT_debug_utils.txt[]
 92  endif::VK_EXT_debug_utils[]
 93  
 94  ifdef::VK_EXT_debug_marker[]
 95  include::VK_EXT_debug_marker.txt[]
 96  endif::VK_EXT_debug_marker[]
 97  
 98  ifdef::VK_EXT_debug_report[]
 99  include::VK_EXT_debug_report.txt[]
100  endif::VK_EXT_debug_report[]
101  
102  ifdef::VK_NV_device_diagnostic_checkpoints[]
103  include::VK_NV_device_diagnostic_checkpoints/device_diagnostic_checkpoints.txt[]
104  endif::VK_NV_device_diagnostic_checkpoints[]