formats: check the derived paint order against the screens already verified
The layer-key order was adopted from two measured screens and then applied to every build on the disc, so it owed a regression check against the screens the corpus had already validated against the running game. Rendered the tutorial PAUSE menu and the title main menu both ways and diffed: 3.8 % and 1.1 % of pixels differ, max delta 45/255 and 34/255, and the two renders are indistinguishable in layout — the change is confined to blends where translucent sprites overlap. No regression, but which order is more faithful on those two screens is unsettled and recorded as such. Adds a corpus-wide test asserting every composite's draw list is strictly increasing in (layer key, declaration index), streaming one pak at a time so it does not OOM alongside the other whole-disc tests. It reports the rule's reach: 341 of 965 builds are reordered, and it fails if that share collapses.
This commit is contained in:
@@ -20,7 +20,7 @@ alive(){ ps -o pid=,stat= -C xenia_canary 2>/dev/null | awk '$2 !~ /^Z/ {print $
|
||||
for attempt in $(seq 1 "${ATTEMPTS:-4}"); do
|
||||
echo "=== attempt $attempt"
|
||||
pkill -9 -x xenia_canary 2>/dev/null; sleep 3
|
||||
( cd "$OUT" && nohup run-canary --mem_watch=false \
|
||||
( cd "$OUT" && nohup run-canary --mem_watch=false ${EXTRA_FLAGS:-} \
|
||||
--logged_profile_slot_0_xuid=B13EBABEBABEBABE \
|
||||
>"$OUT/canary.stdout" 2>&1 & )
|
||||
sleep 8
|
||||
@@ -49,12 +49,18 @@ python3 "$SD/pad.py" dpad down 0.08; sleep 1.2
|
||||
shot "$OUT/menu-on-tutorial.png"
|
||||
python3 "$SD/pad.py" tap A 0.3
|
||||
|
||||
for i in $(seq 1 24); do
|
||||
# TUTORIAL leads to DIFFICULTY (A picks NORMAL) and then SELECT DATA, where the
|
||||
# cache-flush crash fires. Keep pressing A through those and report what happens,
|
||||
# with the crash count, because "did it survive the throw" is the question.
|
||||
for i in $(seq 1 20); do
|
||||
sleep 8; s="$(screen)"
|
||||
shot "$OUT/after-$(printf '%02d' "$i").png"
|
||||
echo " t+$((i*8))s $s"
|
||||
[ "$s" = "flight" ] && { echo "IN FLIGHT"; break; }
|
||||
crashes=$(grep -c "CRASH DUMP" "$OUT/canary.stdout" 2>/dev/null || echo 0)
|
||||
echo " t+$((i*8))s $s crashes=$crashes"
|
||||
case $i in 2|5|9) echo " -> A"; python3 "$SD/pad.py" tap A 0.3 ;; esac
|
||||
[ "$s" = "flight" ] && [ "$crashes" = "0" ] && { echo "IN FLIGHT"; break; }
|
||||
done
|
||||
echo "final crash dumps: $(grep -c 'CRASH DUMP' "$OUT/canary.stdout" 2>/dev/null || echo 0)"
|
||||
echo "TUTORIAL LAUNCH ATTEMPT DONE (emulator left running)"
|
||||
exit 0
|
||||
done
|
||||
|
||||
Reference in New Issue
Block a user