diff options
author | Derek Sollenberger <djsollen@google.com> | 2017-08-17 12:34:54 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-08-17 16:57:33 +0000 |
commit | 559f534759f616f1d9a173e0045acead5ee4cae1 (patch) | |
tree | 47f1aaecfb6479d031180852d21a61274c5d24c5 /src/core/SkTraceEventCommon.h | |
parent | 0741818e7ab4e9ea8505b8a8687412f0e3804c65 (diff) |
Add atrace events for bitmap uploads to Android framework builds.
Change-Id: I736d82ab4ab66860a03f839bedc4f7614d38c6e6
Reviewed-on: https://skia-review.googlesource.com/35840
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Derek Sollenberger <djsollen@google.com>
Diffstat (limited to 'src/core/SkTraceEventCommon.h')
-rw-r--r-- | src/core/SkTraceEventCommon.h | 36 |
1 files changed, 27 insertions, 9 deletions
diff --git a/src/core/SkTraceEventCommon.h b/src/core/SkTraceEventCommon.h index 92777264eb..35368f5eb2 100644 --- a/src/core/SkTraceEventCommon.h +++ b/src/core/SkTraceEventCommon.h @@ -54,26 +54,42 @@ #error "Another copy of this file has already been included." #endif -#ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK - -// If profiling Skia within the Android framework, setting this to 1 will route all Skia -// tracing events to ATrace. -#ifndef SK_TRACE_EVENTS_IN_FRAMEWORK -#define SK_TRACE_EVENTS_IN_FRAMEWORK 0 -#endif - #define TRACE_EMPTY do {} while (0) -#if SK_TRACE_EVENTS_IN_FRAMEWORK +#ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK #include <utils/Trace.h> struct SkAndroidFrameworkTraceUtil { + SkAndroidFrameworkTraceUtil(const char* name) { ATRACE_BEGIN(name); } + SkAndroidFrameworkTraceUtil(bool, const char* fmt, ...) { + if (CC_LIKELY(!ATRACE_ENABLED())) return; + + const int BUFFER_SIZE = 256; + va_list ap; + char buf[BUFFER_SIZE]; + + va_start(ap, fmt); + vsnprintf(buf, BUFFER_SIZE, fmt, ap); + va_end(ap); + + ATRACE_BEGIN(buf); + } ~SkAndroidFrameworkTraceUtil() { ATRACE_END(); } }; +#define ATRACE_ANDROID_FRAMEWORK(fmt, ...) SkAndroidFrameworkTraceUtil __trace(true, fmt, ##__VA_ARGS__) + +// If profiling Skia within the Android framework, setting this to 1 will route all Skia +// tracing events to ATrace. +#ifndef SK_TRACE_EVENTS_IN_FRAMEWORK +#define SK_TRACE_EVENTS_IN_FRAMEWORK 0 +#endif + +#if SK_TRACE_EVENTS_IN_FRAMEWORK + // Records a pair of begin and end events called "name" for the current scope, with 0, 1 or 2 // associated arguments. In the framework, the arguments are ignored. #define TRACE_EVENT0(category_group, name) \ @@ -135,6 +151,8 @@ struct SkAndroidFrameworkTraceUtil { #else // !SK_BUILD_FOR_ANDROID_FRAMEWORK +#define ATRACE_ANDROID_FRAMEWORK(fmt, ...) TRACE_EMPTY + // Records a pair of begin and end events called "name" for the current scope, with 0, 1 or 2 // associated arguments. If the category is not enabled, then this does nothing. #define TRACE_EVENT0(category_group, name) \ |