Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit f074d61

Browse files
ianelliottusCommit Bot
authored andcommitted
Plumb EntryPoint & Context to DebugAnnotator/EVENT()
This makes it easier to plumb debug labels to a future DebugAnnotatorVk class. Bug: b/162068318 Bug: b/169243237 Change-Id: I01e3779569c27c91252dc2874f6deaec526afd6f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2451516 Commit-Queue: Ian Elliott <ianelliott@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
1 parent 86ca5d2 commit f074d61

39 files changed

+3499
-3000
lines changed

scripts/code_generation_hashes/GL_EGL_entry_points.json

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"scripts/entry_point_packed_gl_enums.json":
77
"2d46a38023361f8e95af71042626667c",
88
"scripts/generate_entry_points.py":
9-
"16da95ef4313d62c580112c65660d82e",
9+
"c79b44b36428f8e9f374d7f5c139b94c",
1010
"scripts/gl.xml":
1111
"e74a595068cbdd6064300be1e71b7cc9",
1212
"scripts/gl_angle_ext.xml":
@@ -150,107 +150,107 @@
150150
"src/libANGLE/validationGL4_autogen.h":
151151
"cbe3f917024a93a3adcbd2806f3e951f",
152152
"src/libGL/entry_points_gl_1_0_autogen.cpp":
153-
"f23f3b0c50511fd2157da3db17a9aff4",
153+
"64d8ddabb486784b129c7bacd334d9cf",
154154
"src/libGL/entry_points_gl_1_0_autogen.h":
155155
"4ff00afc21780bc6c138b5431a2d067c",
156156
"src/libGL/entry_points_gl_1_1_autogen.cpp":
157-
"fdba6bafa021aa0574827adb360684f3",
157+
"f1e6508c5c1b2acbcfab7f0330c94634",
158158
"src/libGL/entry_points_gl_1_1_autogen.h":
159159
"570a839bb336d8f5f83d3b50fe49411a",
160160
"src/libGL/entry_points_gl_1_2_autogen.cpp":
161-
"e89a87545b9fb2cc398a20cc27047945",
161+
"6025bdaa2cf677b087e1c42e7de54e1b",
162162
"src/libGL/entry_points_gl_1_2_autogen.h":
163163
"3f52187f299fe96672384e1646f4a1cb",
164164
"src/libGL/entry_points_gl_1_3_autogen.cpp":
165-
"e3ead2456cc9ec15f1b3d103294690cb",
165+
"bdff6b60cf7434a915437457bef9374b",
166166
"src/libGL/entry_points_gl_1_3_autogen.h":
167167
"5ea36d869b82a824d5f290625c4ea052",
168168
"src/libGL/entry_points_gl_1_4_autogen.cpp":
169-
"e92444a3923333859259015956faf98a",
169+
"415a3184b8aa4575cdbf9ec9be5743cd",
170170
"src/libGL/entry_points_gl_1_4_autogen.h":
171171
"2c5d31ca248507a024e4724c74283ec4",
172172
"src/libGL/entry_points_gl_1_5_autogen.cpp":
173-
"aa54e56cba33b02f59c5957cd9c24261",
173+
"4e513e6efb7e9d9a167e93e022c4456a",
174174
"src/libGL/entry_points_gl_1_5_autogen.h":
175175
"978457aa9a40e427846b6dea24608903",
176176
"src/libGL/entry_points_gl_2_0_autogen.cpp":
177-
"afcfb2d402124bddd31326ac196bed71",
177+
"bbacfb76118d448f937a14eeba8b611d",
178178
"src/libGL/entry_points_gl_2_0_autogen.h":
179179
"41b0cd064167fac84bcdb1896a275b1b",
180180
"src/libGL/entry_points_gl_2_1_autogen.cpp":
181-
"bde895812b7339665671447fd73d52e0",
181+
"78ab9a5ffa9dd197aa58549d6c4ef5cf",
182182
"src/libGL/entry_points_gl_2_1_autogen.h":
183183
"1da48dec560ea5ff8cadf4d0b6bfde1c",
184184
"src/libGL/entry_points_gl_3_0_autogen.cpp":
185-
"3fbd9e5daff828faddd68dbe451444f6",
185+
"73a6ae63badd8bde401f07a473ccd866",
186186
"src/libGL/entry_points_gl_3_0_autogen.h":
187187
"0fad8005f23815beb8ee9b3797c00b83",
188188
"src/libGL/entry_points_gl_3_1_autogen.cpp":
189-
"aa2a5a02d780733e1e447563bef95553",
189+
"2585e834b0a28e4b128d76fb3bb1cb55",
190190
"src/libGL/entry_points_gl_3_1_autogen.h":
191191
"a68ff6c69f0ce95d9730e22bb4c63366",
192192
"src/libGL/entry_points_gl_3_2_autogen.cpp":
193-
"ab1b0676394018164400b32f5dacda9b",
193+
"1a591608d3f02ceb3d38d19ad15896b1",
194194
"src/libGL/entry_points_gl_3_2_autogen.h":
195195
"f162c4e93a64ab2e43048a0937f7c46f",
196196
"src/libGL/entry_points_gl_3_3_autogen.cpp":
197-
"03c57cc42c9acce54245dadaae48733c",
197+
"22be82cb4d29a312b013e20e82189209",
198198
"src/libGL/entry_points_gl_3_3_autogen.h":
199199
"51c0e4f074c85447f5d910c63b9ea61c",
200200
"src/libGL/entry_points_gl_4_0_autogen.cpp":
201-
"e16628740f0a06219f3ae3e37287de06",
201+
"78176f7c4f239fad54b3a425120b92a7",
202202
"src/libGL/entry_points_gl_4_0_autogen.h":
203203
"35d611138951cebc29db99c9bf3a9e5f",
204204
"src/libGL/entry_points_gl_4_1_autogen.cpp":
205-
"7c72e40d3fa6ff6db894d5f6d48b43d2",
205+
"fcdbc6bb9727178de28c3da68628fdca",
206206
"src/libGL/entry_points_gl_4_1_autogen.h":
207207
"beec6659a3a77695dad66df90717c6ba",
208208
"src/libGL/entry_points_gl_4_2_autogen.cpp":
209-
"6ef3dad75ba220f2fd2a612214ed6ac9",
209+
"e5c45aea2e026e9cd3aa9d8979ca814d",
210210
"src/libGL/entry_points_gl_4_2_autogen.h":
211211
"a2cb2a48cceaf6131f96bf8ec556aa55",
212212
"src/libGL/entry_points_gl_4_3_autogen.cpp":
213-
"4f47179fde663d5033693b1fae13f306",
213+
"f9a57e1da6ad5b6b07712c275e2f660d",
214214
"src/libGL/entry_points_gl_4_3_autogen.h":
215215
"abfa431742a2b643db21220944e10ab0",
216216
"src/libGL/entry_points_gl_4_4_autogen.cpp":
217-
"0659139235221d4fe6879834e69ea7cb",
217+
"7ae753fdab08c6fb62c39bcfcae2a34f",
218218
"src/libGL/entry_points_gl_4_4_autogen.h":
219219
"cdf1651f00d26db547b153afc09acc1c",
220220
"src/libGL/entry_points_gl_4_5_autogen.cpp":
221-
"85ce4ad4ae18fc20cfa0d367e88c34f0",
221+
"1ff3a18c3041b98b349dbf6c96e7e54a",
222222
"src/libGL/entry_points_gl_4_5_autogen.h":
223223
"9f5de9513c06b82aca60856860f7b716",
224224
"src/libGL/entry_points_gl_4_6_autogen.cpp":
225-
"09c3ccac53be47eeaaa5882af07c27ed",
225+
"f2cff601f7137ba02b6ec123b6526c01",
226226
"src/libGL/entry_points_gl_4_6_autogen.h":
227227
"ee3150d4a8d267271a02e38e8feb923a",
228228
"src/libGL/libGL_autogen.cpp":
229229
"846fe3b32c9b0931ca2d749216131b00",
230230
"src/libGL/libGL_autogen.def":
231231
"2789d87b05eea9f53d52e2aff499b785",
232232
"src/libGLESv2/entry_points_gles_1_0_autogen.cpp":
233-
"22887bfd29d481e34514bf02cfdf8841",
233+
"d84936cf946b26dadf75dc249476e01f",
234234
"src/libGLESv2/entry_points_gles_1_0_autogen.h":
235235
"899dcff9383465380f94fbdfe5bcf0a0",
236236
"src/libGLESv2/entry_points_gles_2_0_autogen.cpp":
237-
"9fc4466d31b35a37b436328107f87d92",
237+
"d2e51c453945bf9dfbcda99d03ee979c",
238238
"src/libGLESv2/entry_points_gles_2_0_autogen.h":
239239
"26387e27cbddf5e34d6cd9f850cb8b64",
240240
"src/libGLESv2/entry_points_gles_3_0_autogen.cpp":
241-
"1d095828b01116f9992a7bfa95283ba7",
241+
"e31ce38421c965a387d25b41febc5b8e",
242242
"src/libGLESv2/entry_points_gles_3_0_autogen.h":
243243
"0d246024379fbf55b87204db5d6a37e3",
244244
"src/libGLESv2/entry_points_gles_3_1_autogen.cpp":
245-
"0ba581778fce9d7e1a54231fc494b9d5",
245+
"b503cfdd892ed38dbcf0ef6963221472",
246246
"src/libGLESv2/entry_points_gles_3_1_autogen.h":
247247
"69bae5c94ed4665836a8464b6c353f9a",
248248
"src/libGLESv2/entry_points_gles_3_2_autogen.cpp":
249-
"a6898b35e7bd1dc60b3e1e1b97c4388d",
249+
"6697586a8a7a3a0ecda4edb71fe59969",
250250
"src/libGLESv2/entry_points_gles_3_2_autogen.h":
251251
"5798aa0a73af1d4ba5dfe99b6217a247",
252252
"src/libGLESv2/entry_points_gles_ext_autogen.cpp":
253-
"f305a1ba1ca268ac647a77f38b994455",
253+
"a650c0fb59e907d6a8e77cb5fe37cc5a",
254254
"src/libGLESv2/entry_points_gles_ext_autogen.h":
255255
"879ce9d1859bb776a032678f877a259e",
256256
"src/libGLESv2/libGLESv2_autogen.cpp":

scripts/generate_entry_points.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ def is_aliasing_excepted(cmd_name, is_gles):
157157
template_entry_point_no_return = """void GL_APIENTRY {name}{explicit_context_suffix}({explicit_context_param}{explicit_context_comma}{params})
158158
{{
159159
Context *context = {context_getter};
160-
{event_comment}EVENT(context, "gl{name}", "context = %d{comma_if_needed}{format_params}", CID(context){comma_if_needed}{pass_params});
160+
{event_comment}EVENT(context, gl::EntryPoint::{name}, "gl{name}", "context = %d{comma_if_needed}{format_params}", CID(context){comma_if_needed}{pass_params});
161161
162162
if (context)
163163
{{{assert_explicit_context}{packed_gl_enum_conversions}
@@ -175,7 +175,7 @@ def is_aliasing_excepted(cmd_name, is_gles):
175175
template_entry_point_with_return = """{return_type}GL_APIENTRY {name}{explicit_context_suffix}({explicit_context_param}{explicit_context_comma}{params})
176176
{{
177177
Context *context = {context_getter};
178-
{event_comment}EVENT(context, "gl{name}", "context = %d{comma_if_needed}{format_params}", CID(context){comma_if_needed}{pass_params});
178+
{event_comment}EVENT(context, gl::EntryPoint::{name}, "gl{name}", "context = %d{comma_if_needed}{format_params}", CID(context){comma_if_needed}{pass_params});
179179
180180
{return_type} returnValue;
181181
if (context)
@@ -469,6 +469,7 @@ class Context;
469469
#include "libANGLE/gl_enum_utils.h"
470470
#include "libANGLE/validation{validation_header_version}.h"
471471
#include "libANGLE/entry_points_utils.h"
472+
#include "libANGLE/entry_points_enum_autogen.h"
472473
#include "libGLESv2/global_state.h"
473474
"""
474475

src/common/debug.cpp

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -119,8 +119,11 @@ std::mutex &GetDebugMutex()
119119
return *g_debugMutex;
120120
}
121121

122-
ScopedPerfEventHelper::ScopedPerfEventHelper(gl::Context *context, const char *format, ...)
123-
: mFunctionName(nullptr)
122+
ScopedPerfEventHelper::ScopedPerfEventHelper(gl::Context *context,
123+
gl::EntryPoint entryPoint,
124+
const char *format,
125+
...)
126+
: mContext(context), mEntryPoint(entryPoint), mFunctionName(nullptr)
124127
{
125128
bool dbgTrace = DebugAnnotationsActive();
126129
#if !defined(ANGLE_ENABLE_DEBUG_TRACE)
@@ -140,15 +143,15 @@ ScopedPerfEventHelper::ScopedPerfEventHelper(gl::Context *context, const char *f
140143
va_end(vararg);
141144
if (dbgTrace)
142145
{
143-
g_debugAnnotator->beginEvent(context, mFunctionName, buffer.data());
146+
g_debugAnnotator->beginEvent(context, entryPoint, mFunctionName, buffer.data());
144147
}
145148
}
146149

147150
ScopedPerfEventHelper::~ScopedPerfEventHelper()
148151
{
149152
if (DebugAnnotationsActive())
150153
{
151-
g_debugAnnotator->endEvent(mFunctionName);
154+
g_debugAnnotator->endEvent(mContext, mFunctionName, mEntryPoint);
152155
}
153156
}
154157

src/common/debug.h

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,16 +29,19 @@
2929
namespace gl
3030
{
3131
class Context;
32+
enum class EntryPoint;
3233

3334
// Pairs a D3D begin event with an end event.
3435
class ScopedPerfEventHelper : angle::NonCopyable
3536
{
3637
public:
37-
ANGLE_FORMAT_PRINTF(3, 4)
38-
ScopedPerfEventHelper(gl::Context *context, const char *format, ...);
38+
ANGLE_FORMAT_PRINTF(4, 5)
39+
ScopedPerfEventHelper(gl::Context *context, gl::EntryPoint entryPoint, const char *format, ...);
3940
~ScopedPerfEventHelper();
4041

4142
private:
43+
gl::Context *mContext;
44+
const gl::EntryPoint mEntryPoint;
4245
const char *mFunctionName;
4346
};
4447

@@ -89,9 +92,12 @@ class DebugAnnotator : angle::NonCopyable
8992
DebugAnnotator() {}
9093
virtual ~DebugAnnotator() {}
9194
virtual void beginEvent(gl::Context *context,
95+
gl::EntryPoint entryPoint,
9296
const char *eventName,
9397
const char *eventMessage) = 0;
94-
virtual void endEvent(const char *eventName) = 0;
98+
virtual void endEvent(gl::Context *context,
99+
const char *eventName,
100+
gl::EntryPoint entryPoint) = 0;
95101
virtual void setMarker(const char *markerName) = 0;
96102
virtual bool getStatus() = 0;
97103
// Log Message Handler that gets passed every log message,
@@ -248,13 +254,13 @@ std::ostream &FmtHex(std::ostream &os, T value)
248254
// A macro to log a performance event around a scope.
249255
#if defined(ANGLE_TRACE_ENABLED)
250256
# if defined(_MSC_VER)
251-
# define EVENT(context, function, message, ...) \
252-
gl::ScopedPerfEventHelper scopedPerfEventHelper##__LINE__(context, "%s(" message ")", \
253-
function, __VA_ARGS__)
257+
# define EVENT(context, entryPoint, function, message, ...) \
258+
gl::ScopedPerfEventHelper scopedPerfEventHelper##__LINE__( \
259+
context, entryPoint, "%s(" message ")", function, __VA_ARGS__)
254260
# else
255-
# define EVENT(context, function, message, ...) \
256-
gl::ScopedPerfEventHelper scopedPerfEventHelper(context, "%s(" message ")", function, \
257-
##__VA_ARGS__)
261+
# define EVENT(context, entryPoint, function, message, ...) \
262+
gl::ScopedPerfEventHelper scopedPerfEventHelper( \
263+
context, entryPoint, "%s(" message ")", function, ##__VA_ARGS__)
258264
# endif // _MSC_VER
259265
#else
260266
# define EVENT(message, ...) (void(0))

src/libANGLE/LoggingAnnotator.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,16 @@ bool LoggingAnnotator::getStatus()
1919
}
2020

2121
void LoggingAnnotator::beginEvent(gl::Context *context,
22+
gl::EntryPoint entryPoint,
2223
const char *eventName,
2324
const char *eventMessage)
2425
{
2526
ANGLE_TRACE_EVENT_BEGIN0("gpu.angle", eventName);
2627
}
2728

28-
void LoggingAnnotator::endEvent(const char *eventName)
29+
void LoggingAnnotator::endEvent(gl::Context *context,
30+
const char *eventName,
31+
gl::EntryPoint entryPoint)
2932
{
3033
ANGLE_TRACE_EVENT_END0("gpu.angle", eventName);
3134
}

src/libANGLE/LoggingAnnotator.h

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,11 @@ class LoggingAnnotator : public gl::DebugAnnotator
2424
public:
2525
LoggingAnnotator() {}
2626
~LoggingAnnotator() override {}
27-
void beginEvent(gl::Context *context, const char *eventName, const char *eventMessage) override;
28-
void endEvent(const char *eventName) override;
27+
void beginEvent(gl::Context *context,
28+
gl::EntryPoint entryPoint,
29+
const char *eventName,
30+
const char *eventMessage) override;
31+
void endEvent(gl::Context *context, const char *eventName, gl::EntryPoint entryPoint) override;
2932
void setMarker(const char *markerName) override;
3033
bool getStatus() override;
3134
void logMessage(const gl::LogMessage &msg) const override;

src/libANGLE/entry_points_utils.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,8 @@ constexpr ANGLE_INLINE ReturnType GetDefaultReturnValue()
9595
# define ANGLE_CAPTURE(...)
9696
#endif // ANGLE_CAPTURE_ENABLED
9797

98-
#define FUNC_EVENT(format, ...) EVENT(nullptr, __FUNCTION__, format, __VA_ARGS__)
98+
#define FUNC_EVENT(format, ...) \
99+
EVENT(nullptr, gl::EntryPoint::Begin, __FUNCTION__, format, __VA_ARGS__)
99100

100101
inline int CID(const Context *context)
101102
{

src/libANGLE/renderer/d3d/d3d11/Context11.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
#include "libANGLE/Context.h"
1414
#include "libANGLE/Context.inl.h"
1515
#include "libANGLE/MemoryProgramCache.h"
16+
#include "libANGLE/entry_points_enum_autogen.h"
1617
#include "libANGLE/renderer/OverlayImpl.h"
1718
#include "libANGLE/renderer/d3d/CompilerD3D.h"
1819
#include "libANGLE/renderer/d3d/RenderbufferD3D.h"
@@ -740,7 +741,7 @@ angle::Result Context11::insertEventMarker(GLsizei length, const char *marker)
740741

741742
angle::Result Context11::pushGroupMarker(GLsizei length, const char *marker)
742743
{
743-
mRenderer->getAnnotator()->beginEvent(nullptr, marker, marker);
744+
mRenderer->getAnnotator()->beginEvent(nullptr, gl::EntryPoint::Begin, marker, marker);
744745
mMarkerStack.push(std::string(marker));
745746
return angle::Result::Continue;
746747
}
@@ -752,7 +753,7 @@ angle::Result Context11::popGroupMarker()
752753
{
753754
marker = mMarkerStack.top().c_str();
754755
mMarkerStack.pop();
755-
mRenderer->getAnnotator()->endEvent(marker);
756+
mRenderer->getAnnotator()->endEvent(nullptr, marker, gl::EntryPoint::Begin);
756757
}
757758
return angle::Result::Continue;
758759
}

src/libANGLE/renderer/d3d/d3d11/DebugAnnotator11.cpp

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,11 @@ DebugAnnotator11::DebugAnnotator11() {}
2020
DebugAnnotator11::~DebugAnnotator11() {}
2121

2222
void DebugAnnotator11::beginEvent(gl::Context *context,
23+
gl::EntryPoint entryPoint,
2324
const char *eventName,
2425
const char *eventMessage)
2526
{
26-
angle::LoggingAnnotator::beginEvent(context, eventName, eventMessage);
27+
angle::LoggingAnnotator::beginEvent(context, entryPoint, eventName, eventMessage);
2728
if (loggingEnabledForThisThread())
2829
{
2930
std::mbstate_t state = std::mbstate_t();
@@ -32,9 +33,11 @@ void DebugAnnotator11::beginEvent(gl::Context *context,
3233
}
3334
}
3435

35-
void DebugAnnotator11::endEvent(const char *eventName)
36+
void DebugAnnotator11::endEvent(gl::Context *context,
37+
const char *eventName,
38+
gl::EntryPoint entryPoint)
3639
{
37-
angle::LoggingAnnotator::endEvent(eventName);
40+
angle::LoggingAnnotator::endEvent(context, eventName, entryPoint);
3841
if (loggingEnabledForThisThread())
3942
{
4043
mUserDefinedAnnotation->EndEvent();

src/libANGLE/renderer/d3d/d3d11/DebugAnnotator11.h

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,11 @@ class DebugAnnotator11 : public angle::LoggingAnnotator
2323
~DebugAnnotator11() override;
2424
void initialize(ID3D11DeviceContext *context);
2525
void release();
26-
void beginEvent(gl::Context *context, const char *eventName, const char *eventMessage) override;
27-
void endEvent(const char *eventName) override;
26+
void beginEvent(gl::Context *context,
27+
gl::EntryPoint entryPoint,
28+
const char *eventName,
29+
const char *eventMessage) override;
30+
void endEvent(gl::Context *context, const char *eventName, gl::EntryPoint entryPoint) override;
2831
void setMarker(const char *markerName) override;
2932
bool getStatus() override;
3033

0 commit comments

Comments
 (0)