aboutsummaryrefslogtreecommitdiff
path: root/alacritty/src/display/window.rs
diff options
context:
space:
mode:
Diffstat (limited to 'alacritty/src/display/window.rs')
-rw-r--r--alacritty/src/display/window.rs16
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()
}