summaryrefslogtreecommitdiff
path: root/include/yasl/timing.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/yasl/timing.h')
-rw-r--r--include/yasl/timing.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/include/yasl/timing.h b/include/yasl/timing.h
index 7c66967..85f305d 100644
--- a/include/yasl/timing.h
+++ b/include/yasl/timing.h
@@ -15,11 +15,20 @@ struct yasl_resize_stats {
long minflt;
};
+/* Describes last_present_ns, not merely availability of an extension. */
+enum yasl_timing_source {
+ YASL_TIMING_UNKNOWN = 0,
+ YASL_TIMING_SUBMISSION, /* CPU submission time; not scanout confirmation */
+ YASL_TIMING_FRAME_CALLBACK, /* compositor pacing callback, not scanout */
+ YASL_TIMING_PRESENTATION, /* compositor-confirmed presentation */
+};
+
struct yasl_timing {
double refresh_ns;
uint64_t last_present_ns;
uint64_t next_present_ns;
uint64_t frames_skipped;
+ enum yasl_timing_source source;
struct yasl_resize_stats resize;
};
@@ -33,6 +42,7 @@ struct yasl_frame_clock {
long resize_minflt;
uint64_t frame_time_ns;
double refresh_ns;
+ enum yasl_timing_source source;
};
uint64_t yasl_clock_extend_ms(uint32_t ms, uint64_t now_ns);