Frametests: add framedump rendering test runner and PNG screenshot support

- Add frametests.py: walks a dump tree, renders each dump per config variant
  through PPSSPPHeadless, generates reference images when missing and compares
  MSE when present, and writes a self-contained HTML report. The JSON config
  (which lives with the test set, not in the repo) points at the data tree
  and defines variants as suffix -> CLI args, e.g. 'soft': '--graphics=software'.
- Headless: --screenshot-save saves PNG when the path ends in .png; new
  --screenshot-diff always writes a visual comparison when comparing;
  screenshot comparison failures (mismatch or unloadable reference) now fail
  the test instead of passing silently.
- Read back framebuffers top-down, flipping only for BMP output/input
  (fixes upside-down PNG references). Sync libretro copy accordingly.
- Document the system in docs/frametest.md; add AGENTS.md reference.
This commit is contained in:
Henrik Rydgård committed 2026-08-09 13:41:39 +02:00
1 parent b67667cbd1
commit 893ac3e3db
12 files changed
+694 -28

No files matched your search

+5 -2
View File
@@ -60,6 +60,9 @@ ppsspp.ini
imgui.ini
PPSSPPControls.dat
# Frametest output (see frametests.py)
frametest-out/
# Gradle/Android Studio
.gradle
.idea
@@ -147,5 +150,5 @@ RAPrefs_PPSSPP.cfg
# For CLion
cmake-build-*/
/.vscode/
/.vscode/