• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2021 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef GRAPHIC_RS_TRACE_H
17 #define GRAPHIC_RS_TRACE_H
18 
19 #if !defined(ROSEN_TRACE_DISABLE) || defined(CROSS_PLATFORM)
20 #include "hitrace_meter.h"
21 // deprecated:USE RS_TRACE_BEGIN_XXX instead
22 #define ROSEN_TRACE_BEGIN(tag, name) StartTrace(tag, name)
23 #define RS_TRACE_BEGIN(name) ROSEN_TRACE_BEGIN(HITRACE_TAG_GRAPHIC_AGP | HITRACE_TAG_COMMERCIAL, name)
24 // deprecated:USE RS_TRACE_END_XXX instead
25 #define ROSEN_TRACE_END(tag) FinishTrace(tag)
26 #define RS_TRACE_END() ROSEN_TRACE_END(HITRACE_TAG_GRAPHIC_AGP | HITRACE_TAG_COMMERCIAL)
27 #define RS_TRACE_NAME(name) HITRACE_METER_NAME(HITRACE_TAG_GRAPHIC_AGP | HITRACE_TAG_COMMERCIAL, name)
28 #define RS_TRACE_NAME_FMT(fmt, ...) \
29     HITRACE_METER_FMT(HITRACE_TAG_GRAPHIC_AGP | HITRACE_TAG_COMMERCIAL, fmt, ##__VA_ARGS__)
30 #define RS_ASYNC_TRACE_BEGIN(name, value) StartAsyncTrace(HITRACE_TAG_GRAPHIC_AGP | HITRACE_TAG_COMMERCIAL, name, value)
31 #define RS_ASYNC_TRACE_END(name, value) FinishAsyncTrace(HITRACE_TAG_GRAPHIC_AGP | HITRACE_TAG_COMMERCIAL, name, value)
32 #define RS_TRACE_INT(name, value) CountTrace(HITRACE_TAG_GRAPHIC_AGP | HITRACE_TAG_COMMERCIAL, name, value)
33 #define RS_TRACE_FUNC() RS_TRACE_NAME(__func__)
34 
35 // DEBUG level
36 #define RS_TRACE_BEGIN_DEBUG(name, customArgs) \
37     StartTraceEx(HiTraceOutputLevel::HITRACE_LEVEL_DEBUG, HITRACE_TAG_GRAPHIC_AGP, name, customArgs)
38 #define RS_TRACE_END_DEBUG(name) \
39     FinishTraceEx(HiTraceOutputLevel::HITRACE_LEVEL_DEBUG, HITRACE_TAG_GRAPHIC_AGP)
40 #define RS_TRACE_NAME_DEBUG(name, customArgs) \
41     HITRACE_METER_NAME_EX(HiTraceOutputLevel::HITRACE_LEVEL_DEBUG, HITRACE_TAG_GRAPHIC_AGP, name, customArgs)
42 #define RS_TRACE_NAME_FMT_DEBUG(customArgs, fmt, ...) \
43     HITRACE_METER_FMT_EX(HiTraceOutputLevel::HITRACE_LEVEL_DEBUG, HITRACE_TAG_GRAPHIC_AGP, \
44     customArgs, fmt, ##__VA_ARGS__)
45 #define RS_ASYNC_TRACE_BEGIN_DEBUG(name, value, customCategory, customArgs) \
46     StartAsyncTraceEx(HiTraceOutputLevel::HITRACE_LEVEL_DEBUG, HITRACE_TAG_GRAPHIC_AGP, name, value, \
47     customCategory, customArgs)
48 #define RS_ASYNC_TRACE_END_DEBUG(name, value) \
49     FinishAsyncTraceEx(HiTraceOutputLevel::HITRACE_LEVEL_DEBUG, HITRACE_TAG_GRAPHIC_AGP, name, value)
50 #define RS_TRACE_INT_DEBUG(name, value) \
51     CountTraceEx(HiTraceOutputLevel::HITRACE_LEVEL_DEBUG, HITRACE_TAG_GRAPHIC_AGP, name, value)
52 #define RS_TRACE_FUNC_DEBUG() RS_TRACE_NAME_DEBUG(__func__, "")
53 
54 // INFO level
55 #define RS_TRACE_BEGIN_INFO(name, customArgs) \
56     StartTraceEx(HiTraceOutputLevel::HITRACE_LEVEL_INFO, HITRACE_TAG_GRAPHIC_AGP, name, customArgs)
57 #define RS_TRACE_END_INFO(name) \
58     FinishTraceEx(HiTraceOutputLevel::HITRACE_LEVEL_INFO, HITRACE_TAG_GRAPHIC_AGP)
59 #define RS_TRACE_NAME_INFO(name, customArgs) \
60     HITRACE_METER_NAME_EX(HiTraceOutputLevel::HITRACE_LEVEL_INFO, HITRACE_TAG_GRAPHIC_AGP, name, customArgs)
61 #define RS_TRACE_NAME_FMT_INFO(customArgs, fmt, ...) \
62     HITRACE_METER_FMT_EX(HiTraceOutputLevel::HITRACE_LEVEL_INFO, HITRACE_TAG_GRAPHIC_AGP, \
63     customArgs, fmt, ##__VA_ARGS__)
64 #define RS_ASYNC_TRACE_BEGIN_INFO(name, value, customCategory, customArgs) \
65     StartAsyncTraceEx(HiTraceOutputLevel::HITRACE_LEVEL_INFO, HITRACE_TAG_GRAPHIC_AGP, name, value, \
66     customCategory, customArgs)
67 #define RS_ASYNC_TRACE_END_INFO(name, value) \
68     FinishAsyncTraceEx(HiTraceOutputLevel::HITRACE_LEVEL_INFO, HITRACE_TAG_GRAPHIC_AGP, name, value)
69 #define RS_TRACE_INT_INFO(name, value) \
70     CountTraceEx(HiTraceOutputLevel::HITRACE_LEVEL_INFO, HITRACE_TAG_GRAPHIC_AGP, name, value)
71 #define RS_TRACE_FUNC_INFO() RS_TRACE_NAME_INFO(__func__, "")
72 
73 // CRITICAL level
74 #define RS_TRACE_BEGIN_CRITICAL(name, customArgs) \
75     StartTraceEx(HiTraceOutputLevel::HITRACE_LEVEL_CRITICAL, HITRACE_TAG_GRAPHIC_AGP, name, customArgs)
76 #define RS_TRACE_END_CRITICAL(name) \
77     FinishTraceEx(HiTraceOutputLevel::HITRACE_LEVEL_CRITICAL, HITRACE_TAG_GRAPHIC_AGP)
78 #define RS_TRACE_NAME_CRITICAL(name, customArgs) \
79     HITRACE_METER_NAME_EX(HiTraceOutputLevel::HITRACE_LEVEL_CRITICAL, HITRACE_TAG_GRAPHIC_AGP, name, customArgs)
80 #define RS_TRACE_NAME_FMT_CRITICAL(customArgs, fmt, ...) \
81     HITRACE_METER_FMT_EX(HiTraceOutputLevel::HITRACE_LEVEL_CRITICAL, HITRACE_TAG_GRAPHIC_AGP, \
82     customArgs, fmt, ##__VA_ARGS__)
83 #define RS_ASYNC_TRACE_BEGIN_CRITICAL(name, value, customCategory, customArgs) \
84     StartAsyncTraceEx(HiTraceOutputLevel::HITRACE_LEVEL_CRITICAL, HITRACE_TAG_GRAPHIC_AGP, name, value, \
85     customCategory, customArgs)
86 #define RS_ASYNC_TRACE_END_CRITICAL(name, value) \
87     FinishAsyncTraceEx(HiTraceOutputLevel::HITRACE_LEVEL_CRITICAL, HITRACE_TAG_GRAPHIC_AGP, name, value)
88 #define RS_TRACE_INT_CRITICAL(name, value) \
89     CountTraceEx(HiTraceOutputLevel::HITRACE_LEVEL_CRITICAL, HITRACE_TAG_GRAPHIC_AGP, name, value)
90 #define RS_TRACE_FUNC_CRITICAL() RS_TRACE_NAME_CRITICAL(__func__, "")
91 
92 // COMMERCIAL level
93 #define RS_TRACE_BEGIN_COMMERCIAL(name, customArgs) \
94     StartTraceEx(HiTraceOutputLevel::HITRACE_LEVEL_COMMERCIAL, HITRACE_TAG_GRAPHIC_AGP, name, customArgs)
95 #define RS_TRACE_END_COMMERCIAL(name) \
96     FinishTraceEx(HiTraceOutputLevel::HITRACE_LEVEL_COMMERCIAL, HITRACE_TAG_GRAPHIC_AGP)
97 #define RS_TRACE_NAME_COMMERCIAL(name, customArgs) \
98     HITRACE_METER_NAME_EX(HiTraceOutputLevel::HITRACE_LEVEL_COMMERCIAL, HITRACE_TAG_GRAPHIC_AGP, name, customArgs)
99 #define RS_TRACE_NAME_FMT_COMMERCIAL(customArgs, fmt, ...) \
100     HITRACE_METER_FMT_EX(HiTraceOutputLevel::HITRACE_LEVEL_COMMERCIAL, HITRACE_TAG_GRAPHIC_AGP, \
101     customArgs, fmt, ##__VA_ARGS__)
102 #define RS_ASYNC_TRACE_BEGIN_COMMERCIAL(name, value, customCategory, customArgs) \
103     StartAsyncTraceEx(HiTraceOutputLevel::HITRACE_LEVEL_COMMERCIAL, HITRACE_TAG_GRAPHIC_AGP, name, value, \
104     customCategory, customArgs)
105 #define RS_ASYNC_TRACE_END_COMMERCIAL(name, value) \
106     FinishAsyncTraceEx(HiTraceOutputLevel::HITRACE_LEVEL_COMMERCIAL, HITRACE_TAG_GRAPHIC_AGP, name, value)
107 #define RS_TRACE_INT_COMMERCIAL(name, value) \
108     CountTraceEx(HiTraceOutputLevel::HITRACE_LEVEL_COMMERCIAL, HITRACE_TAG_GRAPHIC_AGP, name, value)
109 #define RS_TRACE_FUNC_COMMERCIAL() RS_TRACE_NAME_COMMERCIAL(__func__, "")
110 
111 #elif defined(ROSEN_ANDROID) && !defined(RUNTIME_MODE_RELEASE)
112 #include "rs_trace_crossplatform.h"
113 #else
114 
115 #define ROSEN_TRACE_BEGIN(tag, name)
116 #define RS_TRACE_BEGIN(name)
117 #define ROSEN_TRACE_END(tag)
118 #define RS_TRACE_END()
119 #define RS_TRACE_NAME_FMT(fmt, ...)
120 #define RS_ASYNC_TRACE_BEGIN(name, value)
121 #define RS_ASYNC_TRACE_END(name, value)
122 #define RS_TRACE_INT(name, value)
123 #define RS_TRACE_NAME(name)
124 #define RS_TRACE_FUNC()
125 
126 // DEBUG level
127 #define RS_TRACE_BEGIN_DEBUG(name, customArgs)
128 #define RS_TRACE_END_DEBUG(name)
129 #define RS_TRACE_NAME_DEBUG(name, customArgs)
130 #define RS_TRACE_NAME_FMT_DEBUG(customArgs, fmt, ...)
131 #define RS_ASYNC_TRACE_BEGIN_DEBUG(name, value, customCategory, customArgs)
132 #define RS_ASYNC_TRACE_END_DEBUG(name, value)
133 #define RS_TRACE_INT_DEBUG(name, value)
134 #define RS_TRACE_FUNC_DEBUG()
135 
136 // INFO level
137 #define RS_TRACE_BEGIN_INFO(name, customArgs)
138 #define RS_TRACE_END_INFO(name)
139 #define RS_TRACE_NAME_INFO(name, customArgs)
140 #define RS_TRACE_NAME_FMT_INFO(customArgs, fmt, ...)
141 #define RS_ASYNC_TRACE_BEGIN_INFO(name, value, customCategory, customArgs)
142 #define RS_ASYNC_TRACE_END_INFO(name, value)
143 #define RS_TRACE_INT_INFO(name, value)
144 #define RS_TRACE_FUNC_INFO()
145 
146 // CRITICAL level
147 #define RS_TRACE_BEGIN_CRITICAL(name, customArgs)
148 #define RS_TRACE_END_CRITICAL(name)
149 #define RS_TRACE_NAME_CRITICAL(name, customArgs)
150 #define RS_TRACE_NAME_FMT_CRITICAL(customArgs, fmt, ...)
151 #define RS_ASYNC_TRACE_BEGIN_CRITICAL(name, value, customCategory, customArgs)
152 #define RS_ASYNC_TRACE_END_CRITICAL(name, value)
153 #define RS_TRACE_INT_CRITICAL(name, value)
154 #define RS_TRACE_FUNC_CRITICAL()
155 
156 // COMMERCIAL level
157 #define RS_TRACE_BEGIN_COMMERCIAL(name, customArgs)
158 #define RS_TRACE_END_COMMERCIAL(name)
159 #define RS_TRACE_NAME_COMMERCIAL(name, customArgs)
160 #define RS_TRACE_NAME_FMT_COMMERCIAL(customArgs, fmt, ...)
161 #define RS_ASYNC_TRACE_BEGIN_COMMERCIAL(name, value, customCategory, customArgs)
162 #define RS_ASYNC_TRACE_END_COMMERCIAL(name, value)
163 #define RS_TRACE_INT_COMMERCIAL(name, value)
164 #define RS_TRACE_FUNC_COMMERCIAL()
165 #endif //ROSEN_TRACE_DISABLE
166 
167 #endif // GRAPHIC_RS_TRACE_H
168