OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2014 Google Inc. | 2 * Copyright 2014 Google Inc. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 | 7 |
8 #ifndef GrTracing_DEFINED | 8 #ifndef GrTracing_DEFINED |
9 #define GrTracing_DEFINED | 9 #define GrTracing_DEFINED |
10 | 10 |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
51 // TODO add trace marker | 51 // TODO add trace marker |
52 } | 52 } |
53 | 53 |
54 private: | 54 private: |
55 SkTLazy<GrGpuTraceMarker> fTraceMarker; | 55 SkTLazy<GrGpuTraceMarker> fTraceMarker; |
56 }; | 56 }; |
57 | 57 |
58 /** | 58 /** |
59 * GR_CREATE_TRACE_MARKER will place begin and end trace markers for both | 59 * GR_CREATE_TRACE_MARKER will place begin and end trace markers for both |
60 * cpu and gpu (if gpu tracing enabled) for the current scope. | 60 * cpu and gpu (if gpu tracing enabled) for the current scope. |
61 * marker is of type const char* and target is of type GrDrawTarget* | 61 * name is of type const char* and target is of type GrDrawTarget* |
62 */ | 62 */ |
63 #define GR_CREATE_TRACE_MARKER(name, target)
\ | 63 #define GR_CREATE_TRACE_MARKER(name, target)
\ |
64 /* Chromium tracing */
\ | 64 /* Chromium tracing */
\ |
65 static int SK_MACRO_APPEND_LINE(name_counter) = 0;
\ | 65 static int SK_MACRO_APPEND_LINE(name_counter) = 0;
\ |
66 bool SK_MACRO_APPEND_LINE(gpuTracingEnabled);
\ | 66 bool SK_MACRO_APPEND_LINE(gpuTracingEnabled);
\ |
67 TRACE_EVENT_CATEGORY_GROUP_ENABLED(TRACE_DISABLED_BY_DEFAULT("skia.gpu"),
\ | 67 TRACE_EVENT_CATEGORY_GROUP_ENABLED(TRACE_DISABLED_BY_DEFAULT("skia.gpu"),
\ |
68 &SK_MACRO_APPEND_LINE(gpuTracingEnabled))
; \ | 68 &SK_MACRO_APPEND_LINE(gpuTracingEnabled))
; \ |
69 if (SK_MACRO_APPEND_LINE(gpuTracingEnabled)) {
\ | 69 if (SK_MACRO_APPEND_LINE(gpuTracingEnabled)) {
\ |
70 INTERNAL_GR_CREATE_TRACE_MARKER_SCOPED(name, SK_MACRO_APPEND_LINE(name_c
ounter), target) \ | 70 INTERNAL_GR_CREATE_TRACE_MARKER_SCOPED(name, SK_MACRO_APPEND_LINE(name_c
ounter), target) \ |
71 }
\ | 71 }
\ |
72 INTERNAL_TRACE_EVENT_ADD_SCOPED(TRACE_DISABLED_BY_DEFAULT("skia.gpu"), name,
\ | 72 INTERNAL_TRACE_EVENT_ADD_SCOPED(TRACE_DISABLED_BY_DEFAULT("skia.gpu"), name,
\ |
73 "id", SK_MACRO_APPEND_LINE(name_counter)); | 73 "id", SK_MACRO_APPEND_LINE(name_counter)); |
74 | 74 |
75 #define INTERNAL_GR_CREATE_TRACE_MARKER_SCOPED(name, name_counter, target)
\ | 75 #define INTERNAL_GR_CREATE_TRACE_MARKER_SCOPED(name, name_counter, target)
\ |
76 static const char* SK_MACRO_APPEND_LINE(static_name) = name;
\ | 76 static const char* SK_MACRO_APPEND_LINE(static_name) = name;
\ |
77 INTERNAL_GR_CREATE_TRACE_MARKER(SK_MACRO_APPEND_LINE(static_name),
\ | 77 INTERNAL_GR_CREATE_TRACE_MARKER(SK_MACRO_APPEND_LINE(static_name),
\ |
78 name_counter,
\ | 78 name_counter,
\ |
79 target)
\ | 79 target)
\ |
80 sk_atomic_inc(&name_counter); | 80 sk_atomic_inc(&name_counter); |
81 | 81 |
82 #define INTERNAL_GR_CREATE_TRACE_MARKER(name, name_counter, target, ...)
\ | 82 #define INTERNAL_GR_CREATE_TRACE_MARKER(name, name_counter, target, ...)
\ |
83 GR_CREATE_GPU_TRACE_MARKER(name, name_counter, target)
\ | 83 GR_CREATE_GPU_TRACE_MARKER(name, name_counter, target)
\ |
84 | 84 |
85 #define GR_CREATE_GPU_TRACE_MARKER(name, name_counter, target)
\ | 85 #define GR_CREATE_GPU_TRACE_MARKER(name, name_counter, target)
\ |
86 GrGpuTraceMarkerGenerator SK_MACRO_APPEND_LINE(TMG)(target);
\ | 86 GrGpuTraceMarkerGenerator SK_MACRO_APPEND_LINE(TMG)(target);
\ |
87 SK_MACRO_APPEND_LINE(TMG).initialize(name, &name_counter);
\ | 87 SK_MACRO_APPEND_LINE(TMG).initialize(name, &name_counter);
\ |
88 | 88 |
| 89 /** |
| 90 * Context level GrTracing macros, classname and op are const char*, context is
GrContext |
| 91 * TODO can we just have one set of macros? Probably. |
| 92 */ |
89 #define GR_CREATE_TRACE_MARKER_CONTEXT(classname, op, context)
\ | 93 #define GR_CREATE_TRACE_MARKER_CONTEXT(classname, op, context)
\ |
90 /* Chromium tracing */
\ | 94 /* Chromium tracing */
\ |
91 static int SK_MACRO_APPEND_LINE(name_counter) = 0;
\ | 95 static int SK_MACRO_APPEND_LINE(name_counter) = 0;
\ |
92 bool SK_MACRO_APPEND_LINE(gpuTracingEnabled);
\ | 96 bool SK_MACRO_APPEND_LINE(gpuTracingEnabled);
\ |
93 TRACE_EVENT_CATEGORY_GROUP_ENABLED(TRACE_DISABLED_BY_DEFAULT("skia.gpu"),
\ | 97 TRACE_EVENT_CATEGORY_GROUP_ENABLED(TRACE_DISABLED_BY_DEFAULT("skia.gpu"),
\ |
94 &SK_MACRO_APPEND_LINE(gpuTracingEnabled))
; \ | 98 &SK_MACRO_APPEND_LINE(gpuTracingEnabled))
; \ |
95 if (SK_MACRO_APPEND_LINE(gpuTracingEnabled)) {
\ | 99 if (SK_MACRO_APPEND_LINE(gpuTracingEnabled)) {
\ |
96 INTERNAL_GR_CREATE_TRACE_MARKER_SCOPED_C(classname "::" op,
\ | 100 INTERNAL_GR_CREATE_TRACE_MARKER_SCOPED_C(classname "::" op,
\ |
97 SK_MACRO_APPEND_LINE(name_count
er), context) \ | 101 SK_MACRO_APPEND_LINE(name_count
er), context) \ |
98 }
\ | 102 }
\ |
99 GR_AUDIT_TRAIL_ADDOP(context->getAuditTrail(), SkString(op));
\ | 103 GR_AUDIT_TRAIL_AUTO_FRAME(context->getAuditTrail(), classname "::" op);
\ |
100 INTERNAL_TRACE_EVENT_ADD_SCOPED(TRACE_DISABLED_BY_DEFAULT("skia.gpu"), class
name "::" op, \ | 104 INTERNAL_TRACE_EVENT_ADD_SCOPED(TRACE_DISABLED_BY_DEFAULT("skia.gpu"), class
name "::" op, \ |
101 "id", SK_MACRO_APPEND_LINE(name_counter)); | 105 "id", SK_MACRO_APPEND_LINE(name_counter)); |
102 | 106 |
103 #define INTERNAL_GR_CREATE_TRACE_MARKER_SCOPED_C(name, name_counter, context)
\ | 107 #define INTERNAL_GR_CREATE_TRACE_MARKER_SCOPED_C(name, name_counter, context)
\ |
104 static const char* SK_MACRO_APPEND_LINE(static_name) = name;
\ | 108 static const char* SK_MACRO_APPEND_LINE(static_name) = name;
\ |
105 INTERNAL_GR_CREATE_TRACE_MARKER_C(SK_MACRO_APPEND_LINE(static_name),
\ | 109 INTERNAL_GR_CREATE_TRACE_MARKER_C(SK_MACRO_APPEND_LINE(static_name),
\ |
106 name_counter,
\ | 110 name_counter,
\ |
107 context)
\ | 111 context)
\ |
108 sk_atomic_inc(&name_counter); | 112 sk_atomic_inc(&name_counter); |
109 | 113 |
110 #define INTERNAL_GR_CREATE_TRACE_MARKER_C(name, name_counter, context, ...)
\ | 114 #define INTERNAL_GR_CREATE_TRACE_MARKER_C(name, name_counter, context, ...)
\ |
111 GR_CREATE_GPU_TRACE_MARKER_C(name, name_counter, context)
\ | 115 GR_CREATE_GPU_TRACE_MARKER_C(name, name_counter, context)
\ |
112 | 116 |
113 #define GR_CREATE_GPU_TRACE_MARKER_C(name, name_counter, context)
\ | 117 #define GR_CREATE_GPU_TRACE_MARKER_C(name, name_counter, context)
\ |
114 GrGpuTraceMarkerGeneratorContext SK_MACRO_APPEND_LINE(TMG)(context);
\ | 118 GrGpuTraceMarkerGeneratorContext SK_MACRO_APPEND_LINE(TMG)(context);
\ |
115 SK_MACRO_APPEND_LINE(TMG).initialize(name, &name_counter);
\ | 119 SK_MACRO_APPEND_LINE(TMG).initialize(name, &name_counter);
\ |
116 | 120 |
117 #endif | 121 #endif |
OLD | NEW |