blob: 138d10973caafa7ae048b45f5384502a090580ed [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
56typedef XGL_VOID (XGLAPI *XGL_DBG_MSG_CALLBACK_FUNCTION)(
57 XGL_DBG_MSG_TYPE msgType,
58 XGL_VALIDATION_LEVEL validationLevel,
59 XGL_BASE_OBJECT srcObject,
60 XGL_SIZE location,
61 XGL_INT msgCode,
62 const XGL_CHAR* pMsg,
63 XGL_VOID* pUserData);
64
65// Debug functions
66
67XGL_RESULT XGLAPI xglDbgSetValidationLevel(
68 XGL_DEVICE device,
69 XGL_VALIDATION_LEVEL validationLevel);
70
71XGL_RESULT XGLAPI xglDbgRegisterMsgCallback(
72 XGL_DBG_MSG_CALLBACK_FUNCTION pfnMsgCallback,
73 XGL_VOID* pUserData);
74
75XGL_RESULT XGLAPI xglDbgUnregisterMsgCallback(
76 XGL_DBG_MSG_CALLBACK_FUNCTION pfnMsgCallback);
77
78XGL_RESULT XGLAPI xglDbgSetMessageFilter(
79 XGL_DEVICE device,
80 XGL_INT msgCode,
81 XGL_DBG_MSG_FILTER filter);
82
83XGL_RESULT XGLAPI xglDbgSetObjectTag(
84 XGL_BASE_OBJECT object,
85 XGL_SIZE tagSize,
86 const XGL_VOID* pTag);
87
88XGL_RESULT XGLAPI xglDbgSetGlobalOption(
89 XGL_DBG_GLOBAL_OPTION dbgOption,
90 XGL_SIZE dataSize,
91 const XGL_VOID* pData);
92
93XGL_RESULT XGLAPI xglDbgSetDeviceOption(
94 XGL_DEVICE device,
95 XGL_DBG_DEVICE_OPTION dbgOption,
96 XGL_SIZE dataSize,
97 const XGL_VOID* pData);
98
99XGL_VOID XGLAPI xglCmdDbgMarkerBegin(
100 XGL_CMD_BUFFER cmdBuffer,
101 const XGL_CHAR* pMarker);
102
103XGL_VOID XGLAPI xglCmdDbgMarkerEnd(
104 XGL_CMD_BUFFER cmdBuffer);
105
106#ifdef __cplusplus
107}; // extern "C"
108#endif // __cplusplus
109
110#endif // __XGLDBG_H__