Skip to content

Re-baseline the particle_render_10k budget to the CI reference toolchain (2.0 → 3.0 ms) - #86

Merged
offdev merged 2 commits into
masterfrom
fix/m2-part-02-particle-budget-rebaseline
Oct 9, 2026
Merged

offdev merged 2 commits into
masterfrom
fix/m2-part-02-particle-budget-rebaseline

Conversation

@offdev

@offdev offdev commented Oct 8, 2026

Copy link
Copy Markdown
Owner

Root cause

Every merge to master since M2-PART-02 (PR #83) has failed the merge-lane CI Linux x64 (clang++) job on the particle_render budget gate (ParticleRenderBudget.TenThousandParticles) — and the unfiltered laige-render_tests entry that contains the same suite.

The gate platform is the CI reference lane (Clang 18.1.3, CMake Debug, ubuntu-24.04 shared runner), where the 10k-particle declare pass measures 1.91–2.68 ms mean (worst backend), consistently above the 2.0 ms bar:

CI run (master merge) fpx16_16 mean fp32_pinned mean
37780159655 (bdb323b) 2.67853 1.88209
37782008880 (2f2c5a9) 2.62795 1.94712
37850579155 (4f81866) 1.91031 2.07786

This is a calibration gap, not an engine regression: the 2.0 ms bar was set from local-machine runs (1.07798 ms canonical g++ 16.2.1 -O0, 1.18578 ms local Clang 23.1.1 -O0) and never verified with margin on the CI reference toolchain (runner Clang 18.1.3, not local 23.1.1, on a shared runner) — the exact lesson the M2-ISO-02 rebaseline recorded. The declareParticles path is unchanged since M2-PART-02, and the Linux x64 (g++) lane passed the same gated workload on the same commit.

The revision (methodology §5, the M2-ISO-02 rebaseline precedent)

  • budgets.json: particle_render_10k target 2.0 → 3.0 (44% above the latest recorded reference-lane value 2.07786, 12.0% above the worst observed reference-lane mean 2.67853); measured 1.07798 → 2.07786 (latest recorded CI reference value, worse backend, run 37850579155).
  • New baseline docs/benchmarks/baselines/m2-particle-render-budget-rebaseline.md (the eleventh baseline; supersedes m2-particle-render.md as the latest recorded value) + baselines index entry.
  • Docs (DOC-003): docs/api/particle_render.md Budget bullet, src/laige-render/README.md, roadmap change log.
  • No PRD revision — step-level budget (the depth_sort_10k precedent). No engine code, workload, or test change — budget + docs only (methodology §1: no regression occurred; this is a gate-margin calibration on the reference toolchain).

Verification

  • Local (gated Linux non-instrumented trees, budget loaded at test time — no rebuild needed): ctest -R particle_render PASS on build, build-clang, build-release, build-shared; ctest -R budget_harness PASS (17-entry pin + well-formedness of the updated budgets.json).
  • The definitive gate-platform check is the merge-lane Linux x64 (clang++) job (the PR lane runs Windows/macOS only — M0-CI-01); expected to PASS: the new 3.0 ms bar covers every observed reference-lane mean with ≥ 12% margin.

@offdev
offdev merged commit b4ae10f into master Oct 9, 2026
13 of 14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant