diff options
Diffstat (limited to 'alacritty/src/display/window.rs')
-rw-r--r-- | alacritty/src/display/window.rs | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/alacritty/src/display/window.rs b/alacritty/src/display/window.rs index f098d7f8..2e8ed085 100644 --- a/alacritty/src/display/window.rs +++ b/alacritty/src/display/window.rs @@ -471,7 +471,23 @@ impl Window { self.windowed_context.swap_buffers_with_damage(damage).expect("swap buffes with damage"); } + #[cfg(any(target_os = "macos", windows))] pub fn swap_buffers_with_damage_supported(&self) -> bool { + // Disable damage tracking on macOS/Windows since there's no observation of it working. + false + } + + #[cfg(not(any(target_os = "macos", windows)))] + pub fn swap_buffers_with_damage_supported(&self) -> bool { + // On X11 damage tracking is behaving in unexpected ways on some NVIDIA systems. Since + // there's no compositor supporting it, damage tracking is disabled on X11. + // + // For more see https://github.com/alacritty/alacritty/issues/6051. + #[cfg(all(feature = "x11", not(any(target_os = "macos", windows))))] + if self.window().xlib_window().is_some() { + return false; + } + self.windowed_context.swap_buffers_with_damage_supported() } |