aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2025-11-20 12:55:45 +0300
committerIvan Molodetskikh <yalterz@gmail.com>2025-11-21 07:14:27 +0300
commit8ef5cc2297c18063907ab1d4d690162b5a58e54d (patch)
treedd125fbad55f9dd32b902fd42b3b8ac59cb8a1ea /src
parent46308bb58cee4849ba5fb4abd98bbb64c740f49e (diff)
downloadniri-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.rs17
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);