[iterate-4A] intro-video: re-baseline boot golden 50M -> 200M after clock fix
The clock fix (INSTRUCTIONS_PER_MS 10_000 -> 1_000_000, commit 645feb8) moves
the worker-hub +66 ms render gate from ~660k to ~66M instructions, so the old
-n 50M anchor is now pre-render (swaps=0) and no longer guards boot rendering.
Re-anchor sylpheed_n50m -> sylpheed_n200m: at -n 200M the fixed build renders
steadily (draws=3165, swaps=895) and the stable digest is deterministic across
repeated inline lockstep runs. Renames the golden, updates the test's -n and
doc comment, and refreshes tests/golden/README.md. Per the README's re-baseline
policy (intentional digest move -> separate commit).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -7,11 +7,16 @@ These JSON files anchor `xenia-rs check` digest output for Project Sylpheed.
|
||||
| File | -n | Mode | Captures |
|
||||
|------|----|------|----------|
|
||||
| `sylpheed_n2m.json` | 2_000_000 | full digest | early boot (swaps=0, no rendering) |
|
||||
| `sylpheed_n50m.json` | 50_000_000 | stable-digest | first VdSwap pair (swaps=2 post-Phase-A) |
|
||||
| `sylpheed_n200m.json` | 200_000_000 | stable-digest | steady boot rendering (draws=3165, swaps=895) |
|
||||
|
||||
Note: `sylpheed_n200m.json` replaces the former `sylpheed_n50m.json`. The
|
||||
intro-video clock fix (`INSTRUCTIONS_PER_MS` 10_000 → 1_000_000) moved the
|
||||
worker-hub `+66 ms` render gate to ~66M instr, so 50M is now pre-render
|
||||
(swaps=0). Re-anchored to 200M to keep the golden guarding boot rendering.
|
||||
|
||||
## Stable-digest mode
|
||||
|
||||
`sylpheed_n50m.json` is captured with `--stable-digest`, which omits
|
||||
`sylpheed_n200m.json` is captured with `--stable-digest`, which omits
|
||||
timing-sensitive counters: `packets` (±2–8% lockstep noise from a GPU thread
|
||||
race), `resolves`, `interrupts_delivered`, `interrupts_dropped`,
|
||||
`texture_decodes`. The remaining fields are byte-identical across repeated
|
||||
@@ -35,9 +40,10 @@ a separate commit and reference the audit ID in the message.
|
||||
cargo build --release -p xenia-app
|
||||
target/release/xenia-rs check \
|
||||
"$SYLPHEED_ISO" \
|
||||
-n 50000000 \
|
||||
-n 200000000 \
|
||||
--gpu-inline \
|
||||
--stable-digest \
|
||||
--out crates/xenia-app/tests/golden/sylpheed_n50m.json
|
||||
--out crates/xenia-app/tests/golden/sylpheed_n200m.json
|
||||
```
|
||||
|
||||
## Running the goldens
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"instructions": 50000200,
|
||||
"imports": 189264,
|
||||
"instructions": 200000239,
|
||||
"imports": 575447,
|
||||
"unimpl": 0,
|
||||
"draws": 768,
|
||||
"swaps": 157,
|
||||
"draws": 3165,
|
||||
"swaps": 895,
|
||||
"unique_render_targets": 2,
|
||||
"shader_blobs_live": 6,
|
||||
"texture_cache_entries": 1
|
||||
@@ -99,12 +99,15 @@ fn run_oracle(label: &str, max_instr: u64, golden_rel: &str) {
|
||||
}
|
||||
}
|
||||
|
||||
/// Sylpheed boot to first VdSwap pair, captured at -n 50M lockstep.
|
||||
/// Catches regressions in: addi/addic semantics, kernel HLE for VdSwap path,
|
||||
/// thread spawning, file I/O for sound/config. With Phase A's swap fix landed,
|
||||
/// `swaps` should be 2 and `draws` 0 (Phase E gates draws>0).
|
||||
/// Sylpheed boot to steady rendering, captured at -n 200M lockstep.
|
||||
/// Catches regressions in: addi/addic semantics, kernel HLE for the VdSwap
|
||||
/// path, thread spawning, file I/O for sound/config, and boot render
|
||||
/// throughput. Re-anchored from 50M to 200M after the intro-video clock fix
|
||||
/// (INSTRUCTIONS_PER_MS 10_000 -> 1_000_000): the worker-hub +66 ms render
|
||||
/// gate now elapses at ~66M instr, so 50M is pre-render; by 200M boot is
|
||||
/// rendering steadily (`draws` 3165, `swaps` 895).
|
||||
#[test]
|
||||
#[ignore = "long-running; run via `cargo test ... -- --ignored sylpheed_n50m`"]
|
||||
fn sylpheed_n50m() {
|
||||
run_oracle("sylpheed_n50m", 50_000_000, "tests/golden/sylpheed_n50m.json");
|
||||
#[ignore = "long-running; run via `cargo test ... -- --ignored sylpheed_n200m`"]
|
||||
fn sylpheed_n200m() {
|
||||
run_oracle("sylpheed_n200m", 200_000_000, "tests/golden/sylpheed_n200m.json");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user