summaryrefslogtreecommitdiff
path: root/tools/profiler/public/ProfilerMarkers.h
diff options
context:
space:
mode:
Diffstat (limited to 'tools/profiler/public/ProfilerMarkers.h')
-rw-r--r--tools/profiler/public/ProfilerMarkers.h193
1 files changed, 0 insertions, 193 deletions
diff --git a/tools/profiler/public/ProfilerMarkers.h b/tools/profiler/public/ProfilerMarkers.h
deleted file mode 100644
index 29711f210c..0000000000
--- a/tools/profiler/public/ProfilerMarkers.h
+++ /dev/null
@@ -1,193 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#ifndef PROFILER_MARKERS_H
-#define PROFILER_MARKERS_H
-
-#include "mozilla/TimeStamp.h"
-#include "mozilla/Attributes.h"
-
-namespace mozilla {
-namespace layers {
-class Layer;
-} // namespace layers
-} // namespace mozilla
-
-class SpliceableJSONWriter;
-class UniqueStacks;
-
-/**
- * This is an abstract object that can be implied to supply
- * data to be attached with a profiler marker. Most data inserted
- * into a profile is stored in a circular buffer. This buffer
- * typically wraps around and overwrites most entries. Because
- * of this, this structure is designed to defer the work of
- * prepare the payload only when 'preparePayload' is called.
- *
- * Note when implementing that this object is typically constructed
- * on a particular thread but 'preparePayload' and the destructor
- * is called from the main thread.
- */
-class ProfilerMarkerPayload
-{
-public:
- /**
- * ProfilerMarkerPayload takes ownership of aStack
- */
- explicit ProfilerMarkerPayload(ProfilerBacktrace* aStack = nullptr);
- ProfilerMarkerPayload(const mozilla::TimeStamp& aStartTime,
- const mozilla::TimeStamp& aEndTime,
- ProfilerBacktrace* aStack = nullptr);
-
- /**
- * Called from the main thread
- */
- virtual ~ProfilerMarkerPayload();
-
- /**
- * Called from the main thread
- */
- virtual void StreamPayload(SpliceableJSONWriter& aWriter,
- UniqueStacks& aUniqueStacks) = 0;
-
- mozilla::TimeStamp GetStartTime() const { return mStartTime; }
-
-protected:
- /**
- * Called from the main thread
- */
- void streamCommonProps(const char* aMarkerType, SpliceableJSONWriter& aWriter,
- UniqueStacks& aUniqueStacks);
-
- void SetStack(ProfilerBacktrace* aStack) { mStack = aStack; }
-
-private:
- mozilla::TimeStamp mStartTime;
- mozilla::TimeStamp mEndTime;
- ProfilerBacktrace* mStack;
-};
-
-class ProfilerMarkerTracing : public ProfilerMarkerPayload
-{
-public:
- ProfilerMarkerTracing(const char* aCategory, TracingMetadata aMetaData);
- ProfilerMarkerTracing(const char* aCategory, TracingMetadata aMetaData, ProfilerBacktrace* aCause);
-
- const char *GetCategory() const { return mCategory; }
- TracingMetadata GetMetaData() const { return mMetaData; }
-
- virtual void StreamPayload(SpliceableJSONWriter& aWriter,
- UniqueStacks& aUniqueStacks) override;
-
-private:
- const char *mCategory;
- TracingMetadata mMetaData;
-};
-
-
-#ifndef SPS_STANDALONE
-#include "gfxASurface.h"
-class ProfilerMarkerImagePayload : public ProfilerMarkerPayload
-{
-public:
- explicit ProfilerMarkerImagePayload(gfxASurface *aImg);
-
- virtual void StreamPayload(SpliceableJSONWriter& aWriter,
- UniqueStacks& aUniqueStacks) override;
-
-private:
- RefPtr<gfxASurface> mImg;
-};
-
-class IOMarkerPayload : public ProfilerMarkerPayload
-{
-public:
- IOMarkerPayload(const char* aSource, const char* aFilename, const mozilla::TimeStamp& aStartTime,
- const mozilla::TimeStamp& aEndTime,
- ProfilerBacktrace* aStack);
- ~IOMarkerPayload();
-
- virtual void StreamPayload(SpliceableJSONWriter& aWriter,
- UniqueStacks& aUniqueStacks) override;
-
-private:
- const char* mSource;
- char* mFilename;
-};
-
-/**
- * Contains the translation applied to a 2d layer so we can
- * track the layer position at each frame.
- */
-class LayerTranslationPayload : public ProfilerMarkerPayload
-{
-public:
- LayerTranslationPayload(mozilla::layers::Layer* aLayer,
- mozilla::gfx::Point aPoint);
-
- virtual void StreamPayload(SpliceableJSONWriter& aWriter,
- UniqueStacks& aUniqueStacks) override;
-
-private:
- mozilla::layers::Layer* mLayer;
- mozilla::gfx::Point mPoint;
-};
-
-#include "Units.h" // For ScreenIntPoint
-
-/**
- * Tracks when touch events are processed by gecko, not when
- * the touch actually occured in gonk/android.
- */
-class TouchDataPayload : public ProfilerMarkerPayload
-{
-public:
- explicit TouchDataPayload(const mozilla::ScreenIntPoint& aPoint);
- virtual ~TouchDataPayload() {}
-
- virtual void StreamPayload(SpliceableJSONWriter& aWriter,
- UniqueStacks& aUniqueStacks) override;
-
-private:
- mozilla::ScreenIntPoint mPoint;
-};
-
-/**
- * Tracks when a vsync occurs according to the HardwareComposer.
- */
-class VsyncPayload : public ProfilerMarkerPayload
-{
-public:
- explicit VsyncPayload(mozilla::TimeStamp aVsyncTimestamp);
- virtual ~VsyncPayload() {}
-
- virtual void StreamPayload(SpliceableJSONWriter& aWriter,
- UniqueStacks& aUniqueStacks) override;
-
-private:
- mozilla::TimeStamp mVsyncTimestamp;
-};
-
-class GPUMarkerPayload : public ProfilerMarkerPayload
-{
-public:
- GPUMarkerPayload(const mozilla::TimeStamp& aCpuTimeStart,
- const mozilla::TimeStamp& aCpuTimeEnd,
- uint64_t aGpuTimeStart,
- uint64_t aGpuTimeEnd);
- ~GPUMarkerPayload() {}
-
- virtual void StreamPayload(SpliceableJSONWriter& aWriter,
- UniqueStacks& aUniqueStacks) override;
-
-private:
- mozilla::TimeStamp mCpuTimeStart;
- mozilla::TimeStamp mCpuTimeEnd;
- uint64_t mGpuTimeStart;
- uint64_t mGpuTimeEnd;
-};
-#endif
-
-#endif // PROFILER_MARKERS_H