You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The world draws on the GPU: every window is a list of 32-byte records that one shader draws, and Cairo is gone (8c45564). Vulkan on Linux, with lavapipe on the CPU where no GPU opens, and Metal on a Mac (9a652e7).
Shaders written in Scheme: paints that fill a box, compute shaders over buffers, a CPU twin to call one pixel at a time, and a guide with examples to try, docs/SHADERS.md (b837d75). A compute run and its read-back work from a REPL (e037778).
Boids 3D: a murmuration of up to 4,096 birds, stepped, binned and drawn by four shaders, in an app's sandbox (f2252ae), over a sunset sea (83ac7e9).
A window is drawn again only when it changes; moved or raised, it isn't drawn at all (3995abc). Nothing asked for, no frame (79f3e83).
The world runs on a thread of its own, core1, while core0 holds the window and presents frames on the first (cf74bb8). The boot is a chain, main.ss to core0 to core1 to the world, each layer given only what its export list names (1dec885).
Frames paced by the screen: locked to core0 taking each frame (439e521), and where the compositor reports its latches (Wayland, the Mac), a tick begins just in time for the next one, learning how much lead it needs (85bf525, b32e4fb).
The screen says what became of each frame: Wayland's presentation reports and Metal's presented handlers (dd3edd3, 8e0852f), joined to the input each frame shows, so input-to-screen latency is measured, not guessed (7e3288f).
The Pipeline, a new app that shows a frame's way from each window's draw procedure to the screen, live, to find where its time goes (8c45564).
GPU buffers, images and lists go once nothing holds them (f6e30fb), and collections wait until the frame is sent (290f48b, 88b2fbf).
A trace of each frame in a checkout with .work, written when the window closes, on Ctrl-C, or when the world stops stepping (dd3edd3, c292a2f).
The Debug REPL: a socket for a debugger or an agent, open only while its window is (498bc96).
The Pacer Lab tries the pacer's settings on Schevana itself as it's used (6ee58a2).
Shaders mean the same on every GPU: integer division, rounding and evaluation order defined, every shader checked by spirv-val (f4d61e3, b3a2d59, 7d96bcd, fe0db9b).
A programmer's guide in docs/, fourteen pages taught at the REPL, and every example in them run by a test (f9884f7, e54eeaf, 9fe69c3, b5ea3bf, 7e62a5c). README now says what Schevana is in 125 lines (4ccdb23).
Apps explain themselves: tooltips say what Monitor's Ticks and Flags mean, what each control in Life and Boids does, every REPL opens with its keys, and menus show their shortcuts (67279cd to 75a6c0d).
(repl 'private) and (repl 'pure) replace the Private and Pure REPL apps (1411f0d); a REPL's Tab always completes (96bef17).
With NVIDIA's driver on Wayland, one module option fixes frames the compositor showed twice: docs/LINUX_NVIDIA_TUNING.md (0ab6cfd).