From 97f57edccc10cb5ccef34d9d4c94276748bbd953 Mon Sep 17 00:00:00 2001 From: Jesse Miller Date: Sat, 29 Aug 2026 08:14:36 -0600 Subject: [PATCH] renderer: vsync unfocused surfaces while dirty 6ae1784f4 Unfocused surfaces stopped the CVDisplayLink and encoded a GPU frame on every PTY wakeup. A burst of close writes became that many Metal submits instead of one vsync. Keep the link running while the surface is visible and dirty or animating, whether or not it is focused. Idle surfaces still park. Focus continues to gate cursor blink, custom-shader animation, and QoS. --- src/renderer/generic.zig | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/renderer/generic.zig b/src/renderer/generic.zig index 2c9fb1093..2a81f42b4 100644 --- a/src/renderer/generic.zig +++ b/src/renderer/generic.zig @@ -1194,8 +1194,6 @@ pub fn Renderer(comptime GraphicsAPI: type) type { const should_run = // Non-visible windows never vsync self.visible and - // Non-focused windows only render on-demand - self.focused and // Only vsync if we have cell changes or animation (self.cells_rebuilt or self.animationWake() != null);