feat(layers): compile scroll layers in on macOS and iOS - #9
Merged
Merged
Conversation
Both share gpui_apple's Metal renderer, whose tile path the pixel tests in `cargo test -p gpui_apple fast::layers` already check. Linux stays out, as our gpui_wgpu renderer is zed's without the frame recording layers need. Slopty's two scrolled lists now composite: the navigator at 600 of 600 wheel frames, 0.343 to 0.234 ms a frame, and a finished conversation panned at rest at 393 of 600, 0.5245 to 0.4325 ms. Nothing else moves outside the noise (SLOPTY.md, "Scroll layers"). Co-Authored-By: Claude Code
trancong12102
added a commit
to aislopware/slopty
that referenced
this pull request
Oct 1, 2026
gpui-fast moves to f71b3fe. It compiles scroll layers in on macOS and iOS (aislopware/gpui-fast#9), and it fixes the overflow in a list layer's shift when the view holding the list is copied from the last frame (#8). gpui-kit moves to 25b62b08, whose text view no longer changes its state when it is first built (aislopware/gpui-kit#3). Navigator scrolling goes from 0.343 to 0.221 ms a frame, with every frame composited. A finished conversation panned at rest goes from 0.479 to 0.4215 ms. Every other frame stays within noise. Two tests assert that both lists composite every frame and are never demoted. Co-Authored-By: Claude Code
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Sets
fast::layers::COMPILEDformacosandios, which sharegpui_apple's Metal renderer. Linux stays out, because ourgpui_wgpurenderer is zed's and has no frame recording.Until now layers were kept off on Apple because Slopty's two scrolled lists never composited a frame. The three causes have been fixed outside this fork (Slopty's navigator, and aislopware/gpui-kit#3), plus #8 here. With them, measured in Slopty as the median of 8 alternating rounds, layers compiled in against
GPUI_SCROLL_LAYERS=0:Checks:
cargo test -p gpui_apple --lib fast::layers: 12 pass. These are the Metal composite pixel tests.cargo check -p gpui_ios --target aarch64-apple-ios-sim: passes.script/check-upstream: 0 violations.SLOPTY.md's "Scroll layers" section is updated to match.