| 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 |