xref: /aosp_15_r20/external/angle/src/common/event_tracer.cpp (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1*8975f5c5SAndroid Build Coastguard Worker // Copyright 2012 The ANGLE Project Authors. All rights reserved.
2*8975f5c5SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
3*8975f5c5SAndroid Build Coastguard Worker // found in the LICENSE file.
4*8975f5c5SAndroid Build Coastguard Worker 
5*8975f5c5SAndroid Build Coastguard Worker #include "common/event_tracer.h"
6*8975f5c5SAndroid Build Coastguard Worker 
7*8975f5c5SAndroid Build Coastguard Worker #include "common/debug.h"
8*8975f5c5SAndroid Build Coastguard Worker 
9*8975f5c5SAndroid Build Coastguard Worker namespace angle
10*8975f5c5SAndroid Build Coastguard Worker {
11*8975f5c5SAndroid Build Coastguard Worker 
GetTraceCategoryEnabledFlag(PlatformMethods * platform,const char * name)12*8975f5c5SAndroid Build Coastguard Worker const unsigned char *GetTraceCategoryEnabledFlag(PlatformMethods *platform, const char *name)
13*8975f5c5SAndroid Build Coastguard Worker {
14*8975f5c5SAndroid Build Coastguard Worker     ASSERT(platform);
15*8975f5c5SAndroid Build Coastguard Worker 
16*8975f5c5SAndroid Build Coastguard Worker     const unsigned char *categoryEnabledFlag =
17*8975f5c5SAndroid Build Coastguard Worker         platform->getTraceCategoryEnabledFlag(platform, name);
18*8975f5c5SAndroid Build Coastguard Worker     if (categoryEnabledFlag != nullptr)
19*8975f5c5SAndroid Build Coastguard Worker     {
20*8975f5c5SAndroid Build Coastguard Worker         return categoryEnabledFlag;
21*8975f5c5SAndroid Build Coastguard Worker     }
22*8975f5c5SAndroid Build Coastguard Worker 
23*8975f5c5SAndroid Build Coastguard Worker     static unsigned char disabled = 0;
24*8975f5c5SAndroid Build Coastguard Worker     return &disabled;
25*8975f5c5SAndroid Build Coastguard Worker }
26*8975f5c5SAndroid Build Coastguard Worker 
AddTraceEvent(PlatformMethods * platform,char phase,const unsigned char * categoryGroupEnabled,const char * name,unsigned long long id,int numArgs,const char ** argNames,const unsigned char * argTypes,const unsigned long long * argValues,unsigned char flags)27*8975f5c5SAndroid Build Coastguard Worker angle::TraceEventHandle AddTraceEvent(PlatformMethods *platform,
28*8975f5c5SAndroid Build Coastguard Worker                                       char phase,
29*8975f5c5SAndroid Build Coastguard Worker                                       const unsigned char *categoryGroupEnabled,
30*8975f5c5SAndroid Build Coastguard Worker                                       const char *name,
31*8975f5c5SAndroid Build Coastguard Worker                                       unsigned long long id,
32*8975f5c5SAndroid Build Coastguard Worker                                       int numArgs,
33*8975f5c5SAndroid Build Coastguard Worker                                       const char **argNames,
34*8975f5c5SAndroid Build Coastguard Worker                                       const unsigned char *argTypes,
35*8975f5c5SAndroid Build Coastguard Worker                                       const unsigned long long *argValues,
36*8975f5c5SAndroid Build Coastguard Worker                                       unsigned char flags)
37*8975f5c5SAndroid Build Coastguard Worker {
38*8975f5c5SAndroid Build Coastguard Worker     ASSERT(platform);
39*8975f5c5SAndroid Build Coastguard Worker 
40*8975f5c5SAndroid Build Coastguard Worker     double timestamp = platform->monotonicallyIncreasingTime(platform);
41*8975f5c5SAndroid Build Coastguard Worker 
42*8975f5c5SAndroid Build Coastguard Worker     if (timestamp != 0)
43*8975f5c5SAndroid Build Coastguard Worker     {
44*8975f5c5SAndroid Build Coastguard Worker         angle::TraceEventHandle handle =
45*8975f5c5SAndroid Build Coastguard Worker             platform->addTraceEvent(platform, phase, categoryGroupEnabled, name, id, timestamp,
46*8975f5c5SAndroid Build Coastguard Worker                                     numArgs, argNames, argTypes, argValues, flags);
47*8975f5c5SAndroid Build Coastguard Worker         return handle;
48*8975f5c5SAndroid Build Coastguard Worker     }
49*8975f5c5SAndroid Build Coastguard Worker 
50*8975f5c5SAndroid Build Coastguard Worker     return static_cast<angle::TraceEventHandle>(0);
51*8975f5c5SAndroid Build Coastguard Worker }
52*8975f5c5SAndroid Build Coastguard Worker 
53*8975f5c5SAndroid Build Coastguard Worker }  // namespace angle
54