Monorepo for Aesthetic.Computer aesthetic.computer
4
fork

Configure Feed

Select the types of activity you want to include in your feed.

1# WebGL Migration (Aesthetic Computer) 2 3## Goal 4Move the rendering pipeline from Canvas2D compositing to a WebGL-based composite path. 5 6## Status 7- [x] Add WebGL blitter module (full-screen quad + texture upload) 8- [x] Wire WebGL composite canvas into BIOS render path 9- [x] Move overlay compositing off the main canvas 10- [x] Preserve recording outputs with WebGL composite 11- [x] Preserve screenshot outputs with WebGL composite 12- [ ] Verify underlay/tape playback behavior 13- [ ] Validate WebGPU path still works (no conflicts) 14- [x] Add runtime flag/toggle and telemetry 15- [ ] Performance profiling in sandboxed iframes 16 17## Subtasks 18 19### 1) WebGL Blitter (Base Frame) 20- [x] Create module to upload `ImageData` as a texture and draw full-screen quad 21- [x] Add canvas sizing + visibility toggles in `bios.mjs` 22- [x] Replace `ctx.putImageData` with WebGL blit when enabled 23 24### 2) Overlay Compositing 25- [x] Add dedicated overlay canvas layer 26- [x] Route overlay painters to overlay canvas when WebGL composite enabled 27- [x] Ensure overlay canvas clears each frame to avoid accumulation 28 29### 3) Recording / Screenshot Capture 30- [x] Composite WebGL canvas + overlay canvas into offscreen capture canvas 31- [x] Preserve existing ordering (HUD before tape progress) 32- [x] Ensure clean screenshots exclude overlays 33 34### 4) Runtime Flags + Fallbacks 35- [x] Add `content.webglCompositeEnabled` flag path 36- [x] Add `globalThis.acUseWebGLComposite` override 37- [x] Fallback to Canvas2D if WebGL init fails 38 39### 5) Validation 40- [ ] objkt sandbox: compare FPS vs Canvas2D path 41- [ ] Regular browser: confirm no regressions 42- [ ] Recording output: verify overlays + tape progress timing 43- [ ] Glaze path: ensure compatibility with composite pipeline 44 45## Notes 46- WebGL composite should coexist with existing WebGPU path; if `content.webgpuEnabled` is true, WebGL composite should stay off. 47- Keep UI canvas (cursor/spinner) above overlays to avoid GPU text rendering complexity.