aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkTraceEvent.h
diff options
context:
space:
mode:
authorGravatar Brian Osman <brianosman@google.com>2017-07-21 08:57:53 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-07-21 13:47:23 +0000
commit594838a44dd1253e71c1b0330018d2b5180ccc32 (patch)
tree4e5a79b861f491468fc23a5bf582166bc43e21f3 /src/core/SkTraceEvent.h
parent39f1a9589bf4e0818aaeaa9c2fc4ecbe1e2ec23e (diff)
Delete more event tracing macros (take 2)
Also tried to clean up the comments to be clearer. Re-land of: https://skia-review.googlesource.com/25364, with some macros that are used by Flutter restored. Change-Id: I648815c275dfea2ec83a382a633af8d9f7780512 Reviewed-on: https://skia-review.googlesource.com/25561 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Brian Osman <brianosman@google.com>
Diffstat (limited to 'src/core/SkTraceEvent.h')
-rw-r--r--src/core/SkTraceEvent.h194
1 files changed, 2 insertions, 192 deletions
diff --git a/src/core/SkTraceEvent.h b/src/core/SkTraceEvent.h
index 05dc340fa2..6e10c102a1 100644
--- a/src/core/SkTraceEvent.h
+++ b/src/core/SkTraceEvent.h
@@ -22,42 +22,6 @@
#define TRACE_STR_COPY(str) \
skia::tracing_internals::TraceStringWithCopy(str)
-// By default, uint64 ID argument values are not mangled with the Process ID in
-// TRACE_EVENT_ASYNC macros. Use this macro to force Process ID mangling.
-#define TRACE_ID_MANGLE(id) \
- skia::tracing_internals::TraceID::ForceMangle(id)
-
-// By default, pointers are mangled with the Process ID in TRACE_EVENT_ASYNC
-// macros. Use this macro to prevent Process ID mangling.
-#define TRACE_ID_DONT_MANGLE(id) \
- skia::tracing_internals::TraceID::DontMangle(id)
-
-// Sets the current sample state to the given category and name (both must be
-// constant strings). These states are intended for a sampling profiler.
-// Implementation note: we store category and name together because we don't
-// want the inconsistency/expense of storing two pointers.
-// |thread_bucket| is [0..2] and is used to statically isolate samples in one
-// thread from others.
-#define TRACE_EVENT_SET_SAMPLING_STATE_FOR_BUCKET( \
- bucket_number, category, name) \
- skia::tracing_internals:: \
- TraceEventSamplingStateScope<bucket_number>::Set(category "\0" name)
-
-// Returns a current sampling state of the given bucket.
-#define TRACE_EVENT_GET_SAMPLING_STATE_FOR_BUCKET(bucket_number) \
- skia::tracing_internals::TraceEventSamplingStateScope<bucket_number>::Current()
-
-// Creates a scope of a sampling state of the given bucket.
-//
-// { // The sampling state is set within this scope.
-// TRACE_EVENT_SAMPLING_STATE_SCOPE_FOR_BUCKET(0, "category", "name");
-// ...;
-// }
-#define TRACE_EVENT_SCOPED_SAMPLING_STATE_FOR_BUCKET( \
- bucket_number, category, name) \
- skia::tracing_internals::TraceEventSamplingStateScope<bucket_number> \
- traceEventSamplingScope(category "\0" name);
-
#define INTERNAL_TRACE_EVENT_CATEGORY_GROUP_ENABLED_FOR_RECORDING_MODE() \
*INTERNAL_TRACE_EVENT_UID(category_group_enabled) & \
@@ -77,12 +41,6 @@
#define TRACE_EVENT_API_GET_CATEGORY_GROUP_ENABLED \
SkEventTracer::GetInstance()->getCategoryGroupEnabled
-// Get the number of times traces have been recorded. This is used to implement
-// the TRACE_EVENT_IS_NEW_TRACE facility.
-// unsigned int TRACE_EVENT_API_GET_NUM_TRACES_RECORDED()
-#define TRACE_EVENT_API_GET_NUM_TRACES_RECORDED \
- SkEventTracer::GetInstance()->getNumTracesRecorded
-
// Add a trace event to the platform tracing system.
// SkEventTracer::Handle TRACE_EVENT_API_ADD_TRACE_EVENT(
// char phase,
@@ -113,13 +71,6 @@
// Defines visibility for classes in trace_event.h
#define TRACE_EVENT_API_CLASS_EXPORT SK_API
-// The thread buckets for the sampling profiler.
-TRACE_EVENT_API_CLASS_EXPORT extern \
- TRACE_EVENT_API_ATOMIC_WORD g_trace_state[3];
-
-#define TRACE_EVENT_API_THREAD_BUCKET(thread_bucket) \
- g_trace_state[thread_bucket]
-
////////////////////////////////////////////////////////////////////////////////
// Implementation detail: trace event macros create temporary variables
@@ -184,43 +135,6 @@ TRACE_EVENT_API_CLASS_EXPORT extern \
INTERNAL_TRACE_EVENT_UID(category_group_enabled), name, h); \
}
-// Implementation detail: internal macro to create static category and add
-// event if the category is enabled.
-#define INTERNAL_TRACE_EVENT_ADD_WITH_ID(phase, category_group, name, id, \
- flags, ...) \
- do { \
- INTERNAL_TRACE_EVENT_GET_CATEGORY_INFO(category_group); \
- if (INTERNAL_TRACE_EVENT_CATEGORY_GROUP_ENABLED_FOR_RECORDING_MODE()) { \
- unsigned char trace_event_flags = flags | TRACE_EVENT_FLAG_HAS_ID; \
- skia::tracing_internals::TraceID trace_event_trace_id( \
- id, &trace_event_flags); \
- skia::tracing_internals::AddTraceEvent( \
- phase, INTERNAL_TRACE_EVENT_UID(category_group_enabled), \
- name, trace_event_trace_id.data(), trace_event_flags, \
- ##__VA_ARGS__); \
- } \
- } while (0)
-
-// Implementation detail: internal macro to create static category and add
-// event if the category is enabled.
-#define INTERNAL_TRACE_EVENT_ADD_WITH_ID_TID_AND_TIMESTAMP(phase, \
- category_group, name, id, thread_id, flags, ...) \
- do { \
- INTERNAL_TRACE_EVENT_GET_CATEGORY_INFO(category_group); \
- if (INTERNAL_TRACE_EVENT_CATEGORY_GROUP_ENABLED_FOR_RECORDING_MODE()) { \
- unsigned char trace_event_flags = flags | TRACE_EVENT_FLAG_HAS_ID; \
- skia::tracing_internals::TraceID trace_event_trace_id( \
- id, &trace_event_flags); \
- skia::tracing_internals::AddTraceEventWithThreadIdAndTimestamp( \
- phase, INTERNAL_TRACE_EVENT_UID(category_group_enabled), \
- name, trace_event_trace_id.data(), \
- thread_id, base::TimeTicks::FromInternalValue(timestamp), \
- trace_event_flags, ##__VA_ARGS__); \
- } \
- } while (0)
-
-#define INTERNAL_TRACE_MEMORY(category, name)
-
namespace skia {
namespace tracing_internals {
@@ -234,61 +148,11 @@ const uint64_t kNoEventId = 0;
// collide when the same pointer is used on different processes.
class TraceID {
public:
- class DontMangle {
- public:
- explicit DontMangle(const void* id)
- : data_(static_cast<uint64_t>(
- reinterpret_cast<uintptr_t>(id))) {}
- explicit DontMangle(uint64_t id) : data_(id) {}
- explicit DontMangle(unsigned int id) : data_(id) {}
- explicit DontMangle(unsigned short id) : data_(id) {}
- explicit DontMangle(unsigned char id) : data_(id) {}
- explicit DontMangle(long long id)
- : data_(static_cast<uint64_t>(id)) {}
- explicit DontMangle(long id)
- : data_(static_cast<uint64_t>(id)) {}
- explicit DontMangle(int id)
- : data_(static_cast<uint64_t>(id)) {}
- explicit DontMangle(short id)
- : data_(static_cast<uint64_t>(id)) {}
- explicit DontMangle(signed char id)
- : data_(static_cast<uint64_t>(id)) {}
- uint64_t data() const { return data_; }
- private:
- uint64_t data_;
- };
-
- class ForceMangle {
- public:
- explicit ForceMangle(uint64_t id) : data_(id) {}
- explicit ForceMangle(unsigned int id) : data_(id) {}
- explicit ForceMangle(unsigned short id) : data_(id) {}
- explicit ForceMangle(unsigned char id) : data_(id) {}
- explicit ForceMangle(long long id)
- : data_(static_cast<uint64_t>(id)) {}
- explicit ForceMangle(long id)
- : data_(static_cast<uint64_t>(id)) {}
- explicit ForceMangle(int id)
- : data_(static_cast<uint64_t>(id)) {}
- explicit ForceMangle(short id)
- : data_(static_cast<uint64_t>(id)) {}
- explicit ForceMangle(signed char id)
- : data_(static_cast<uint64_t>(id)) {}
- uint64_t data() const { return data_; }
- private:
- uint64_t data_;
- };
-
TraceID(const void* id, unsigned char* flags)
: data_(static_cast<uint64_t>(
reinterpret_cast<uintptr_t>(id))) {
*flags |= TRACE_EVENT_FLAG_MANGLE_ID;
}
- TraceID(ForceMangle id, unsigned char* flags) : data_(id.data()) {
- *flags |= TRACE_EVENT_FLAG_MANGLE_ID;
- }
- TraceID(DontMangle id, unsigned char* flags) : data_(id.data()) {
- }
TraceID(uint64_t id, unsigned char* flags)
: data_(id) { (void)flags; }
TraceID(unsigned int id, unsigned char* flags)
@@ -370,10 +234,8 @@ INTERNAL_DECLARE_SET_TRACE_VALUE_INT(short, TRACE_VALUE_TYPE_INT)
INTERNAL_DECLARE_SET_TRACE_VALUE_INT(signed char, TRACE_VALUE_TYPE_INT)
INTERNAL_DECLARE_SET_TRACE_VALUE(bool, as_bool, TRACE_VALUE_TYPE_BOOL)
INTERNAL_DECLARE_SET_TRACE_VALUE(double, as_double, TRACE_VALUE_TYPE_DOUBLE)
-INTERNAL_DECLARE_SET_TRACE_VALUE(const void*, as_pointer,
- TRACE_VALUE_TYPE_POINTER)
-INTERNAL_DECLARE_SET_TRACE_VALUE(const char*, as_string,
- TRACE_VALUE_TYPE_STRING)
+INTERNAL_DECLARE_SET_TRACE_VALUE(const void*, as_pointer, TRACE_VALUE_TYPE_POINTER)
+INTERNAL_DECLARE_SET_TRACE_VALUE(const char*, as_string, TRACE_VALUE_TYPE_STRING)
INTERNAL_DECLARE_SET_TRACE_VALUE(const TraceStringWithCopy&, as_string,
TRACE_VALUE_TYPE_COPY_STRING)
@@ -476,58 +338,6 @@ class TRACE_EVENT_API_CLASS_EXPORT ScopedTracer {
Data data_;
};
-// Used by TRACE_EVENT_BINARY_EFFICIENTx macro. Do not use directly.
-class TRACE_EVENT_API_CLASS_EXPORT ScopedTraceBinaryEfficient {
- public:
- ScopedTraceBinaryEfficient(const char* category_group, const char* name);
- ~ScopedTraceBinaryEfficient();
-
- private:
- const uint8_t* category_group_enabled_;
- const char* name_;
- SkEventTracer::Handle event_handle_;
-};
-
-// This macro generates less code then TRACE_EVENT0 but is also
-// slower to execute when tracing is off. It should generally only be
-// used with code that is seldom executed or conditionally executed
-// when debugging.
-// For now the category_group must be "gpu".
-#define TRACE_EVENT_BINARY_EFFICIENT0(category_group, name) \
- skia::tracing_internals::ScopedTraceBinaryEfficient \
- INTERNAL_TRACE_EVENT_UID(scoped_trace)(category_group, name);
-
-// TraceEventSamplingStateScope records the current sampling state
-// and sets a new sampling state. When the scope exists, it restores
-// the sampling state having recorded.
-template<size_t BucketNumber>
-class TraceEventSamplingStateScope {
- public:
- TraceEventSamplingStateScope(const char* category_and_name) {
- previous_state_ = TraceEventSamplingStateScope<BucketNumber>::Current();
- TraceEventSamplingStateScope<BucketNumber>::Set(category_and_name);
- }
-
- ~TraceEventSamplingStateScope() {
- TraceEventSamplingStateScope<BucketNumber>::Set(previous_state_);
- }
-
- static inline const char* Current() {
- return reinterpret_cast<const char*>(TRACE_EVENT_API_ATOMIC_LOAD(
- g_trace_state[BucketNumber]));
- }
-
- static inline void Set(const char* category_and_name) {
- TRACE_EVENT_API_ATOMIC_STORE(
- g_trace_state[BucketNumber],
- reinterpret_cast<TRACE_EVENT_API_ATOMIC_WORD>(
- const_cast<char*>(category_and_name)));
- }
-
- private:
- const char* previous_state_;
-};
-
} // namespace tracing_internals
} // namespace skia