Skip to content

[M2-ISO-02] Budget revision: re-baseline iso_depthkey_rebuild to 0.3 ms (zero-margin CI gate) - #73

Merged
offdev merged 1 commit into
masterfrom
fix/m2-iso-02-budget-rebaseline
Oct 4, 2026
Merged

offdev merged 1 commit into
masterfrom
fix/m2-iso-02-budget-rebaseline

Conversation

@offdev

@offdev offdev commented Oct 4, 2026

Copy link
Copy Markdown
Owner

Why

CI is red on master (run 37194767648) and has flapped on PR lanes: the
iso_depthkey_rebuild budget gate (PRD §8.1, mean ≤ 0.2 ms for 10k
dirty cells after a terrain edit) fails the Linux x64 (clang++)
reference lane on unchanged engine code.

The gate's platform is the CI reference machine (methodology §5:
"CI is the gate"): ubuntu-24.04, Clang 18.1.3, CMake Debug, shared
runner. That toolchain measures this workload at 0.194–0.267 ms —
straddling the 0.2 ms bar. Whether the gate passes is decided by how
busy the shared runner is at the moment, not by the engine:

CI reference-lane run fpx16_16 mean fp32_pinned mean result
37192995927 attempt 1 (PR #72 lane) 0.194142 0.201495 PASS / FAIL
37192995927 attempt 2 (slow runner) 0.266709 0.267328 FAIL / FAIL
37194767648 (master, commit 70830a7) 0.202146 / 0.202204 0.202018 / 0.194168 FAIL (one backend passed 0.07% under the bar in the same job)

Not a regression: the engine's setTile path is unchanged since the
2026-10-01 division-free workload fix (five merges in between, none
touching iso_depth_table), and the Linux x64 (g++) lane of run
37194767648 passed the same workload on the same commit.

The 0.2 ms bar was calibrated from local-machine runs (0.081 ms
canonical g++ -O0; 0.139 ms local Clang -O0) and was never re-verified
with margin on the reference toolchain — the exact lesson the
m2-iso-depth-table-workload-fix baseline recorded.

The fix (PRD revision, per the NFR-8.1 policy)

The PRD §8.1 policy says a budget "is revised via a PRD revision" — so
this PR does exactly that, in one change:

  • PRD.md — v0.4: §8.1 row ≤ 0.2 ms → ≤ 0.3 ms (+ change note).
  • budgets.json — target 0.2 → 0.3; measured 0.0814067 →
    0.202204 (latest recorded CI reference value, worse backend).
  • New baseline docs/benchmarks/baselines/m2-iso-depth-table-budget-rebaseline.md
    (eighth baseline) — verbatim CI reports, before/after, margin math:
    0.3 ms is 48% above the latest recorded reference value and 12.4%
    above the worst observed reference-lane mean (0.267328, slow-runner
    outlier). The gate's metric is the mean (n=3000, warmup 100), so
    single-iteration spikes don't drive it.
  • Docs — docs/api/iso_depth_table.md, docs/api/iso_depth_key.md,
    docs/concepts/coordinates.md, docs/README.md, the baselines
    index, and the M2/M5/M8 roadmap budget references updated in the
    same change (DOC-003); milestone change-log row added.

No engine code, workload, or test changes — this is a
calibration of the gate's margin on the reference toolchain, not a
benchmark change to hide a regression (methodology §1; no regression
occurred). 0.3 ms for 10k dirty cells is 1.8% of the 16.7 ms frame
budget — the product promise stays tight, and a future >10% regression
still trips the 10% band against before = 0.202204.

Verification

  • LAIGE_BUDGETS_PATH=$PWD/budgets.json ./build/bin/laige-render_tests --gtest_filter='IsoDepthTableBudget*' — both backends PASS
    (after≈0.082/0.084 ms local, before=0.202204, target=0.3).
  • laige-core_tests --gtest_filter='BudgetHarnessTable*' — 4/4 PASS
    (repo budgets.json still schema-valid, 16-entry pin intact).
  • CI on this PR (Linux g++/clang++ reference lanes run the gate
    against the new 0.3 ms target) is the definitive check.

Note: the failed master run 37194767648 was re-run (attempt 2) while
this PR was in preparation; once this PR merges, the next master run
carries the 0.3 ms target.

…ms (zero-margin CI gate)

The iso_depthkey_rebuild gate (PRD 8.1, mean <= 0.2 ms, 10k dirty cells) failed the CI Linux x64 (clang++) reference lane repeatedly on unchanged engine code: the reference toolchain (Clang 18.1.3, CMake Debug, ubuntu-24.04 shared runner) measures the workload at 0.194-0.267 ms, straddling the 0.2 ms bar - runner variance, not a regression (the g++ lane passed the same commit; the setTile path is unchanged since the 2026-10-01 workload fix).

Per the NFR-8.1 policy ('unless the budget is revised via a PRD revision'): PRD v0.4 revises the 8.1 row to <= 0.3 ms; budgets.json target 0.2 -> 0.3, measured 0.0814067 -> 0.202204 (latest recorded CI reference value, worse backend). New baseline docs/benchmarks/baselines/m2-iso-depth-table-budget-rebaseline.md (eighth baseline, verbatim CI evidence); docs and roadmap budget references updated in the same change. No engine code, workload, or test changes.
@offdev
offdev merged commit 0e4e4ad into master Oct 4, 2026
11 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