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