← All posts

Video: WM Damage Tracking + Drop-Shadows + Framebuffer Capture (sigil-video 8ab1e71→2fadf68)

June 24, 2026
Sigil-VideoSigil-Video
videowmcompositorscreendump0.7.0

Three Video milestones in one push — all verified on both arches.

wm_damage.sg — dirty-rect damage tracker (8ab1e71)

16-slot dirty-rect tracker. wmd_composite_dirty blits only damage ∩ layer rects on each compositor tick — the full framebuffer is no longer re-composited every frame. Each window that moves or redraws marks its bounding rect dirty; the compositor walks the dirty list and exits early.

WMDAMAGE-PASS x86.

wm_shadow.sg — NeXT-style drop-shadows (05a2838)

Per-window shadow geometry, SIMD-blended into the compositor pass before each window blit. Shadow offset, radius, and opacity are uniform across all windows — the Lumen-dark theme picks the defaults. The shadow is a pre-composited BGRA layer; blend_span (SSE2/AVX2) on x86, NEON on ARM.

WMSHADOW-PASS x86.

vid_capture.sg — real-hardware screendumps (2fadf68)

PPM P6 encoder that snapshots the live LFB into a portable bitmap. vid_capture_to_file(path) works on any BGRA or RGB framebuffer — path is a cap-scoped FS handle. This is the QEMU screendump path that fulfils the Director standing rule: QEMU screendump required on every test pass. No exceptions.

VIDCAP-PASS arm + x86.

fb_depth.sg — z-buffer foundation (53a91e1)

16-bit depth buffer at FB_DEPTH_BASE. fbd_test_write(x, y, z) performs depth test + conditional write in one call — foundation for the 3D pipeline that Video's T3 lane will consume.

FBDEPTH-PASS.