• 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     kVulkanObjectTypeDebugReportCallbackEXT = 36,
77     kVulkanObjectTypeCuModuleNVX = 37,
78     kVulkanObjectTypeCuFunctionNVX = 38,
79     kVulkanObjectTypeDebugUtilsMessengerEXT = 39,
80     kVulkanObjectTypeValidationCacheEXT = 40,
81     kVulkanObjectTypeAccelerationStructureNV = 41,
82     kVulkanObjectTypePerformanceConfigurationINTEL = 42,
83     kVulkanObjectTypeIndirectCommandsLayoutNV = 43,
84     kVulkanObjectTypeCudaModuleNV = 44,
85     kVulkanObjectTypeCudaFunctionNV = 45,
86     kVulkanObjectTypeAccelerationStructureKHR = 46,
87     kVulkanObjectTypeBufferCollectionFUCHSIA = 47,
88     kVulkanObjectTypeMicromapEXT = 48,
89     kVulkanObjectTypeOpticalFlowSessionNV = 49,
90     kVulkanObjectTypeShaderEXT = 50,
91     kVulkanObjectTypeMax = 51,
92     // Aliases for backwards compatibilty of "promoted" types
93     kVulkanObjectTypeDescriptorUpdateTemplateKHR = kVulkanObjectTypeDescriptorUpdateTemplate,
94     kVulkanObjectTypeSamplerYcbcrConversionKHR = kVulkanObjectTypeSamplerYcbcrConversion,
95     kVulkanObjectTypePrivateDataSlotEXT = kVulkanObjectTypePrivateDataSlot,
96 } VulkanObjectType;
97 
98 // Array of object name strings for OBJECT_TYPE enum conversion
99 static const char * const object_string[kVulkanObjectTypeMax] = {
100     "Unknown",
101     "Buffer",
102     "Image",
103     "Instance",
104     "PhysicalDevice",
105     "Device",
106     "Queue",
107     "Semaphore",
108     "CommandBuffer",
109     "Fence",
110     "DeviceMemory",
111     "Event",
112     "QueryPool",
113     "BufferView",
114     "ImageView",
115     "ShaderModule",
116     "PipelineCache",
117     "PipelineLayout",
118     "Pipeline",
119     "RenderPass",
120     "DescriptorSetLayout",
121     "Sampler",
122     "DescriptorSet",
123     "DescriptorPool",
124     "Framebuffer",
125     "CommandPool",
126     "SamplerYcbcrConversion",
127     "DescriptorUpdateTemplate",
128     "PrivateDataSlot",
129     "SurfaceKHR",
130     "SwapchainKHR",
131     "DisplayKHR",
132     "DisplayModeKHR",
133     "VideoSessionKHR",
134     "VideoSessionParametersKHR",
135     "DeferredOperationKHR",
136     "DebugReportCallbackEXT",
137     "CuModuleNVX",
138     "CuFunctionNVX",
139     "DebugUtilsMessengerEXT",
140     "ValidationCacheEXT",
141     "AccelerationStructureNV",
142     "PerformanceConfigurationINTEL",
143     "IndirectCommandsLayoutNV",
144     "CudaModuleNV",
145     "CudaFunctionNV",
146     "AccelerationStructureKHR",
147     "BufferCollectionFUCHSIA",
148     "MicromapEXT",
149     "OpticalFlowSessionNV",
150     "ShaderEXT",
151 };
152 
153 // Helper array to get Vulkan VK_EXT_debug_report object type enum from the internal layers version
154 const VkDebugReportObjectTypeEXT get_debug_report_enum[] = {
155     VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, // kVulkanObjectTypeUnknown
156     VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT,   // kVulkanObjectTypeBuffer
157     VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT,   // kVulkanObjectTypeImage
158     VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT,   // kVulkanObjectTypeInstance
159     VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT,   // kVulkanObjectTypePhysicalDevice
160     VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT,   // kVulkanObjectTypeDevice
161     VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT,   // kVulkanObjectTypeQueue
162     VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT,   // kVulkanObjectTypeSemaphore
163     VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT,   // kVulkanObjectTypeCommandBuffer
164     VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT,   // kVulkanObjectTypeFence
165     VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT,   // kVulkanObjectTypeDeviceMemory
166     VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT,   // kVulkanObjectTypeEvent
167     VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT,   // kVulkanObjectTypeQueryPool
168     VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT,   // kVulkanObjectTypeBufferView
169     VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT,   // kVulkanObjectTypeImageView
170     VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT,   // kVulkanObjectTypeShaderModule
171     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT,   // kVulkanObjectTypePipelineCache
172     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT,   // kVulkanObjectTypePipelineLayout
173     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT,   // kVulkanObjectTypePipeline
174     VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT,   // kVulkanObjectTypeRenderPass
175     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT,   // kVulkanObjectTypeDescriptorSetLayout
176     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT,   // kVulkanObjectTypeSampler
177     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT,   // kVulkanObjectTypeDescriptorSet
178     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT,   // kVulkanObjectTypeDescriptorPool
179     VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT,   // kVulkanObjectTypeFramebuffer
180     VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT,   // kVulkanObjectTypeCommandPool
181     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,   // kVulkanObjectTypeSamplerYcbcrConversion
182     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT,   // kVulkanObjectTypeDescriptorUpdateTemplate
183     VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,   // kVulkanObjectTypePrivateDataSlot
184     VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT,   // kVulkanObjectTypeSurfaceKHR
185     VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT,   // kVulkanObjectTypeSwapchainKHR
186     VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT,   // kVulkanObjectTypeDisplayKHR
187     VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT,   // kVulkanObjectTypeDisplayModeKHR
188     VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,   // kVulkanObjectTypeVideoSessionKHR
189     VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,   // kVulkanObjectTypeVideoSessionParametersKHR
190     VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,   // kVulkanObjectTypeDeferredOperationKHR
191     VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,   // kVulkanObjectTypeDebugReportCallbackEXT
192     VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT,   // kVulkanObjectTypeCuModuleNVX
193     VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT,   // kVulkanObjectTypeCuFunctionNVX
194     VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,   // kVulkanObjectTypeDebugUtilsMessengerEXT
195     VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,   // kVulkanObjectTypeValidationCacheEXT
196     VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT,   // kVulkanObjectTypeAccelerationStructureNV
197     VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,   // kVulkanObjectTypePerformanceConfigurationINTEL
198     VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,   // kVulkanObjectTypeIndirectCommandsLayoutNV
199     VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV_EXT,   // kVulkanObjectTypeCudaModuleNV
200     VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV_EXT,   // kVulkanObjectTypeCudaFunctionNV
201     VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT,   // kVulkanObjectTypeAccelerationStructureKHR
202     VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT,   // kVulkanObjectTypeBufferCollectionFUCHSIA
203     VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,   // kVulkanObjectTypeMicromapEXT
204     VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,   // kVulkanObjectTypeOpticalFlowSessionNV
205     VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,   // kVulkanObjectTypeShaderEXT
206 };
207 
208 // Helper array to get Official Vulkan VkObjectType enum from the internal layers version
209 const VkObjectType get_object_type_enum[] = {
210     VK_OBJECT_TYPE_UNKNOWN, // kVulkanObjectTypeUnknown
211     VK_OBJECT_TYPE_BUFFER,   // kVulkanObjectTypeBuffer
212     VK_OBJECT_TYPE_IMAGE,   // kVulkanObjectTypeImage
213     VK_OBJECT_TYPE_INSTANCE,   // kVulkanObjectTypeInstance
214     VK_OBJECT_TYPE_PHYSICAL_DEVICE,   // kVulkanObjectTypePhysicalDevice
215     VK_OBJECT_TYPE_DEVICE,   // kVulkanObjectTypeDevice
216     VK_OBJECT_TYPE_QUEUE,   // kVulkanObjectTypeQueue
217     VK_OBJECT_TYPE_SEMAPHORE,   // kVulkanObjectTypeSemaphore
218     VK_OBJECT_TYPE_COMMAND_BUFFER,   // kVulkanObjectTypeCommandBuffer
219     VK_OBJECT_TYPE_FENCE,   // kVulkanObjectTypeFence
220     VK_OBJECT_TYPE_DEVICE_MEMORY,   // kVulkanObjectTypeDeviceMemory
221     VK_OBJECT_TYPE_EVENT,   // kVulkanObjectTypeEvent
222     VK_OBJECT_TYPE_QUERY_POOL,   // kVulkanObjectTypeQueryPool
223     VK_OBJECT_TYPE_BUFFER_VIEW,   // kVulkanObjectTypeBufferView
224     VK_OBJECT_TYPE_IMAGE_VIEW,   // kVulkanObjectTypeImageView
225     VK_OBJECT_TYPE_SHADER_MODULE,   // kVulkanObjectTypeShaderModule
226     VK_OBJECT_TYPE_PIPELINE_CACHE,   // kVulkanObjectTypePipelineCache
227     VK_OBJECT_TYPE_PIPELINE_LAYOUT,   // kVulkanObjectTypePipelineLayout
228     VK_OBJECT_TYPE_PIPELINE,   // kVulkanObjectTypePipeline
229     VK_OBJECT_TYPE_RENDER_PASS,   // kVulkanObjectTypeRenderPass
230     VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT,   // kVulkanObjectTypeDescriptorSetLayout
231     VK_OBJECT_TYPE_SAMPLER,   // kVulkanObjectTypeSampler
232     VK_OBJECT_TYPE_DESCRIPTOR_SET,   // kVulkanObjectTypeDescriptorSet
233     VK_OBJECT_TYPE_DESCRIPTOR_POOL,   // kVulkanObjectTypeDescriptorPool
234     VK_OBJECT_TYPE_FRAMEBUFFER,   // kVulkanObjectTypeFramebuffer
235     VK_OBJECT_TYPE_COMMAND_POOL,   // kVulkanObjectTypeCommandPool
236     VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,   // kVulkanObjectTypeSamplerYcbcrConversion
237     VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,   // kVulkanObjectTypeDescriptorUpdateTemplate
238     VK_OBJECT_TYPE_PRIVATE_DATA_SLOT,   // kVulkanObjectTypePrivateDataSlot
239     VK_OBJECT_TYPE_SURFACE_KHR,   // kVulkanObjectTypeSurfaceKHR
240     VK_OBJECT_TYPE_SWAPCHAIN_KHR,   // kVulkanObjectTypeSwapchainKHR
241     VK_OBJECT_TYPE_DISPLAY_KHR,   // kVulkanObjectTypeDisplayKHR
242     VK_OBJECT_TYPE_DISPLAY_MODE_KHR,   // kVulkanObjectTypeDisplayModeKHR
243     VK_OBJECT_TYPE_VIDEO_SESSION_KHR,   // kVulkanObjectTypeVideoSessionKHR
244     VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR,   // kVulkanObjectTypeVideoSessionParametersKHR
245     VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR,   // kVulkanObjectTypeDeferredOperationKHR
246     VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT,   // kVulkanObjectTypeDebugReportCallbackEXT
247     VK_OBJECT_TYPE_CU_MODULE_NVX,   // kVulkanObjectTypeCuModuleNVX
248     VK_OBJECT_TYPE_CU_FUNCTION_NVX,   // kVulkanObjectTypeCuFunctionNVX
249     VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT,   // kVulkanObjectTypeDebugUtilsMessengerEXT
250     VK_OBJECT_TYPE_VALIDATION_CACHE_EXT,   // kVulkanObjectTypeValidationCacheEXT
251     VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV,   // kVulkanObjectTypeAccelerationStructureNV
252     VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL,   // kVulkanObjectTypePerformanceConfigurationINTEL
253     VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV,   // kVulkanObjectTypeIndirectCommandsLayoutNV
254     VK_OBJECT_TYPE_CUDA_MODULE_NV,   // kVulkanObjectTypeCudaModuleNV
255     VK_OBJECT_TYPE_CUDA_FUNCTION_NV,   // kVulkanObjectTypeCudaFunctionNV
256     VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR,   // kVulkanObjectTypeAccelerationStructureKHR
257     VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA,   // kVulkanObjectTypeBufferCollectionFUCHSIA
258     VK_OBJECT_TYPE_MICROMAP_EXT,   // kVulkanObjectTypeMicromapEXT
259     VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV,   // kVulkanObjectTypeOpticalFlowSessionNV
260     VK_OBJECT_TYPE_SHADER_EXT,   // kVulkanObjectTypeShaderEXT
261 };
262 
263 // Helper function to convert from VkDebugReportObjectTypeEXT to VkObjectType
convertDebugReportObjectToCoreObject(VkDebugReportObjectTypeEXT debug_report_obj)264 static inline VkObjectType convertDebugReportObjectToCoreObject(VkDebugReportObjectTypeEXT debug_report_obj){
265     if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT) {
266         return VK_OBJECT_TYPE_UNKNOWN;
267     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT) {
268         return VK_OBJECT_TYPE_UNKNOWN;
269     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT) {
270         return VK_OBJECT_TYPE_INSTANCE;
271     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT) {
272         return VK_OBJECT_TYPE_PHYSICAL_DEVICE;
273     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT) {
274         return VK_OBJECT_TYPE_DEVICE;
275     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT) {
276         return VK_OBJECT_TYPE_QUEUE;
277     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT) {
278         return VK_OBJECT_TYPE_SEMAPHORE;
279     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT) {
280         return VK_OBJECT_TYPE_COMMAND_BUFFER;
281     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT) {
282         return VK_OBJECT_TYPE_FENCE;
283     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT) {
284         return VK_OBJECT_TYPE_DEVICE_MEMORY;
285     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT) {
286         return VK_OBJECT_TYPE_BUFFER;
287     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT) {
288         return VK_OBJECT_TYPE_IMAGE;
289     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT) {
290         return VK_OBJECT_TYPE_EVENT;
291     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT) {
292         return VK_OBJECT_TYPE_QUERY_POOL;
293     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT) {
294         return VK_OBJECT_TYPE_BUFFER_VIEW;
295     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT) {
296         return VK_OBJECT_TYPE_IMAGE_VIEW;
297     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT) {
298         return VK_OBJECT_TYPE_SHADER_MODULE;
299     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT) {
300         return VK_OBJECT_TYPE_PIPELINE_CACHE;
301     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT) {
302         return VK_OBJECT_TYPE_PIPELINE_LAYOUT;
303     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT) {
304         return VK_OBJECT_TYPE_RENDER_PASS;
305     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT) {
306         return VK_OBJECT_TYPE_PIPELINE;
307     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT) {
308         return VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT;
309     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT) {
310         return VK_OBJECT_TYPE_SAMPLER;
311     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT) {
312         return VK_OBJECT_TYPE_DESCRIPTOR_POOL;
313     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT) {
314         return VK_OBJECT_TYPE_DESCRIPTOR_SET;
315     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT) {
316         return VK_OBJECT_TYPE_FRAMEBUFFER;
317     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT) {
318         return VK_OBJECT_TYPE_COMMAND_POOL;
319     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT) {
320         return VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION;
321     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT) {
322         return VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE;
323     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT) {
324         return VK_OBJECT_TYPE_SURFACE_KHR;
325     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT) {
326         return VK_OBJECT_TYPE_SWAPCHAIN_KHR;
327     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT) {
328         return VK_OBJECT_TYPE_DISPLAY_KHR;
329     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT) {
330         return VK_OBJECT_TYPE_DISPLAY_MODE_KHR;
331     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT) {
332         return VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT;
333     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT) {
334         return VK_OBJECT_TYPE_CU_MODULE_NVX;
335     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT) {
336         return VK_OBJECT_TYPE_CU_FUNCTION_NVX;
337     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT) {
338         return VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR;
339     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT) {
340         return VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR;
341     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT) {
342         return VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR;
343     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT) {
344         return VK_OBJECT_TYPE_VALIDATION_CACHE_EXT;
345     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT) {
346         return VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV;
347     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV_EXT) {
348         return VK_OBJECT_TYPE_CUDA_MODULE_NV;
349     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV_EXT) {
350         return VK_OBJECT_TYPE_CUDA_FUNCTION_NV;
351     } else if (debug_report_obj == VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT) {
352         return VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA;
353     }
354     return VK_OBJECT_TYPE_UNKNOWN;
355 }
356 
357 // Helper function to convert from VkDebugReportObjectTypeEXT to VkObjectType
convertCoreObjectToDebugReportObject(VkObjectType core_report_obj)358 static inline VkDebugReportObjectTypeEXT convertCoreObjectToDebugReportObject(VkObjectType core_report_obj){
359     if (core_report_obj == VK_OBJECT_TYPE_UNKNOWN) {
360         return VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT;
361     } else if (core_report_obj == VK_OBJECT_TYPE_UNKNOWN) {
362         return VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT;
363     } else if (core_report_obj == VK_OBJECT_TYPE_INSTANCE) {
364         return VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT;
365     } else if (core_report_obj == VK_OBJECT_TYPE_PHYSICAL_DEVICE) {
366         return VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT;
367     } else if (core_report_obj == VK_OBJECT_TYPE_DEVICE) {
368         return VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT;
369     } else if (core_report_obj == VK_OBJECT_TYPE_QUEUE) {
370         return VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT;
371     } else if (core_report_obj == VK_OBJECT_TYPE_SEMAPHORE) {
372         return VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT;
373     } else if (core_report_obj == VK_OBJECT_TYPE_COMMAND_BUFFER) {
374         return VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT;
375     } else if (core_report_obj == VK_OBJECT_TYPE_FENCE) {
376         return VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT;
377     } else if (core_report_obj == VK_OBJECT_TYPE_DEVICE_MEMORY) {
378         return VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT;
379     } else if (core_report_obj == VK_OBJECT_TYPE_BUFFER) {
380         return VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT;
381     } else if (core_report_obj == VK_OBJECT_TYPE_IMAGE) {
382         return VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT;
383     } else if (core_report_obj == VK_OBJECT_TYPE_EVENT) {
384         return VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT;
385     } else if (core_report_obj == VK_OBJECT_TYPE_QUERY_POOL) {
386         return VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT;
387     } else if (core_report_obj == VK_OBJECT_TYPE_BUFFER_VIEW) {
388         return VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT;
389     } else if (core_report_obj == VK_OBJECT_TYPE_IMAGE_VIEW) {
390         return VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT;
391     } else if (core_report_obj == VK_OBJECT_TYPE_SHADER_MODULE) {
392         return VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT;
393     } else if (core_report_obj == VK_OBJECT_TYPE_PIPELINE_CACHE) {
394         return VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT;
395     } else if (core_report_obj == VK_OBJECT_TYPE_PIPELINE_LAYOUT) {
396         return VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT;
397     } else if (core_report_obj == VK_OBJECT_TYPE_RENDER_PASS) {
398         return VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT;
399     } else if (core_report_obj == VK_OBJECT_TYPE_PIPELINE) {
400         return VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT;
401     } else if (core_report_obj == VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT) {
402         return VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT;
403     } else if (core_report_obj == VK_OBJECT_TYPE_SAMPLER) {
404         return VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT;
405     } else if (core_report_obj == VK_OBJECT_TYPE_DESCRIPTOR_POOL) {
406         return VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT;
407     } else if (core_report_obj == VK_OBJECT_TYPE_DESCRIPTOR_SET) {
408         return VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT;
409     } else if (core_report_obj == VK_OBJECT_TYPE_FRAMEBUFFER) {
410         return VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT;
411     } else if (core_report_obj == VK_OBJECT_TYPE_COMMAND_POOL) {
412         return VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT;
413     } else if (core_report_obj == VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION) {
414         return VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT;
415     } else if (core_report_obj == VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE) {
416         return VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT;
417     } else if (core_report_obj == VK_OBJECT_TYPE_SURFACE_KHR) {
418         return VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT;
419     } else if (core_report_obj == VK_OBJECT_TYPE_SWAPCHAIN_KHR) {
420         return VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT;
421     } else if (core_report_obj == VK_OBJECT_TYPE_DISPLAY_KHR) {
422         return VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT;
423     } else if (core_report_obj == VK_OBJECT_TYPE_DISPLAY_MODE_KHR) {
424         return VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT;
425     } else if (core_report_obj == VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT) {
426         return VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT;
427     } else if (core_report_obj == VK_OBJECT_TYPE_CU_MODULE_NVX) {
428         return VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT;
429     } else if (core_report_obj == VK_OBJECT_TYPE_CU_FUNCTION_NVX) {
430         return VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT;
431     } else if (core_report_obj == VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR) {
432         return VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT;
433     } else if (core_report_obj == VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR) {
434         return VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT;
435     } else if (core_report_obj == VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR) {
436         return VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT;
437     } else if (core_report_obj == VK_OBJECT_TYPE_VALIDATION_CACHE_EXT) {
438         return VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT;
439     } else if (core_report_obj == VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV) {
440         return VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT;
441     } else if (core_report_obj == VK_OBJECT_TYPE_CUDA_MODULE_NV) {
442         return VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV_EXT;
443     } else if (core_report_obj == VK_OBJECT_TYPE_CUDA_FUNCTION_NV) {
444         return VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV_EXT;
445     } else if (core_report_obj == VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA) {
446         return VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT;
447     }
448     return VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT;
449 }
450 // clang-format on
451