blob: 7a5728a1ebdaee3e3c9c50e8bc255292868a21c3 [file] [log] [blame]
Chia-I Wu68a55242014-08-01 11:18:21 +08001#ifndef __XGLDBG_H__
2#define __XGLDBG_H__
3
4#include <xgl.h>
5
6#ifdef __cplusplus
7extern "C"
8{
9#endif // __cplusplus
10
11typedef enum _XGL_DBG_MSG_TYPE
12{
13 XGL_DBG_MSG_UNKNOWN = 0x0,
14 XGL_DBG_MSG_ERROR = 0x1,
15 XGL_DBG_MSG_WARNING = 0x2,
16 XGL_DBG_MSG_PERF_WARNING = 0x3,
17
18 XGL_DBG_MSG_TYPE_BEGIN_RANGE = XGL_DBG_MSG_UNKNOWN,
19 XGL_DBG_MSG_TYPE_END_RANGE = XGL_DBG_MSG_PERF_WARNING,
20 XGL_NUM_DBG_MSG_TYPE = (XGL_DBG_MSG_TYPE_END_RANGE - XGL_DBG_MSG_TYPE_BEGIN_RANGE + 1),
21} XGL_DBG_MSG_TYPE;
22
23typedef enum _XGL_DBG_MSG_FILTER
24{
25 XGL_DBG_MSG_FILTER_NONE = 0x0,
26 XGL_DBG_MSG_FILTER_REPEATED = 0x1,
27 XGL_DBG_MSG_FILTER_ALL = 0x2,
28
29 XGL_DBG_MSG_FILTER_BEGIN_RANGE = XGL_DBG_MSG_FILTER_NONE,
30 XGL_DBG_MSG_FILTER_END_RANGE = XGL_DBG_MSG_FILTER_ALL,
31 XGL_NUM_DBG_MSG_FILTER = (XGL_DBG_MSG_FILTER_END_RANGE - XGL_DBG_MSG_FILTER_BEGIN_RANGE + 1),
32} XGL_DBG_MSG_FILTER;
33
34typedef enum _XGL_DBG_GLOBAL_OPTION
35{
36 XGL_DBG_OPTION_DEBUG_ECHO_ENABLE = 0x0,
37 XGL_DBG_OPTION_BREAK_ON_ERROR = 0x1,
38 XGL_DBG_OPTION_BREAK_ON_WARNING = 0x2,
39
40 XGL_DBG_GLOBAL_OPTION_BEGIN_RANGE = XGL_DBG_OPTION_DEBUG_ECHO_ENABLE,
41 XGL_DBG_GLOBAL_OPTION_END_RANGE = XGL_DBG_OPTION_BREAK_ON_WARNING,
42 XGL_NUM_DBG_GLOBAL_OPTION = (XGL_DBG_GLOBAL_OPTION_END_RANGE - XGL_DBG_GLOBAL_OPTION_BEGIN_RANGE + 1),
43} XGL_DBG_GLOBAL_OPTION;
44
45typedef enum _XGL_DBG_DEVICE_OPTION
46{
47 XGL_DBG_OPTION_DISABLE_PIPELINE_LOADS = 0x0,
48 XGL_DBG_OPTION_FORCE_OBJECT_MEMORY_REQS = 0x1,
49 XGL_DBG_OPTION_FORCE_LARGE_IMAGE_ALIGNMENT = 0x2,
50
51 XGL_DBG_DEVICE_OPTION_BEGIN_RANGE = XGL_DBG_OPTION_DISABLE_PIPELINE_LOADS,
52 XGL_DBG_DEVICE_OPTION_END_RANGE = XGL_DBG_OPTION_FORCE_LARGE_IMAGE_ALIGNMENT,
53 XGL_NUM_DBG_DEVICE_OPTION = (XGL_DBG_DEVICE_OPTION_END_RANGE - XGL_DBG_DEVICE_OPTION_BEGIN_RANGE + 1),
54} XGL_DBG_DEVICE_OPTION;
55
Chia-I Wu450a4232014-08-05 14:50:53 +080056typedef enum _XGL_DBG_OBJECT_TYPE
57{
58 XGL_DBG_OBJECT_UNKNOWN = 0x00,
59 XGL_DBG_OBJECT_DEVICE = 0x01,
60 XGL_DBG_OBJECT_QUEUE = 0x02,
61 XGL_DBG_OBJECT_GPU_MEMORY = 0x03,
62 XGL_DBG_OBJECT_IMAGE = 0x04,
63 XGL_DBG_OBJECT_IMAGE_VIEW = 0x05,
64 XGL_DBG_OBJECT_COLOR_TARGET_VIEW = 0x06,
65 XGL_DBG_OBJECT_DEPTH_STENCIL_VIEW = 0x07,
66 XGL_DBG_OBJECT_SHADER = 0x08,
67 XGL_DBG_OBJECT_GRAPHICS_PIPELINE = 0x09,
68 XGL_DBG_OBJECT_COMPUTE_PIPELINE = 0x0a,
69 XGL_DBG_OBJECT_SAMPLER = 0x0b,
70 XGL_DBG_OBJECT_DESCRIPTOR_SET = 0x0c,
71 XGL_DBG_OBJECT_VIEWPORT_STATE = 0x0d,
72 XGL_DBG_OBJECT_RASTER_STATE = 0x0e,
73 XGL_DBG_OBJECT_MSAA_STATE = 0x0f,
74 XGL_DBG_OBJECT_COLOR_BLEND_STATE = 0x10,
75 XGL_DBG_OBJECT_DEPTH_STENCIL_STATE = 0x11,
76 XGL_DBG_OBJECT_CMD_BUFFER = 0x12,
77 XGL_DBG_OBJECT_FENCE = 0x13,
78 XGL_DBG_OBJECT_QUEUE_SEMAPHORE = 0x14,
79 XGL_DBG_OBJECT_EVENT = 0x15,
80 XGL_DBG_OBJECT_QUERY_POOL = 0x16,
81 XGL_DBG_OBJECT_SHARED_GPU_MEMORY = 0x17,
82 XGL_DBG_OBJECT_SHARED_QUEUE_SEMAPHORE = 0x18,
83 XGL_DBG_OBJECT_PEER_GPU_MEMORY = 0x19,
84 XGL_DBG_OBJECT_PEER_IMAGE = 0x1a,
85 XGL_DBG_OBJECT_PINNED_GPU_MEMORY = 0x1b,
86 XGL_DBG_OBJECT_INTERNAL_GPU_MEMORY = 0x1c,
87
88 XGL_DBG_OBJECT_TYPE_BEGIN_RANGE = XGL_DBG_OBJECT_UNKNOWN,
89 XGL_DBG_OBJECT_TYPE_END_RANGE = XGL_DBG_OBJECT_INTERNAL_GPU_MEMORY,
90 XGL_NUM_DBG_OBJECT_TYPE = (XGL_DBG_OBJECT_TYPE_END_RANGE - XGL_DBG_OBJECT_TYPE_BEGIN_RANGE + 1),
91} XGL_DBG_OBJECT_TYPE;
92
Chia-I Wu68a55242014-08-01 11:18:21 +080093typedef XGL_VOID (XGLAPI *XGL_DBG_MSG_CALLBACK_FUNCTION)(
94 XGL_DBG_MSG_TYPE msgType,
95 XGL_VALIDATION_LEVEL validationLevel,
96 XGL_BASE_OBJECT srcObject,
97 XGL_SIZE location,
98 XGL_INT msgCode,
99 const XGL_CHAR* pMsg,
100 XGL_VOID* pUserData);
101
102// Debug functions
Mark Lobodzinski391bb6d2015-01-09 15:12:03 -0600103typedef XGL_RESULT (XGLAPI *xglDbgSetValidationLevelType)(XGL_DEVICE device, XGL_VALIDATION_LEVEL validationLevel);
104typedef XGL_RESULT (XGLAPI *xglDbgRegisterMsgCallbackType)(XGL_DBG_MSG_CALLBACK_FUNCTION pfnMsgCallback, XGL_VOID* pUserData);
105typedef XGL_RESULT (XGLAPI *xglDbgUnregisterMsgCallbackType)(XGL_DBG_MSG_CALLBACK_FUNCTION pfnMsgCallback);
106typedef XGL_RESULT (XGLAPI *xglDbgSetMessageFilterType)(XGL_DEVICE device, XGL_INT msgCode, XGL_DBG_MSG_FILTER filter);
107typedef XGL_RESULT (XGLAPI *xglDbgSetObjectTagType)(XGL_BASE_OBJECT object, XGL_SIZE tagSize, const XGL_VOID* pTag);
108typedef XGL_RESULT (XGLAPI *xglDbgSetGlobalOptionType)(XGL_DBG_GLOBAL_OPTION dbgOption, XGL_SIZE dataSize, const XGL_VOID* pData);
109typedef XGL_RESULT (XGLAPI *xglDbgSetDeviceOptionType)(XGL_DEVICE device, XGL_DBG_DEVICE_OPTION dbgOption, XGL_SIZE dataSize, const XGL_VOID* pData);
110typedef XGL_VOID (XGLAPI *xglCmdDbgMarkerBeginType)(XGL_CMD_BUFFER cmdBuffer, const XGL_CHAR* pMarker);
111typedef XGL_VOID (XGLAPI *xglCmdDbgMarkerEndType)(XGL_CMD_BUFFER cmdBuffer);
Chia-I Wu68a55242014-08-01 11:18:21 +0800112
113XGL_RESULT XGLAPI xglDbgSetValidationLevel(
114 XGL_DEVICE device,
115 XGL_VALIDATION_LEVEL validationLevel);
116
117XGL_RESULT XGLAPI xglDbgRegisterMsgCallback(
118 XGL_DBG_MSG_CALLBACK_FUNCTION pfnMsgCallback,
119 XGL_VOID* pUserData);
120
121XGL_RESULT XGLAPI xglDbgUnregisterMsgCallback(
122 XGL_DBG_MSG_CALLBACK_FUNCTION pfnMsgCallback);
123
124XGL_RESULT XGLAPI xglDbgSetMessageFilter(
125 XGL_DEVICE device,
126 XGL_INT msgCode,
127 XGL_DBG_MSG_FILTER filter);
128
129XGL_RESULT XGLAPI xglDbgSetObjectTag(
130 XGL_BASE_OBJECT object,
131 XGL_SIZE tagSize,
132 const XGL_VOID* pTag);
133
134XGL_RESULT XGLAPI xglDbgSetGlobalOption(
135 XGL_DBG_GLOBAL_OPTION dbgOption,
136 XGL_SIZE dataSize,
137 const XGL_VOID* pData);
138
139XGL_RESULT XGLAPI xglDbgSetDeviceOption(
140 XGL_DEVICE device,
141 XGL_DBG_DEVICE_OPTION dbgOption,
142 XGL_SIZE dataSize,
143 const XGL_VOID* pData);
144
145XGL_VOID XGLAPI xglCmdDbgMarkerBegin(
146 XGL_CMD_BUFFER cmdBuffer,
147 const XGL_CHAR* pMarker);
148
149XGL_VOID XGLAPI xglCmdDbgMarkerEnd(
150 XGL_CMD_BUFFER cmdBuffer);
151
152#ifdef __cplusplus
153}; // extern "C"
154#endif // __cplusplus
155
156#endif // __XGLDBG_H__