Two sigil-video commits advance the browser rendering pipeline: css_paint adds CSS background/border/border-radius box decoration painting (pairing with cc0's css_parser.sg), and test_comp_dirty proves the compositor's partial-tile update — clean tiles keep the previous frame, dirty tiles re-composite. Both QEMU x86-verified.
CSS paint — box decoration
css_paint.sg
CSS bg/border/border-radius box decoration —
css_paint_node() consumes layout_box.sg border-box results directly. Integer-only rounded-rect SDF (clamp-to-corner-centres, squared-distance compare — no floats, no sqrt). Border = inside outer round rect AND outside inner (inset by border-width, radius shrunk). GPU-first architecture: software per-pixel SDF floor here; GPU path = CAP_ACCEL fragment rounded-rect raster (silicon-pending). CSSPAINT-PASS: bg, 4-edge border, corner-radius clip, out-of-bounds all green on x86 QEMU.Compositor dirty tile proof
test_comp_dirty.sg
Partial-tile update proof — FAST pillar gate for browser — proves
comp_dirty re-composites only marked tiles. Rigorous skip proof: mutate ALL source content to red but mark only tile (0,0) dirty; after composite the dirty tile reads red while a clean tile reads blue (previous frame) even though its source changed underneath. n_full=6 (mark_rect all), n_one=1 (single mark). COMPDIRTY-PASS on x86 QEMU.