Skip to content

feat(text): publish warm generations in object lifecycle - #13

Merged
thejustinwalsh merged 1 commit into
feat/renderer-neutral-raster-lifecyclefrom
feat/text-warm-publication
Aug 4, 2026
Merged

feat(text): publish warm generations in object lifecycle#13
thejustinwalsh merged 1 commit into
feat/renderer-neutral-raster-lifecyclefrom
feat/text-warm-publication

Conversation

@thejustinwalsh

@thejustinwalsh thejustinwalsh commented Aug 1, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • stage resident font, shaping, layout, paint, and raster updates synchronously while preserving the last committed generation
  • publish prepared generations from updateMatrixWorld / updateWorldMatrix before raster-child traversal, with React invalidating its R3F root instead of awaiting ready
  • retain one Presentation canvas and renderer across workload, technique, font, and DPR handoffs; remove Icon Grid's hide-and-await recycle path
  • keep ordinary Text Ladder content visible, preserve the timed-demo exit, and suppress the temporary zero-vertex WebGPU grid draw
  • make the DPR-2 workload probe capture-free during cadence sampling, then take one bounded headless pixel proof so Chromium screenshot compositing cannot flash the visible canvas

Verification

  • pnpm --filter @pmndrs/text-benchmarks test:unit — 45 files, 260 tests; script tests 4/4
  • pnpm --filter @pmndrs/text-benchmarks test:headless — all 19 conformance cases pass together, including 3/3 exact React reconciliations and 3/3 exact 68-frame Advanced Shaping timelines
  • pnpm --filter @pmndrs/text-benchmarks test:packed — exact packed-consumer hash and 172,156-byte output
  • pnpm --filter @pmndrs/text-benchmarks test:presentation-workloads — all seven DPR-2 workloads retain one canvas/renderer with visible foreground pixels; Bitmap, MTSDF, and Slug lanes pass
  • pnpm --filter @pmndrs/text-benchmarks test:presentation-demo — timed DPR-2 demo completes, returns to Off-axis / 3D, retains one renderer, and reports 60.02 FPS during Icon Grid with no warnings
  • focused Text, React, retained-scene, canvas, and persistent-host lifecycle tests — success, failure, abort, stale work, sibling traversal, and state restoration pass
  • package-size and autoresearch checks — exact; baker hosts and Wasm unchanged
  • pnpm docs:check — zero conformance errors, producer-profile errors, or warnings
  • repository formatting and diff checks — clean

Depends on #12.

@thejustinwalsh
thejustinwalsh force-pushed the feat/text-warm-publication branch from 5410865 to bf238db Compare August 4, 2026 01:44
@thejustinwalsh
thejustinwalsh merged commit 60545cf into main Aug 4, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant