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