Faster, easier 2D vector rendering
summary
New renderer introduces sparse strips: fixed-height strip geometry (4×4 tiles, likely moving to 8×8) that flattens curves to lines, tiles and sorts them, merges contiguous tiles, computes per-tile 4×4 alpha (≈90 lines of code) and packs strips into quads to drastically cut draw calls. Hybrid mode runs CPU scheduling + GPU pixel work, keeps GPU memory bounded with spatiotemporal allocation, supports WebGL (no compute shaders) and a CPU-only path that is 2–2.5× faster than Tiny Skia. SIMD and NEON FP16 (handwritten ASM today) accelerate CPU stages; Vello CPU 0.0.1 is released and Blitz demos run live.
AI-written summary · about
chapters (18)
- 0:00Introduction
- 1:36Current state of Vell
- 3:03Sparse strips
- 10:22Cache
- 12:23Path caching
- 13:06Scaling
- 14:03Clip optimization
- 15:49Spatial temporal allocation
- 17:09Parallelization
- 18:48SIMD
- 20:40Community
- 24:12Vevel CPU
- 26:14Questions
- 27:55APIs
- 29:38GPU limitations
- 31:40Vel vs Piet
- 33:24Web GPU
- 34:23Text rendering
related talks
24mArtisanal Rendering: Make Your Own Computer Art!
22mOchre: Highly portable GPU-accelerated vector graphics
13mLow-level wizardry in dav1d
23m"Six Clock Cycle per Pixel - Graphics on the Neotron Pico"
23mMap rendering using WebGPU and WASM
02h 03m2D Graph scene in Rust
02h 13m2D Graph scene in Rust
39mFearless Concurrency on the GPU
