• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // clang-format off
2 // *** THIS FILE IS GENERATED - DO NOT EDIT ***
3 // See helper_file_generator.py for modifications
4 
5 
6 /***************************************************************************
7  *
8  * Copyright (c) 2015-2017 The Khronos Group Inc.
9  * Copyright (c) 2015-2017 Valve Corporation
10  * Copyright (c) 2015-2017 LunarG, Inc.
11  * Copyright (c) 2015-2017 Google Inc.
12  *
13  * Licensed under the Apache License, Version 2.0 (the "License");
14  * you may not use this file except in compliance with the License.
15  * You may obtain a copy of the License at
16  *
17  *     http://www.apache.org/licenses/LICENSE-2.0
18  *
19  * Unless required by applicable law or agreed to in writing, software
20  * distributed under the License is distributed on an "AS IS" BASIS,
21  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
22  * See the License for the specific language governing permissions and
23  * limitations under the License.
24  *
25  * Author: Mark Lobodzinski <mark@lunarg.com>
26  * Author: Courtney Goeltzenleuchter <courtneygo@google.com>
27  * Author: Tobin Ehlis <tobine@google.com>
28  * Author: Chris Forbes <chrisforbes@google.com>
29  * Author: John Zulauf<jzulauf@lunarg.com>
30  *
31  ****************************************************************************/
32 
33 
34 #pragma once
35 
36 #include <vulkan/vulkan.h>
37 
38 // Object Type enum for validation layer internal object handling
39 typedef enum VulkanObjectType {
40     kVulkanObjectTypeUnknown = 0,
41     kVulkanObjectTypeBuffer = 1,
42     kVulkanObjectTypeImage = 2,
43     kVulkanObjectTypeInstance = 3,
44     kVulkanObjectTypePhysicalDevice = 4,
45     kVulkanObjectTypeDevice = 5,
46     kVulkanObjectTypeQueue = 6,
47     kVulkanObjectTypeSemaphore = 7,
48     kVulkanObjectTypeCommandBuffer = 8,
49     kVulkanObjectTypeFence = 9,
50     kVulkanObjectTypeDeviceMemory = 10,
51     kVulkanObjectTypeEvent = 11,
52     kVulkanObjectTypeQueryPool = 12,
53     kVulkanObjectTypeBufferView = 13,
54     kVulkanObjectTypeImageView = 14,
55     kVulkanObjectTypeShaderModule = 15,
56     kVulkanObjectTypePipelineCache = 16,
57     kVulkanObjectTypePipelineLayout = 17,
58     kVulkanObjectTypePipeline = 18,
59     kVulkanObjectTypeRenderPass = 19,
60     kVulkanObjectTypeDescriptorSetLayout = 20,
61     kVulkanObjectTypeSampler = 21,
62     kVulkanObjectTypeDescriptorSet = 22,
63     kVulkanObjectTypeDescriptorPool = 23,
64     kVulkanObjectTypeFramebuffer = 24,
65     kVulkanObjectTypeCommandPool = 25,
66     kVulkanObjectTypeSamplerYcbcrConversion = 26,
67     kVulkanObjectTypeDescriptorUpdateTemplate = 27,
68     kVulkanObjectTypePrivateDataSlot = 28,
69     kVulkanObjectTypeSurfaceKHR = 29,
70     kVulkanObjectTypeSwapchainKHR = 30,
71     kVulkanObjectTypeDisplayKHR = 31,
72     kVulkanObjectTypeDisplayModeKHR = 32,
73     kVulkanObjectTypeVideoSessionKHR = 33,
74     kVulkanObjectTypeVideoSessionParametersKHR = 34,
75     kVulkanObjectTypeDeferredOperationKHR = 35,
76     kVulkanObjectTypePipelineBinaryKHR = 36,
77     kVulkanObjectTypeDebugReportCallbackEXT = 37,
78     kVulkanObjectTypeCuModuleNVX = 38,
79     kVulkanObjectTypeCuFunctionNVX = 39,
80     kVulkanObjectTypeDebugUtilsMessengerEXT = 40,
81     kVulkanObjectTypeValidationCacheEXT = 41,
82     kVulkanObjectTypeAccelerationStructureNV = 42,
83     kVulkanObjectTypePerformanceConfigurationINTEL = 43,
84     kVulkanObjectTypeIndirectCommandsLayoutNV = 44,
85     kVulkanObjectTypeCudaModuleNV = 45,
86     kVulkanObjectTypeCudaFunctionNV = 46,
87     kVulkanObjectTypeAccelerationStructureKHR = 47,
88     kVulkanObjectTypeBufferCollectionFUCHSIA = 48,
89     kVulkanObjectTypeMicromapEXT = 49,
90     kVulkanObjectTypeOpticalFlowSessionNV = 50,
91     kVulkanObjectTypeShaderEXT = 51,
92     kVulkanObjectTypeIndirectExecutionSetEXT = 52,
93     kVulkanObjectTypeIndirectCommandsLayoutEXT = 53,
94     kVulkanObjectTypeMax = 54,
95     // Aliases for backwards compatibilty of "promoted" types
96     kVulkanObjectTypeDescriptorUpdateTemplateKHR = kVulkanObjectTypeDescriptorUpdateTemplate,
97     kVulkanObjectTypeSamplerYcbcrConversionKHR = kVulkanObjectTypeSamplerYcbcrConversion,
98     kVulkanObjectTypePrivateDataSlotEXT = kVulkanObjectTypePrivateDataSlot,
99 } VulkanObjectType;
100 
101 // Array of object name strings for OBJECT_TYPE enum conversion
102 static const char * const object_string[kVulkanObjectTypeMax] = {
103     "Unknown",
104     "Buffer",
105     "Image",
106     "Instance",
107     "PhysicalDevice",
108     "Device",
109     "Queue",
110     "Semaphore",
111     "CommandBuffer",
112     "Fence",
113     "DeviceMemory",
114     "Event",
115     "QueryPool",
116     "BufferView",
117     "ImageView",
118     "ShaderModule",
119     "PipelineCache",
120     "PipelineLayout",
121     "Pipeline",
122     "RenderPass",
123     "DescriptorSetLayout",
124     "Sampler",
125     "DescriptorSet",
126     "DescriptorPool",
127     "Framebuffer",
128     "CommandPool",
129     "SamplerYcbcrConversion",
130     "DescriptorUpdateTemplate",
131     "PrivateDataSlot",
132     "SurfaceKHR",
133     "SwapchainKHR",
134     "DisplayKHR",
135     "DisplayModeKHR",
136     "VideoSessionKHR",
137     "VideoSessionParametersKHR",
138     "DeferredOperationKHR",
139     "PipelineBinaryKHR",
140     "DebugReportCallbackEXT",
141     "CuModuleNVX",
142     "CuFunctionNVX",
143     "DebugUtilsMessengerEXT",
144     "ValidationCacheEXT",
145     "AccelerationStructureNV",
146     "PerformanceConfigurationINTEL",
147     "IndirectCommandsLayoutNV",
148     "CudaModuleNV",
149     "CudaFunctionNV",
150     "AccelerationStructureKHR",
151     "BufferCollectionFUCHSIA",
152     "MicromapEXT",
153     "OpticalFlowSessionNV",
154     "ShaderEXT",
155     "IndirectExecutionSetEXT",
156     "IndirectCommandsLayoutEXT",
157 };
158 
159 // Helper array to get Vulkan VK_EXT_debug_report object type enum from the internal layers version
160 const VkDebugReportObjectTypeEXT get_debug_report_enum[] = {
161     VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, // kVulkanObjectTypeUnknown
162     VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT,   // kVulkanObjectTypeBuffer
163     VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT,   // kVulkanObjectTypeImage
164     VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT,   // kVulkanObjectTypeInstance
165     VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT,   // kVulkanObjectTypePhysicalDevice
166     VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT,   // kVulkanObjectTypeDevice
167     VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT,   // kVulkanObjectTypeQueue
168     VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT,   // kVulkanObjectTypeSemaphore
169     VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT,   // kVulkanObjectTypeCommandBuffer
170     VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT,   // kVulkanObjectTypeFence
171     VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT,   // kVulkanObjectTypeDeviceMemory
172     VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT,   // kVulkanObjectTypeEvent
173     VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT,   // kVulkanObjectTypeQueryPool
174     VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT,   // kVulkanObjectTypeBufferView
175     VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT,   // kVulkanObjectTypeImageView
176     VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT,   // kVulkanObjectTypeShaderModule
177     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT,   // kVulkanObjectTypePipelineCache
178     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT,   // kVulkanObjectTypePipelineLayout
179     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT,   // kVulkanObjectTypePipeline
180     VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT,   // kVulkanObjectTypeRenderPass
181     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT,   // kVulkanObjectTypeDescriptorSetLayout
182     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT,   // kVulkanObjectTypeSampler
183     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT,   // kVulkanObjectTypeDescriptorSet
184     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT,   // kVulkanObjectTypeDescriptorPool
185     VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT,   // kVulkanObjectTypeFramebuffer
186     VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT,   // kVulkanObjectTypeCommandPool
187     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,   // kVulkanObjectTypeSamplerYcbcrConversion
188     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT,   // kVulkanObjectTypeDescriptorUpdateTemplate
189     VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,   // kVulkanObjectTypePrivateDataSlot
190     VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT,   // kVulkanObjectTypeSurfaceKHR
191     VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT,   // kVulkanObjectTypeSwapchainKHR
192     VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT,   // kVulkanObjectTypeDisplayKHR
193     VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT,   // kVulkanObjectTypeDisplayModeKHR
194     VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,   // kVulkanObjectTypeVideoSessionKHR
195     VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,   // kVulkanObjectTypeVideoSessionParametersKHR
196     VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,   // kVulkanObjectTypeDeferredOperationKHR
197     VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,   // kVulkanObjectTypePipelineBinaryKHR
198     VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,   // kVulkanObjectTypeDebugReportCallbackEXT
199     VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT,   // kVulkanObjectTypeCuModuleNVX
200     VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT,   // kVulkanObjectTypeCuFunctionNVX
201     VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,   // kVulkanObjectTypeDebugUtilsMessengerEXT
202     VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,   // kVulkanObjectTypeValidationCacheEXT
203     VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT,   // kVulkanObjectTypeAccelerationStructureNV
204     VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,   // kVulkanObjectTypePerformanceConfigurationINTEL
205     VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,   // kVulkanObjectTypeIndirectCommandsLayoutNV
206     VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV_EXT,   // kVulkanObjectTypeCudaModuleNV
207     VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV_EXT,   // kVulkanObjectTypeCudaFunctionNV
208     VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT,   // kVulkanObjectTypeAccelerationStructureKHR
209     VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT,   // kVulkanObjectTypeBufferCollectionFUCHSIA
210     VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,   // kVulkanObjectTypeMicromapEXT
211     VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,   // kVulkanObjectTypeOpticalFlowSessionNV
212     VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,   // kVulkanObjectTypeShaderEXT
213     VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,   // kVulkanObjectTypeIndirectExecutionSetEXT
214     VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,   // kVulkanObjectTypeIndirectCommandsLayoutEXT
215 };
216 
217 // Helper array to get Official Vulkan VkObjectType enum from the internal layers version
218 const VkObjectType get_object_type_enum[] = {
219     VK_OBJECT_TYPE_UNKNOWN, // kVulkanObjectTypeUnknown
220     VK_OBJECT_TYPE_BUFFER,   // kVulkanObjectTypeBuffer
221     VK_OBJECT_TYPE_IMAGE,   // kVulkanObjectTypeImage
222     VK_OBJECT_TYPE_INSTANCE,   // kVulkanObjectTypeInstance
223     VK_OBJECT_TYPE_PHYSICAL_DEVICE,   // kVulkanObjectTypePhysicalDevice
224     VK_OBJECT_TYPE_DEVICE,   // kVulkanObjectTypeDevice
225     VK_OBJECT_TYPE_QUEUE,   // kVulkanObjectTypeQueue
226     VK_OBJECT_TYPE_SEMAPHORE,   // kVulkanObjectTypeSemaphore
227     VK_OBJECT_TYPE_COMMAND_BUFFER,   // kVulkanObjectTypeCommandBuffer
228     VK_OBJECT_TYPE_FENCE,   // kVulkanObjectTypeFence
229     VK_OBJECT_TYPE_DEVICE_MEMORY,   // kVulkanObjectTypeDeviceMemory
230     VK_OBJECT_TYPE_EVENT,   // kVulkanObjectTypeEvent
231     VK_OBJECT_TYPE_QUERY_POOL,   // kVulkanObjectTypeQueryPool
232     VK_OBJECT_TYPE_BUFFER_VIEW,   // kVulkanObjectTypeBufferView
233     VK_OBJECT_TYPE_IMAGE_VIEW,   // kVulkanObjectTypeImageView
234     VK_OBJECT_TYPE_SHADER_MODULE,   // kVulkanObjectTypeShaderModule
235     VK_OBJECT_TYPE_PIPELINE_CACHE,   // kVulkanObjectTypePipelineCache
236     VK_OBJECT_TYPE_PIPELINE_LAYOUT,   // kVulkanObjectTypePipelineLayout
237     VK_OBJECT_TYPE_PIPELINE,   // kVulkanObjectTypePipeline
238     VK_OBJECT_TYPE_RENDER_PASS,   // kVulkanObjectTypeRenderPass
239     VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT,   // kVulkanObjectTypeDescriptorSetLayout
240     VK_OBJECT_TYPE_SAMPLER,   // kVulkanObjectTypeSampler
241     VK_OBJECT_TYPE_DESCRIPTOR_SET,   // kVulkanObjectTypeDescriptorSet
242     VK_OBJECT_TYPE_DESCRIPTOR_POOL,   // kVulkanObjectTypeDescriptorPool
243     VK_OBJECT_TYPE_FRAMEBUFFER,   // kVulkanObjectTypeFramebuffer
244     VK_OBJECT_TYPE_COMMAND_POOL,   // kVulkanObjectTypeCommandPool
245     VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,   // kVulkanObjectTypeSamplerYcbcrConversion
246     VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,   // kVulkanObjectTypeDescriptorUpdateTemplate
247     VK_OBJECT_TYPE_PRIVATE_DATA_SLOT,   // kVulkanObjectTypePrivateDataSlot
248     VK_OBJECT_TYPE_SURFACE_KHR,   // kVulkanObjectTypeSurfaceKHR
249     VK_OBJECT_TYPE_SWAPCHAIN_KHR,   // kVulkanObjectTypeSwapchainKHR
250     VK_OBJECT_TYPE_DISPLAY_KHR,   // kVulkanObjectTypeDisplayKHR
251     VK_OBJECT_TYPE_DISPLAY_MODE_KHR,   // kVulkanObjectTypeDisplayModeKHR
252     VK_OBJECT_TYPE_VIDEO_SESSION_KHR,   // kVulkanObjectTypeVideoSessionKHR
253     VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR,   // kVulkanObjectTypeVideoSessionParametersKHR
254     VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR,   // kVulkanObjectTypeDeferredOperationKHR
255     VK_OBJECT_TYPE_PIPELINE_BINARY_KHR,   // kVulkanObjectTypePipelineBinaryKHR
256     VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT,   // kVulkanObjectTypeDebugReportCallbackEXT
257     VK_OBJECT_TYPE_CU_MODULE_NVX,   // kVulkanObjectTypeCuModuleNVX
258     VK_OBJECT_TYPE_CU_FUNCTION_NVX,   // kVulkanObjectTypeCuFunctionNVX
259     VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT,   // kVulkanObjectTypeDebugUtilsMessengerEXT
260     VK_OBJECT_TYPE_VALIDATION_CACHE_EXT,   // kVulkanObjectTypeValidationCacheEXT
261     VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV,   // kVulkanObjectTypeAccelerationStructureNV
262     VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL,   // kVulkanObjectTypePerformanceConfigurationINTEL
263     VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV,   // kVulkanObjectTypeIndirectCommandsLayoutNV
264     VK_OBJECT_TYPE_CUDA_MODULE_NV,   // kVulkanObjectTypeCudaModuleNV
265     VK_OBJECT_TYPE_CUDA_FUNCTION_NV,   // kVulkanObjectTypeCudaFunctionNV
266     VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR,   // kVulkanObjectTypeAccelerationStructureKHR
267     VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA,   // kVulkanObjectTypeBufferCollectionFUCHSIA
268     VK_OBJECT_TYPE_MICROMAP_EXT,   // kVulkanObjectTypeMicromapEXT
269     VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV,   // kVulkanObjectTypeOpticalFlowSessionNV
270     VK_OBJECT_TYPE_SHADER_EXT,   // kVulkanObjectTypeShaderEXT
271     VK_OBJECT_TYPE_INDIRECT_EXECUTION_SET_EXT,   // kVulkanObjectTypeIndirectExecutionSetEXT
272     VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_EXT,   // kVulkanObjectTypeIndirectCommandsLayoutEXT
273 };
274 
275 // Helper function to convert from VkDebugReportObjectTypeEXT to VkObjectType
convertDebugReportObjectToCoreObject(VkDebugReportObjectTypeEXT debug_report_obj)276 static inline VkObjectType convertDebugReportObjectToCoreObject(VkDebugReportObjectTypeEXT debug_report_obj){
277     if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT) {
278         return VK_OBJECT_TYPE_UNKNOWN;
279     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT) {
280         return VK_OBJECT_TYPE_UNKNOWN;
281     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT) {
282         return VK_OBJECT_TYPE_INSTANCE;
283     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT) {
284         return VK_OBJECT_TYPE_PHYSICAL_DEVICE;
285     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT) {
286         return VK_OBJECT_TYPE_DEVICE;
287     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT) {
288         return VK_OBJECT_TYPE_QUEUE;
289     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT) {
290         return VK_OBJECT_TYPE_SEMAPHORE;
291     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT) {
292         return VK_OBJECT_TYPE_COMMAND_BUFFER;
293     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT) {
294         return VK_OBJECT_TYPE_FENCE;
295     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT) {
296         return VK_OBJECT_TYPE_DEVICE_MEMORY;
297     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT) {
298         return VK_OBJECT_TYPE_BUFFER;
299     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT) {
300         return VK_OBJECT_TYPE_IMAGE;
301     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT) {
302         return VK_OBJECT_TYPE_EVENT;
303     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT) {
304         return VK_OBJECT_TYPE_QUERY_POOL;
305     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT) {
306         return VK_OBJECT_TYPE_BUFFER_VIEW;
307     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT) {
308         return VK_OBJECT_TYPE_IMAGE_VIEW;
309     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT) {
310         return VK_OBJECT_TYPE_SHADER_MODULE;
311     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT) {
312         return VK_OBJECT_TYPE_PIPELINE_CACHE;
313     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT) {
314         return VK_OBJECT_TYPE_PIPELINE_LAYOUT;
315     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT) {
316         return VK_OBJECT_TYPE_RENDER_PASS;
317     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT) {
318         return VK_OBJECT_TYPE_PIPELINE;
319     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT) {
320         return VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT;
321     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT) {
322         return VK_OBJECT_TYPE_SAMPLER;
323     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT) {
324         return VK_OBJECT_TYPE_DESCRIPTOR_POOL;
325     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT) {
326         return VK_OBJECT_TYPE_DESCRIPTOR_SET;
327     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT) {
328         return VK_OBJECT_TYPE_FRAMEBUFFER;
329     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT) {
330         return VK_OBJECT_TYPE_COMMAND_POOL;
331     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT) {
332         return VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION;
333     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT) {
334         return VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE;
335     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT) {
336         return VK_OBJECT_TYPE_SURFACE_KHR;
337     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT) {
338         return VK_OBJECT_TYPE_SWAPCHAIN_KHR;
339     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT) {
340         return VK_OBJECT_TYPE_DISPLAY_KHR;
341     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT) {
342         return VK_OBJECT_TYPE_DISPLAY_MODE_KHR;
343     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT) {
344         return VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT;
345     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT) {
346         return VK_OBJECT_TYPE_CU_MODULE_NVX;
347     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT) {
348         return VK_OBJECT_TYPE_CU_FUNCTION_NVX;
349     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT) {
350         return VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR;
351     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT) {
352         return VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR;
353     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT) {
354         return VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR;
355     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT) {
356         return VK_OBJECT_TYPE_VALIDATION_CACHE_EXT;
357     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT) {
358         return VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV;
359     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV_EXT) {
360         return VK_OBJECT_TYPE_CUDA_MODULE_NV;
361     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV_EXT) {
362         return VK_OBJECT_TYPE_CUDA_FUNCTION_NV;
363     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT) {
364         return VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA;
365     }
366     return VK_OBJECT_TYPE_UNKNOWN;
367 }
368 
369 // Helper function to convert from VkDebugReportObjectTypeEXT to VkObjectType
convertCoreObjectToDebugReportObject(VkObjectType core_report_obj)370 static inline VkDebugReportObjectTypeEXT convertCoreObjectToDebugReportObject(VkObjectType core_report_obj){
371     if (core_report_obj == VK_OBJECT_TYPE_UNKNOWN) {
372         return VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT;
373     } else if (core_report_obj == VK_OBJECT_TYPE_UNKNOWN) {
374         return VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT;
375     } else if (core_report_obj == VK_OBJECT_TYPE_INSTANCE) {
376         return VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT;
377     } else if (core_report_obj == VK_OBJECT_TYPE_PHYSICAL_DEVICE) {
378         return VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT;
379     } else if (core_report_obj == VK_OBJECT_TYPE_DEVICE) {
380         return VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT;
381     } else if (core_report_obj == VK_OBJECT_TYPE_QUEUE) {
382         return VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT;
383     } else if (core_report_obj == VK_OBJECT_TYPE_SEMAPHORE) {
384         return VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT;
385     } else if (core_report_obj == VK_OBJECT_TYPE_COMMAND_BUFFER) {
386         return VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT;
387     } else if (core_report_obj == VK_OBJECT_TYPE_FENCE) {
388         return VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT;
389     } else if (core_report_obj == VK_OBJECT_TYPE_DEVICE_MEMORY) {
390         return VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT;
391     } else if (core_report_obj == VK_OBJECT_TYPE_BUFFER) {
392         return VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT;
393     } else if (core_report_obj == VK_OBJECT_TYPE_IMAGE) {
394         return VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT;
395     } else if (core_report_obj == VK_OBJECT_TYPE_EVENT) {
396         return VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT;
397     } else if (core_report_obj == VK_OBJECT_TYPE_QUERY_POOL) {
398         return VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT;
399     } else if (core_report_obj == VK_OBJECT_TYPE_BUFFER_VIEW) {
400         return VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT;
401     } else if (core_report_obj == VK_OBJECT_TYPE_IMAGE_VIEW) {
402         return VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT;
403     } else if (core_report_obj == VK_OBJECT_TYPE_SHADER_MODULE) {
404         return VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT;
405     } else if (core_report_obj == VK_OBJECT_TYPE_PIPELINE_CACHE) {
406         return VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT;
407     } else if (core_report_obj == VK_OBJECT_TYPE_PIPELINE_LAYOUT) {
408         return VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT;
409     } else if (core_report_obj == VK_OBJECT_TYPE_RENDER_PASS) {
410         return VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT;
411     } else if (core_report_obj == VK_OBJECT_TYPE_PIPELINE) {
412         return VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT;
413     } else if (core_report_obj == VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT) {
414         return VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT;
415     } else if (core_report_obj == VK_OBJECT_TYPE_SAMPLER) {
416         return VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT;
417     } else if (core_report_obj == VK_OBJECT_TYPE_DESCRIPTOR_POOL) {
418         return VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT;
419     } else if (core_report_obj == VK_OBJECT_TYPE_DESCRIPTOR_SET) {
420         return VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT;
421     } else if (core_report_obj == VK_OBJECT_TYPE_FRAMEBUFFER) {
422         return VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT;
423     } else if (core_report_obj == VK_OBJECT_TYPE_COMMAND_POOL) {
424         return VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT;
425     } else if (core_report_obj == VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION) {
426         return VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT;
427     } else if (core_report_obj == VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE) {
428         return VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT;
429     } else if (core_report_obj == VK_OBJECT_TYPE_SURFACE_KHR) {
430         return VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT;
431     } else if (core_report_obj == VK_OBJECT_TYPE_SWAPCHAIN_KHR) {
432         return VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT;
433     } else if (core_report_obj == VK_OBJECT_TYPE_DISPLAY_KHR) {
434         return VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT;
435     } else if (core_report_obj == VK_OBJECT_TYPE_DISPLAY_MODE_KHR) {
436         return VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT;
437     } else if (core_report_obj == VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT) {
438         return VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT;
439     } else if (core_report_obj == VK_OBJECT_TYPE_CU_MODULE_NVX) {
440         return VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT;
441     } else if (core_report_obj == VK_OBJECT_TYPE_CU_FUNCTION_NVX) {
442         return VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT;
443     } else if (core_report_obj == VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR) {
444         return VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT;
445     } else if (core_report_obj == VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR) {
446         return VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT;
447     } else if (core_report_obj == VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR) {
448         return VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT;
449     } else if (core_report_obj == VK_OBJECT_TYPE_VALIDATION_CACHE_EXT) {
450         return VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT;
451     } else if (core_report_obj == VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV) {
452         return VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT;
453     } else if (core_report_obj == VK_OBJECT_TYPE_CUDA_MODULE_NV) {
454         return VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV_EXT;
455     } else if (core_report_obj == VK_OBJECT_TYPE_CUDA_FUNCTION_NV) {
456         return VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV_EXT;
457     } else if (core_report_obj == VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA) {
458         return VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT;
459     }
460     return VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT;
461 }
462 // clang-format on
463