element/surface: Simplify surface feedback selection using the frame_time_filter

This commit is contained in:
Victoria Brekenfeld 2026-01-06 17:21:04 +01:00 committed by Victoria Brekenfeld
parent d17a4ead68
commit dc5a9fac66
2 changed files with 26 additions and 27 deletions

View file

@ -151,20 +151,18 @@ pub fn recursive_frame_time_estimation(
overall_estimate
}
pub const FRAME_TIME_FILTER: KindEvaluation = KindEvaluation::Dynamic({
fn frame_time_filter_fn(states: &SurfaceData) -> Kind {
let clock = Clock::<Monotonic>::new();
const _20_FPS: Duration = Duration::from_nanos(1_000_000_000 / 20);
pub fn frame_time_filter_fn(states: &SurfaceData) -> Kind {
let clock = Clock::<Monotonic>::new();
const _20_FPS: Duration = Duration::from_nanos(1_000_000_000 / 20);
if frame_time_estimation(&clock, states).is_some_and(|dur| dur <= _20_FPS) {
Kind::ScanoutCandidate
} else {
Kind::Unspecified
}
if frame_time_estimation(&clock, states).is_some_and(|dur| dur <= _20_FPS) {
Kind::ScanoutCandidate
} else {
Kind::Unspecified
}
}
frame_time_filter_fn
});
pub const FRAME_TIME_FILTER: KindEvaluation = KindEvaluation::Dynamic(frame_time_filter_fn);
impl CompositorHandler for State {
fn compositor_state(&mut self) -> &mut CompositorState {