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