refactor(benchmarks): clarify workload and scene ownership - #36
Open
thejustinwalsh wants to merge 8 commits into
Open
refactor(benchmarks): clarify workload and scene ownership#36thejustinwalsh wants to merge 8 commits into
thejustinwalsh wants to merge 8 commits into
Conversation
thejustinwalsh
marked this pull request as ready for review
August 3, 2026 15:57
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary\n\n- colocate each authored workload definition and public Text scene under its own workload directory\n- move renderer-owned persistent scenes and metadata under explicit technique directories\n- move the retained comparison host out of workloads and into the benchmark surface hierarchy\n- reduce app.tsx to route selection; isolate the shared route identity, controller state machine, persistent layout, and scene composition\n- separate conformance scenes and probe-only adapters from executable benchmark targets\n- preserve warm Advanced Shaping font transitions and retained comparison publication\n- correct the shaping performance probe so each case observes twelve new telemetry reports after its transition\n- publish evidence-backed V1 raster recommendations and an external-plugin migration guide for the required stageBatch transaction\n\n## Public API audit\n\nAll nine authored workloads use published @pmndrs/text, FontLoader, FontRegistry, raster-subpath, and runtime-bake surfaces. Workload code contains no raw Wasm URL, private baker package, internal package import, renderer allocation, or RAF ownership.\n\nThe audit found no missing common rendering API. It explicitly rejects public buffer-slack controls, a second Text flush/commit publication path, and shipped retained-update diagnostics: the required raster transaction already owns bounded capacity, Three matrix traversal owns publication, and diagnostics remain benchmark-only at zero runtime cost.\n\nThe accepted V1 reference now links a migration how-to for external rasters moving from buildBatches, stageBatchUpdate, and updatePaint to one renderer-neutral transaction. The renderer capability matrix distinguishes shipped V1 roles from later color, expanded-effect, paging, and mixed-raster work.\n\n## Runtime evidence\n\n- 61 benchmark unit files and 321 tests passed\n- complete live browser lane passed on WebGPU and forced WebGL2\n- all 21 Bitmap/MTSDF/Slug comparison workload cells rendered sequentially\n- Main, Conformance, and Presentation recovered while retaining exclusive renderer ownership\n- Presentation completed its timed sequence with one renderer, returned to Off-axis 3D, and measured Icon Grid at 60.25 FPS\n- corrected isolated Advanced Shaping run held all five cases at 59.84–60.17 FPS; CJK measured 60.02 FPS, 0.77 ms CPU p95, and 3.82 ms GPU p95\n- React Doctor 0.7.2 reported no findings\n- production package-size hashes are unchanged\n\n## Repository gates\n\n- mise exec -- pnpm benchmarks:check\n- mise exec -- pnpm benchmarks:test:live\n- isolated corrected Advanced Shaping GPU performance probe\n- mise exec -- pnpm benchmarks:check:react-doctor\n- mise exec -- pnpm docs:check\n- mise exec -- pnpm format:check\n\nThe benchmark OKF digest and canonical package, API-shape, roadmap, renderer-guidance, migration, and chronology documents are refreshed in the same branch. Milestone 10 closes only with the latest top check and every lower stack check green.