docs(bench): add run-2 results (B4h, B7, B12b, B14) and journal

This commit is contained in:
logan committed 2026-10-18 09:57:30 -04:00
1 parent 60e10b35a3
commit a9f33f3a52
2 files changed
+94 -3

No files matched your search

+24
View File
@@ -553,3 +553,27 @@ pull MidnightLib 1.10.0, jar also dropped in `mods/`). Gamescope integration app
- Resume (stop the server first): `cd analysis/client-perf/harness && - Resume (stop the server first): `cd analysis/client-perf/harness &&
python3 matrix.py run B4h,B7,B12b --param gc=J0` (20 sessions, ~3.5 h). Then B13 python3 matrix.py run B4h,B7,B12b --param gc=J0` (20 sessions, ~3.5 h). Then B13
(manual spark), B14 (manual spawn counts), ship, owner report. (manual spark), B14 (manual spawn counts), ship, owner report.
## Session 2026-10-18 — run 2 + B14 done; server back
Overnight: 23:25 pause (owner) → 01:26 resume timer → matrix run 2 finished 03:18
(B4h, B7, B12b; all sessions ok after retries) → B7.noshader re-run on default JVM →
B14 defaults + shipped (33 rows each, biome_ok, config check ok) → server up 04:31.
06:00 safety timer saw the server running and left it (its "not Done" warning was a
scrolled-pane false alarm; readiness check now uses port 25565).
Results (full tables in `analysis/client-perf/RESULTS-proxy.md` §Run 2):
- B4h: smallest heap within spread = **5 GB** (4 GB loses S5) → PLAYER-TUNING note.
- B7: shaders' big cost is S2 — Flywheel backends drop (974 → ~120 fps avg) for every
profile; MakeUp shadowless near-free elsewhere, Complementary ~2× on S4.
- B12b: **Iris Flywheel Compat wins hugely under shaders** (S2 p99 13.3 → 4.0);
**Flerovium wins S3** (entities; B12b's S3 baseline anomalous, so confirm once).
Gnetum tie; BBE, Super Resolution, Ixeris (+1 crash), Cull Leaves rejected.
- B14 (n=1): rule says back off, but driven by one goose/duck herd at the warm-ocean
site; sea bunny never spawned in either config → inconclusive, needs ≥3 runs/config.
- Super Resolution's first launch rewrote bench `fml.toml` (`earlyWindowControl=false`,
unjournaled) → reset. Harness should snapshot/diff the whole config tree per session.
Remaining: B6 missing-texture check → ship modernfix-mixins; add Iris Flywheel Compat +
Flerovium (visual check, then `packwiz modrinth add`, then re-run B0); DH low-quality
visual check; B13 spark; B14 ×3 more; ship via build.py; owner report.
+70 -3
View File
@@ -72,7 +72,6 @@ Numbers are p99 ms / 1 % low fps; Δ is vs the block's C1 baseline (+ = better p
| B5 | Sable ships 0/1/4 (proxy) | S4 3.00/280.6, 3.12/261.6, 2.97/273.2 | — | ships nearly free on this GPU | | B5 | Sable ships 0/1/4 (proxy) | S4 3.00/280.6, 3.12/261.6, 2.97/273.2 | — | ships nearly free on this GPU |
| B5 | SSRD 32/64/128, sable-noshade (4 ships) | 3.02/265.0, 3.03/264.7, 3.11/261.9, 3.04/263.0 vs pooled C1 (−8 to −11 fps 1 % low) | loss/noise | keep C1 (SSRD 16, shading on); decay run deferred (fleet P0/P1) | | B5 | SSRD 32/64/128, sable-noshade (4 ships) | 3.02/265.0, 3.03/264.7, 3.11/261.9, 3.04/263.0 vs pooled C1 (−8 to −11 fps 1 % low) | loss/noise | keep C1 (SSRD 16, shading on); decay run deferred (fleet P0/P1) |
| B6 | ModernFix dynamic_resources off vs on (C1) | S1 9.11/83.8 vs 8.48/98.6; S2 3.29/236.1 vs 3.18/264.0; startup 33.92 vs 26.32 s | dynres on **wins** | ship `modernfix-mixins.properties` **after** the manual missing-texture check | | B6 | ModernFix dynamic_resources off vs on (C1) | S1 9.11/83.8 vs 8.48/98.6; S2 3.29/236.1 vs 3.18/264.0; startup 33.92 vs 26.32 s | dynres on **wins** | ship `modernfix-mixins.properties` **after** the manual missing-texture check |
| B7 | shaders ×4 profiles | no-shader baseline only (S1 8.24/105.3, S2 3.21/266.9, S4 2.53/326.0) | pending run 2 | — |
| B8 | Fresh Animations (+Ext) on S3 | 8.65/104.9 (FA), 10.20/89.0 (FA+Ext) vs 4.32/184.6 | large cost | keep opt-in; document in PLAYER-TUNING | | B8 | Fresh Animations (+Ext) on S3 | 8.65/104.9 (FA), 10.20/89.0 (FA+Ext) vs 4.32/184.6 | large cost | keep opt-in; document in PLAYER-TUNING |
| B8 | EMF animation LOD 20 / 8 (with FA) | vs C1-fa (LOD 12) 8.65/104.9: LOD 20 8.91/101.8 (tie), LOD 8 8.16/108.0 (+0.49, +3.1 → win) | LOD 8 wins under FA | optional: LOD 8 for FA users (PLAYER-TUNING note) | | B8 | EMF animation LOD 20 / 8 (with FA) | vs C1-fa (LOD 12) 8.65/104.9: LOD 20 8.91/101.8 (tie), LOD 8 8.16/108.0 (+0.49, +3.1 → win) | LOD 8 wins under FA | optional: LOD 8 for FA users (PLAYER-TUNING note) |
| B8 | LambDynamicLights fancy / fastest | 4.41/181.8, 4.35/187.7 vs 4.32/184.6 | tie | keep C1 `fast` | | B8 | LambDynamicLights fancy / fastest | 4.41/181.8, 4.35/187.7 vs 4.32/184.6 | tie | keep C1 `fast` |
@@ -80,11 +79,79 @@ Numbers are p99 ms / 1 % low fps; Δ is vs the block's C1 baseline (+ = better p
| B10 | Sound Physics rays up / strict / no caps (S2s) | 3.69/216.2 (loss), 3.58/233.7 (tie), 3.64/216.9 (loss) vs 3.52/237.6 | loss/tie | keep C1 | | B10 | Sound Physics rays up / strict / no caps (S2s) | 3.69/216.2 (loss), 3.58/233.7 (tie), 3.64/216.9 (loss) vs 3.52/237.6 | loss/tie | keep C1 |
| B11 | Sodium 3 builder threads, blend 0/2, mipmaps 4 | all losses except blend 2 (S5 tie); e.g. mip4 S1 8.82/97.6 vs 8.12/104.2 | loss/tie | keep C1 | | B11 | Sodium 3 builder threads, blend 0/2, mipmaps 4 | all losses except blend 2 (S5 tie); e.g. mip4 S1 8.82/97.6 vs 8.12/104.2 | loss/tie | keep C1 |
| B12a | remove BadOptimizations / Particle Core / Sodium Extra | each loses ≥1 scene (e.g. S3 3.93/205.3, 4.63/188.4, 4.61/187.5 vs 3.87/212.5) | keep all | no change | | B12a | remove BadOptimizations / Particle Core / Sodium Extra | each loses ≥1 scene (e.g. S3 3.93/205.3, 4.63/188.4, 4.61/187.5 vs 3.87/212.5) | keep all | no change |
| B4h, B7 shader rows, B12b | heap ladder, shader profiles, trial mods | — | **pending run 2** | — | | B4h, B7, B12b, B14 | see **Run 2** below | | | |
| B13, B14 | spark profile; spawn-tuning counts | — | **pending (manual)** | — | | B13 | spark profile | — | **pending (manual)** | — |
## Run 2 (2026-10-17/18): B4h, B7, B12b, B14
Same machine and method; **default JVM** (run 1's B5–B12a ran on a leaked J3/6 GB JVM —
harness bug fixed in `60e10b3`; within-block verdicts unaffected). Verdicts use the B0
thresholds (p99 0.40 ms, 1 % low 6.6 fps); one session per row, so treat single-scene
margins near the threshold as soft. Numbers: p99 ms / 1 % low fps.
### B4h — heap ladder (J0, S2 + S5)
| heap | S2 | S5 |
|---|---|---|
| 4 GB | 3.58 / 229.1 | 3.32 / 188.7 |
| 5 GB | 3.58 / 238.6 | 3.13 / 209.1 |
| 6 GB | 3.63 / 225.7 | 3.14 / 211.8 |
| 8 GB | 3.58 / 234.5 | 3.18 / 209.2 |
**Smallest heap within the winner's spread: 5 GB** (S5 1 % low 209.1 vs best 211.8).
4 GB loses on S5 (−23 fps). Heap is a launcher setting, not a shipped config →
PLAYER-TUNING recommendation (≥ 5 GB), not a `build.py` change.
### B7 — shaders (data for owner; no auto-decision)
| profile | S1 vegetation | S2 Create floor | S4 airships |
|---|---|---|---|
| none (run-2 re-run) | 8.13 / 103.6 (274 fps avg) | 3.28 / 260.4 (974) | 2.50 / 332.5 (1072) |
| MakeUp shadowless-medium | 8.69 / 97.3 (263) | 12.88 / 67.9 (120) | 2.58 / 314.0 (1050) |
| MakeUp medium | 10.04 / 88.4 (213) | 12.32 / 71.9 (121) | 2.94 / 280.4 (779) |
| Complementary LOW | 10.85 / 83.2 (182) | 13.23 / 64.0 (120) | 4.16 / 205.2 (444) |
| Complementary MEDIUM | 10.92 / 78.5 (175) | 13.27 / 67.4 (118) | 4.33 / 192.8 (401) |
All shader rows loaded the pack (no `shader_not_loaded`). The dominant cost is **S2**:
any shaderpack makes Flywheel drop its GPU backends, so the Create floor goes from
974 to ~120 fps average (p99 3.3 → ~13 ms) regardless of profile. Elsewhere MakeUp
shadowless is nearly free; Complementary costs ~2.7 ms p99 on S1 and ~2× frame time on S4.
→ Supports **opt-in shaders**, MakeUp first, and **Iris Flywheel Compat** (B12b).
### B12b — trial mods (each vs its own baseline)
| trial | result | verdict |
|---|---|---|
| **Iris Flywheel Compat** 2.4.0 (MakeUp default, vs shader-baseline) | S2 **3.98 / 218.3 vs 13.26 / 65.8** (avg 644 vs 117 fps); S1 9.92 / 84.8 vs 10.23 / 83.8 (tie); S4 3.10 / 266.1 vs 3.01 / 277.6 (1 % low −11.5, loss) | **win under shaders** (restores Flywheel instancing) — add after a visual check of Create contraptions/airships with a shaderpack (unofficial mod; breaks on Create/Iris updates) |
| **Flerovium** 1.1.2 (vs C1) | S3 **3.48 / 229.9 vs 5.71 / 147.4**; S1/S2/S5 tie | **win** on entities — but the B12b C1 S3 baseline (5.71) is worse than every run-1 C1 S3 (4.32–4.46), so the true gain is ~0.9 ms / +45 fps vs run 1. Add after one confirmation pair |
| Gnetum 3.3.6 | S3 4.41 / 189.3 (vs anomalous 5.71; ≈ run-1 C1) ; S1/S2/S5 tie | tie in practice → no add |
| Better Block Entities 1.3.4 | S2 3.51 / 245.3 (loss), S3 loss; with FA 9.86 / 89.8 vs 9.52 / 87.4 (tie) | reject |
| Super Resolution 0.9.2-alpha.2 | S1 8.74 / 99.7 (loss), S5 1 % low −16.6 (loss) | reject on this proxy (P0-only lever; its first launch rewrites `fml.toml` and demands a restart) |
| Ixeris 4.6.8 | S1 p99 −0.49 (loss), S5 1 % low −12.2 (loss); **one crash** (NPE in `GameRules.getInt` during server tick, retry ok) | reject |
| Cull Leaves 4.1.1 (vs Better Leaves baseline) | S1 tie; S5 1 % low 208.8 vs 217.1 (loss) | reject |
New mod adds (Iris Flywheel Compat, Flerovium) ⇒ **re-run B0** before any later matrix work.
### B14 — spawn tuning (defaults vs shipped, 10 min per site, **1 run each**)
| site | defaults total / tuned | shipped total / tuned |
|---|---|---|
| jungle (−8 107 −201) | 123 / 5 | 118 / 3 |
| river (904 63 88) | 208 / 29 | 208 / 25 |
| warm ocean (−200 63 56) | 155 / 22 | 130 / 0 |
Automated rule says **back off**, but it is driven by one Fowl Play herd: at the warm-ocean
site defaults spawned 14 geese + 8 ducks (on nearby land/water inside the 128-block
sphere), shipped none; the other "vanished" species (gazelle, dragonfly) had max count 1.
Sea bunny — the warm-ocean target — appeared under neither config, so that site doesn't
exercise it. **Inconclusive at n = 1**: needs ≥ 3 interleaved runs per config (≈ 3 h)
before any back-off; if it persists, the candidate is Fowl Play duck/goose weights.
All runs: 33 count rows, `biome_ok=1`, config check ok.
## Caveats ## Caveats
- Run 2: Super Resolution's first launch flipped `earlyWindowControl` in the bench `fml.toml` (not journaled by the harness); later run-2 sessions started with it off. Loading-screen only — frametimes unaffected; startup times after 01:54 are not comparable. Reset 2026-10-18.
- **Single proxy machine.** Fleet machines (P0–P2) were unreachable; the fleet fps floors - **Single proxy machine.** Fleet machines (P0–P2) were unreachable; the fleet fps floors
(P0 1 % low ≥ 30, P1/P2 ≥ 60) don't map to a 7800 XT — every verdict here is relative. (P0 1 % low ≥ 30, P1/P2 ≥ 60) don't map to a 7800 XT — every verdict here is relative.
B2's "C1 wins on ≥ 2 machines" gate is satisfied on one machine only. B2's "C1 wins on ≥ 2 machines" gate is satisfied on one machine only.