Record manual acceptance and validate performance guards on current master

This commit is contained in:
Matthew Stanley
2026-09-05 12:41:00 -07:00
parent cbd2799109
commit ccea1dbe57
3 changed files with 50 additions and 1 deletions
+43
View File
@@ -585,3 +585,46 @@ supports retaining the candidates in the isolated burndown branch for further
qualification. Normal-speed audio/pacing, constrained-host comparisons,
multi-title correctness and actual low-end hardware remain open. Do not ship
the local uncap hook as a gameplay default.
## MANUAL-INTEGRATION-004: user sign-off and master integration
Date: 2026-09-05. The user reviewed the Tomba 2 and Mega Man X6 manual builds,
reported that they "look good", and explicitly authorized committing and
merging the work to main/master. This is user acceptance of the supplied test
builds, not an instrumented audio comparison, full-title playthrough or a new
performance measurement.
Both manual builds used the combined guards from `04371d60`, normal pacing,
OpenGL, recomp-ui, production debug-tools OFF, rewind ON, existing generated
game/BIOS code and isolated copied memory cards. Recomp-ui displayed verified
discs with BIOS paths supplied. Final executable SHA256 values:
- Tomba 2: `6d978d8e2a736aa8b94cb076091117edbe76f6fa7c7f061df227233be8a648ad`.
- Mega Man X6: `4c99e7a6092122b6675daf83f52eddb76a71b0b5290b474c7f4d494df84135b2`.
The initial Tomba build disabled rewind to bypass a dependency lookup; review
rejected that workaround and the final build restored rewind. Mega Man X6's
older recomp-ui headers were incompatible with the runtime, so its manual
build used the compatible Tomba 2 recomp-ui checkout. Neither original game
installation was edited. Local build logs/settings/screenshots remain under
the original burndown worktree's `.local/manual-validation` directory.
Integration uses `origin/master` at `17f49ad3` as its base. Only the six campaign
commits `6488414a`, `d38f97e1`, `8ec6498d`, `28e9c844`, `0cf93d57`, and
`04371d60` were transplanted; the older review-branch ancestry was excluded.
All six applied without conflicts. The runtime delta remains only the three
production diagnostic guards; benchmark uncapping and local game artifacts
are not part of the merge.
The first integration GPU test failed because its old polyline fixture supplied
only one vertex before the terminator. Upstream now correctly requires two
vertices. The fixture now supplies both; the upstream runtime fix is unchanged.
On the integrated sources, all three actual-source guard regressions and the
63 campaign/host/stall-report tests pass. The previously tested game executables
are not rebuilds of this newer upstream base; no such equivalence is claimed.
The CMake registration guard also passes with 133 test files registered.
Disposition: user-approved integration of the scoped optimizations, tests and
measurement tools. The original WIP label records the historical state at
implementation time. The broader burndown, general speedup qualification and
actual low-end hardware coverage remain open after this merge.
+4
View File
@@ -16,6 +16,10 @@ threading or Vulkan behavior has changed.
[PACER-COST-001](EXPERIMENTS.md#pacer-cost-001-attribute-idle-pacing-cpu-cost)
provides idle-pacer CPU attribution, not a speedup claim.
[MANUAL-INTEGRATION-004](EXPERIMENTS.md#manual-integration-004-user-sign-off-and-master-integration)
records the user's Tomba 2/Mega Man X6 sign-off and approval to integrate the
scoped guards. This does not close the wider performance/correctness campaign.
## Disposition Matrix
| Area | Current disposition | Evidence | Candidate / next check | Correctness guardrails |
+3 -1
View File
@@ -100,6 +100,8 @@ static void emit_copy(uint32_t src_xy, uint32_t dst_xy, uint32_t wh) {
static void emit_polyline(void) {
gpu_write_gp0(0x4800007Fu);
gpu_write_gp0((20u << 16) | 10u);
/* The first two vertices are mandatory, before any terminator. */
gpu_write_gp0((25u << 16) | 15u);
gpu_write_gp0(0x55555555u);
s_frame_count++;
checkpoint();
@@ -466,7 +468,7 @@ def main() -> int:
if prod_out["copydump"] != "0" or prod_out["polydump"] != "0":
fail("production GP0 history frame dumps should be empty")
if debug_out["total"] != "10" or int(debug_out["cap"]) == 0:
fail("debug GP0 history stopped recording")
fail(f"unexpected debug GP0 history: {debug_out}")
if debug_out["src"] != "00123400" or debug_out["op"] != "e1":
fail("debug GP0 history lost source/opcode tracking")
if debug_out["cmd0"] != "e10003ff":