diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/winit.rs | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/src/winit.rs b/src/winit.rs index 2273b1a4..69b92670 100644 --- a/src/winit.rs +++ b/src/winit.rs @@ -2,7 +2,6 @@ use std::time::Duration; use smithay::backend::renderer::damage::OutputDamageTracker; use smithay::backend::renderer::gles::GlesRenderer; -use smithay::backend::renderer::ImportEgl; use smithay::backend::winit::{self, WinitError, WinitEvent, WinitEventLoop, WinitGraphicsBackend}; use smithay::output::{Mode, Output, PhysicalProperties, Subpixel}; use smithay::reexports::calloop::timer::{TimeoutAction, Timer}; @@ -41,10 +40,10 @@ impl Backend for Winit { let _span = tracy_client::span!("Winit::render"); self.backend.bind().unwrap(); - // Pass age 0 as the damage is artifacting for some reason. + let age = self.backend.buffer_age().unwrap(); let result = self .damage_tracker - .render_output(self.backend.renderer(), 0, elements, [0.1, 0.1, 0.1, 1.0]) + .render_output(self.backend.renderer(), age, elements, [0.1, 0.1, 0.1, 1.0]) .unwrap(); if let Some(damage) = result.damage { self.backend.submit(Some(&damage)).unwrap(); @@ -103,13 +102,17 @@ impl Winit { } pub fn init(&mut self, niri: &mut Niri) { - if let Err(err) = self - .backend - .renderer() - .bind_wl_display(&niri.display_handle) - { - warn!("error binding renderer wl_display: {err}"); - } + // For some reason, binding the display here causes damage tracker artifacts. + // + // use smithay::backend::renderer::ImportEgl; + // + // if let Err(err) = self + // .backend + // .renderer() + // .bind_wl_display(&niri.display_handle) + // { + // warn!("error binding renderer wl_display: {err}"); + // } niri.add_output(self.output.clone(), None); } |
