mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-23 21:01:08 +00:00
069d9c4abb
If perfetto is enabled, then this patch enables emitting gecko profiler markers as perfetto track events. It will always emit the marker name, category and timestamps at the very least. It also adds support to the various payload types that are currently used, and those will be emitted as perfetto debug annotations. Differential Revision: https://phabricator.services.mozilla.com/D214033
32 lines
1.1 KiB
C++
32 lines
1.1 KiB
C++
/* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
|
|
/* 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/. */
|
|
|
|
#include "mozilla/Perfetto.h"
|
|
#include <stdlib.h>
|
|
|
|
const char* ProfilerCategoryNames[] = {
|
|
#define CATEGORY_JSON_BEGIN_CATEGORY(name, labelAsString, color) #name,
|
|
#define CATEGORY_JSON_SUBCATEGORY(supercategory, name, labelAsString)
|
|
#define CATEGORY_JSON_END_CATEGORY
|
|
MOZ_PROFILING_CATEGORY_LIST(CATEGORY_JSON_BEGIN_CATEGORY,
|
|
CATEGORY_JSON_SUBCATEGORY,
|
|
CATEGORY_JSON_END_CATEGORY)
|
|
#undef CATEGORY_JSON_BEGIN_CATEGORY
|
|
#undef CATEGORY_JSON_SUBCATEGORY
|
|
#undef CATEGORY_JSON_END_CATEGORY
|
|
};
|
|
|
|
PERFETTO_TRACK_EVENT_STATIC_STORAGE();
|
|
|
|
void InitPerfetto() {
|
|
if (!getenv("MOZ_DISABLE_PERFETTO")) {
|
|
perfetto::TracingInitArgs args;
|
|
args.backends |= perfetto::kSystemBackend;
|
|
perfetto::Tracing::Initialize(args);
|
|
perfetto::TrackEvent::Register();
|
|
}
|
|
}
|