// Copyright 2020 The ChromiumOS Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef VM_TOOLS_SOMMELIER_SOMMELIER_TRACING_H_ #define VM_TOOLS_SOMMELIER_SOMMELIER_TRACING_H_ #if defined(PERFETTO_TRACING) #include #include PERFETTO_DEFINE_CATEGORIES( perfetto::Category("surface").SetDescription( "Events for Wayland surface management"), perfetto::Category("display").SetDescription("Events for Wayland display"), perfetto::Category("drm").SetDescription("Events for Wayland drm"), perfetto::Category("shell").SetDescription("Events for Wayland shell"), perfetto::Category("shm").SetDescription( "Events for Wayland shared memory"), perfetto::Category("viewport") .SetDescription("Events for Wayland viewport"), perfetto::Category("sync").SetDescription("Events for Wayland sync points"), perfetto::Category("x11wm").SetDescription( "Events for X11 window management"), perfetto::Category("gaming").SetDescription("Events for Gaming"), perfetto::Category("other").SetDescription("Uncategorized Wayland calls.")); void perfetto_annotate_atom(struct sl_context* ctx, const perfetto::EventContext& perfetto, const char* event_name, xcb_atom_t atom); void perfetto_annotate_xcb_property_state(const perfetto::EventContext& event, const char* name, uint32_t state); void perfetto_annotate_window(struct sl_context* ctx, const perfetto::EventContext& perfetto, const char* event_name, xcb_window_t window_id); void perfetto_annotate_size_hints(const perfetto::EventContext& perfetto, const struct sl_wm_size_hints& size_hints); void perfetto_annotate_cardinal_list(const perfetto::EventContext& perfetto, const char* event_name, xcb_get_property_reply_t* reply); void perfetto_annotate_time_sync(const perfetto::EventContext& perfetto); #else #define TRACE_EVENT(category, name, ...) #endif void initialize_tracing(bool in_process_backend, bool system_backend); void enable_tracing(bool create_session); void dump_trace(char const* filename); #endif // VM_TOOLS_SOMMELIER_SOMMELIER_TRACING_H_