aboutsummaryrefslogtreecommitdiff
path: root/src/backend/winit.rs
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2023-09-14 09:33:42 +0400
committerIvan Molodetskikh <yalterz@gmail.com>2023-09-14 09:33:42 +0400
commit092095ead005ff073344b723f00b08a5b845f186 (patch)
treeccd0522615a0ef80ea5905193518c9689c617e98 /src/backend/winit.rs
parentef11975ec53005b10786e2bfe6f31ba88ff81a34 (diff)
downloadniri-092095ead005ff073344b723f00b08a5b845f186.tar.gz
niri-092095ead005ff073344b723f00b08a5b845f186.tar.bz2
niri-092095ead005ff073344b723f00b08a5b845f186.zip
Add debug flag to wait for frame completion
Diffstat (limited to 'src/backend/winit.rs')
-rw-r--r--src/backend/winit.rs7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/backend/winit.rs b/src/backend/winit.rs
index e7a50ac7..f30c0784 100644
--- a/src/backend/winit.rs
+++ b/src/backend/winit.rs
@@ -15,6 +15,7 @@ use smithay::reexports::winit::window::WindowBuilder;
use smithay::utils::Transform;
use smithay::wayland::dmabuf::DmabufFeedback;
+use crate::config::Config;
use crate::niri::OutputRenderElements;
use crate::utils::get_monotonic_time;
use crate::{LoopData, Niri};
@@ -136,6 +137,7 @@ impl Winit {
pub fn render(
&mut self,
+ config: &Config,
niri: &mut Niri,
output: &Output,
elements: &[OutputRenderElements<GlesRenderer>],
@@ -149,6 +151,11 @@ impl Winit {
.render_output(self.backend.renderer(), age, elements, [0.1, 0.1, 0.1, 1.0])
.unwrap();
if let Some(damage) = res.damage {
+ if config.debug.wait_for_frame_completion_before_queueing {
+ let _span = tracy_client::span!("wait for completion");
+ res.sync.wait();
+ }
+
self.backend.submit(Some(&damage)).unwrap();
let mut presentation_feedbacks = niri.take_presentation_feedbacks(output, &res.states);