xref: /aosp_15_r20/external/vulkan-validation-layers/layers/vk_loader_layer.h (revision b7893ccf7851cd6a48cc5a1e965257d8a5cdcc70)
1*b7893ccfSSadaf Ebrahimi /*
2*b7893ccfSSadaf Ebrahimi  *
3*b7893ccfSSadaf Ebrahimi  * Copyright (c) 2016-2018 The Khronos Group Inc.
4*b7893ccfSSadaf Ebrahimi  * Copyright (c) 2016-2018 Valve Corporation
5*b7893ccfSSadaf Ebrahimi  * Copyright (c) 2016-2018 LunarG, Inc.
6*b7893ccfSSadaf Ebrahimi  *
7*b7893ccfSSadaf Ebrahimi  * Licensed under the Apache License, Version 2.0 (the "License");
8*b7893ccfSSadaf Ebrahimi  * you may not use this file except in compliance with the License.
9*b7893ccfSSadaf Ebrahimi  * You may obtain a copy of the License at
10*b7893ccfSSadaf Ebrahimi  *
11*b7893ccfSSadaf Ebrahimi  *     http://www.apache.org/licenses/LICENSE-2.0
12*b7893ccfSSadaf Ebrahimi  *
13*b7893ccfSSadaf Ebrahimi  * Unless required by applicable law or agreed to in writing, software
14*b7893ccfSSadaf Ebrahimi  * distributed under the License is distributed on an "AS IS" BASIS,
15*b7893ccfSSadaf Ebrahimi  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16*b7893ccfSSadaf Ebrahimi  * See the License for the specific language governing permissions and
17*b7893ccfSSadaf Ebrahimi  * limitations under the License.
18*b7893ccfSSadaf Ebrahimi  *
19*b7893ccfSSadaf Ebrahimi  * Author: Mark Lobodzinski <[email protected]>
20*b7893ccfSSadaf Ebrahimi  *
21*b7893ccfSSadaf Ebrahimi  */
22*b7893ccfSSadaf Ebrahimi #pragma once
23*b7893ccfSSadaf Ebrahimi 
24*b7893ccfSSadaf Ebrahimi // Linked list node for tree of debug callbacks
25*b7893ccfSSadaf Ebrahimi typedef struct VkDebugReportContent {
26*b7893ccfSSadaf Ebrahimi     VkDebugReportCallbackEXT msgCallback;
27*b7893ccfSSadaf Ebrahimi     PFN_vkDebugReportCallbackEXT pfnMsgCallback;
28*b7893ccfSSadaf Ebrahimi     VkFlags msgFlags;
29*b7893ccfSSadaf Ebrahimi } VkDebugReportContent;
30*b7893ccfSSadaf Ebrahimi 
31*b7893ccfSSadaf Ebrahimi typedef struct VkDebugUtilsMessengerContent {
32*b7893ccfSSadaf Ebrahimi     VkDebugUtilsMessengerEXT messenger;
33*b7893ccfSSadaf Ebrahimi     VkDebugUtilsMessageSeverityFlagsEXT messageSeverity;
34*b7893ccfSSadaf Ebrahimi     VkDebugUtilsMessageTypeFlagsEXT messageType;
35*b7893ccfSSadaf Ebrahimi     PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback;
36*b7893ccfSSadaf Ebrahimi } VkDebugUtilsMessengerContent;
37*b7893ccfSSadaf Ebrahimi 
38*b7893ccfSSadaf Ebrahimi typedef struct VkLayerDbgFunctionNode_ {
39*b7893ccfSSadaf Ebrahimi     bool is_messenger;
40*b7893ccfSSadaf Ebrahimi     union {
41*b7893ccfSSadaf Ebrahimi         VkDebugReportContent report;
42*b7893ccfSSadaf Ebrahimi         VkDebugUtilsMessengerContent messenger;
43*b7893ccfSSadaf Ebrahimi     };
44*b7893ccfSSadaf Ebrahimi     void *pUserData;
45*b7893ccfSSadaf Ebrahimi     struct VkLayerDbgFunctionNode_ *pNext;
46*b7893ccfSSadaf Ebrahimi } VkLayerDbgFunctionNode;
47