re: the game surface is rendering BLACK -- check that before explaining absences

The named experiment was to attach the fast probe at t=0 so the boot
title could not be missed. Done, default config, English:

  2391 frames in 600.4 s = 3.98 fps; max glyph 0; hits 0

Ten minutes sampled four times a second FROM LAUNCH, no green-(A) glyph.
So "the plate only shows in an early boot window I keep missing" is mine
and refuted -- the third explanation refuted in three iterations.

Then the check that should have come first. Splitting the raw root grab
into bands:

  y   0- 44 (GTK menu bar)   100.00% non-black   mean 210.50
  y  45-719 (game surface)     0.08% non-black   mean   0.07

The game is rendering black, reproducibly across back-to-back samples,
while the guest is alive and polling input (XamInputGetKeystrokeEx past
1201 calls) and MEM-WATCH keeps reporting. The crop and every pixel
oracle were correct; there was nothing on the surface to detect.

What this does NOT do is retroactively explain the earlier failures, and
claiming so would be the fourth over-reach in a row. Those runs had
content: run 2 sampled mean 33.1, run 3's classifier measured real
frame-to-frame rmse, the gamma_type=0 run measured mean 122.8. The
failure mode CHANGED over the session; black is the newest and worst.

Hypothesis for the regression, untested: canary's shader/pipeline cache
is 47 MB and was last written 23:49 on Aug 28, during the failed runs,
and this session has kill -9'd the emulator repeatedly. The test is to
move cache* aside and boot again -- one line and one run, not done.

Two METHOD lines: ask whether the screen is drawing anything before
explaining why a feature of it is missing; and a newly found fault does
not retroactively explain older failures.
This commit is contained in:
Sylpheed RE agent
2026-08-29 01:49:42 +00:00
parent e492cee8b9
commit 8f07819b02
3 changed files with 71 additions and 0 deletions

View File

@@ -518,3 +518,17 @@ agent's loop prompt, i.e. nowhere durable. See [`README.md`](README.md) for the
happened not to be the cause — the most seductive kind, because fixing it feels
like confirmation. A plausible mechanism that explains a failure is a
hypothesis, and the fix is its experiment, not its proof.
* **Ask whether the screen is drawing anything before explaining why a feature of
it is missing.** Four iterations produced four explanations for "the title is
not detected" — a stale oracle, the locale, the sampling rate, a one-shot boot
window — and three of them were refuted in turn. Splitting a raw root grab into
bands then showed the game surface at **0.08 % non-black, mean 0.07**: it was
rendering black. The check costs one command and belongs at the *front* of that
sequence, not after the fourth hypothesis. A detector reporting absence is
ambiguous between "the feature is not there" and "nothing is there".
* **A newly found fault does not retroactively explain older failures.** The
black surface is real and reproducible *in the run where it was measured*.
Earlier runs in the same session had measurable content (mean 33.1, mean 122.8,
non-zero frame-to-frame rmse), so the failure mode changed over the session.
Reaching back to re-explain earlier results with the newest cause would have
been the fourth over-reach in a row.