19 #ifndef MIR_REPORT_LOGGING_COMPOSITOR_REPORT_H_
20 #define MIR_REPORT_LOGGING_COMPOSITOR_REPORT_H_
26 #include <unordered_map>
44 std::shared_ptr<time::Clock>
const& clock);
55 std::shared_ptr<mir::logging::Logger>
const logger;
56 std::shared_ptr<time::Clock>
const clock;
59 TimePoint now()
const;
63 TimePoint start_of_frame;
64 TimePoint end_of_frame;
65 TimePoint total_time_sum;
66 TimePoint render_time_sum;
67 TimePoint latency_sum;
71 bool prev_bypassed =
false;
73 TimePoint last_reported_total_time_sum;
74 TimePoint last_reported_render_time_sum;
75 TimePoint last_reported_latency_sum;
76 long last_reported_nframes = 0;
77 long last_reported_bypassed = 0;
83 std::unordered_map<SubCompositorId, Instance> instance;
84 TimePoint last_scheduled;
85 TimePoint last_report;
92 #endif // MIR_REPORT_LOGGING_COMPOSITOR_REPORT_H_
All things Mir.
Definition: atomic_callback.h:25
void rendered_frame(SubCompositorId id) override
void log(logging::Severity sev, char const *component, char const *fmt,...)
Definition: log.cpp:39
const void * SubCompositorId
Definition: compositor_report.h:32
void began_frame(SubCompositorId id) override
Definition: compositor_report.h:40
CompositorReport()=default
std::chrono::steady_clock::time_point Timestamp
Definition: types.h:29
void scheduled() override
void renderables_in_frame(SubCompositorId id, graphics::RenderableList const &renderables) override
unsigned int width
Definition: black_arrow.c:4
Definition: compositor_report.h:29
void added_display(int width, int height, int x, int y, SubCompositorId id) override
unsigned int height
Definition: black_arrow.c:5
std::vector< std::shared_ptr< Renderable > > RenderableList
Definition: renderable.h:79
void finished_frame(SubCompositorId id) override