19 #ifndef MIR_CLIENT_PERIODIC_PERF_REPORT_H_
20 #define MIR_CLIENT_PERIODIC_PERF_REPORT_H_
27 #include <unordered_map>
38 std::shared_ptr<mir::time::Clock>
const& clock);
42 virtual void display(
const char *name,
long fps100,
43 long rendertime_usec,
long lag_usec,
44 int nbuffers)
const = 0;
48 Timestamp current_time()
const;
49 std::shared_ptr<mir::time::Clock>
const clock;
50 Duration
const report_interval;
52 Timestamp last_report_time;
53 Timestamp frame_begin_time;
54 Timestamp frame_end_time;
55 Duration render_time_sum = Duration::zero();
56 Duration buffer_queue_latency_sum = Duration::zero();
58 std::unordered_map<int,Timestamp> buffer_end_time;
64 #endif // MIR_CLIENT_PERIODIC_PERF_REPORT_H_
All things Mir.
Definition: atomic_callback.h:25
std::chrono::steady_clock::time_point Timestamp
Definition: types.h:29
std::chrono::steady_clock::duration Duration
Definition: types.h:30
Definition: perf_report.h:27
void begin_frame(int buffer_id) override
Definition: periodic_perf_report.cpp:41
virtual void display(const char *name, long fps100, long rendertime_usec, long lag_usec, int nbuffers) const =0
void name_surface(char const *) override
Definition: periodic_perf_report.cpp:36
PeriodicPerfReport(mir::time::Duration period, std::shared_ptr< mir::time::Clock > const &clock)
Definition: periodic_perf_report.cpp:23
void end_frame(int buffer_id) override
Definition: periodic_perf_report.cpp:56
Definition: periodic_perf_report.h:34