diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2025-11-20 12:55:45 +0300 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2025-11-21 07:14:27 +0300 |
| commit | 8ef5cc2297c18063907ab1d4d690162b5a58e54d (patch) | |
| tree | dd125fbad55f9dd32b902fd42b3b8ac59cb8a1ea /src | |
| parent | 46308bb58cee4849ba5fb4abd98bbb64c740f49e (diff) | |
| download | niri-8ef5cc2297c18063907ab1d4d690162b5a58e54d.tar.gz niri-8ef5cc2297c18063907ab1d4d690162b5a58e54d.tar.bz2 niri-8ef5cc2297c18063907ab1d4d690162b5a58e54d.zip | |
tty: Extract time and refresh_interval higher
Co-authored-by: Christian Meissl <meissl.christian@gmail.com>
Co-authored-by: Scott McKendry <39483124+scottmckendry@users.noreply.github.com>
Diffstat (limited to 'src')
| -rw-r--r-- | src/backend/tty.rs | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/src/backend/tty.rs b/src/backend/tty.rs index 693b7d6f..891e8c79 100644 --- a/src/backend/tty.rs +++ b/src/backend/tty.rs @@ -1625,6 +1625,14 @@ impl Tty { return; }; + let refresh_interval = output_state.frame_clock.refresh_interval(); + + let time = if presentation_time.is_zero() { + now + } else { + presentation_time + }; + let redraw_needed = match mem::replace(&mut output_state.redraw_state, RedrawState::Idle) { RedrawState::WaitingForVBlank { redraw_needed } => redraw_needed, state @ (RedrawState::Idle @@ -1647,7 +1655,7 @@ impl Tty { // Mark the last frame as submitted. match surface.compositor.frame_submitted() { Ok(Some((mut feedback, target_presentation_time))) => { - let refresh = match output_state.frame_clock.refresh_interval() { + let refresh = match refresh_interval { Some(refresh) => { if output_state.frame_clock.vrr() { Refresh::Variable(refresh) @@ -1663,12 +1671,9 @@ impl Tty { let mut flags = wp_presentation_feedback::Kind::Vsync | wp_presentation_feedback::Kind::HwCompletion; - let time = if presentation_time.is_zero() { - now - } else { + if !presentation_time.is_zero() { flags.insert(wp_presentation_feedback::Kind::HwClock); - presentation_time - }; + } feedback.presented::<_, smithay::utils::Monotonic>(time, refresh, seq, flags); |
