Commit Graph
16 Commits
Author SHA1 Message Date
Henrik Rydgård 8c9bf04add Headless: force opaque PNG screenshots by default, add --screenshot-keep-alpha
Games often use the framebuffer alpha channel for non-visual purposes,
so saved PNGs could look fully transparent in image viewers. Force alpha
to 255 when writing PNG screenshots unless --screenshot-keep-alpha is
passed. The MSE comparison ignores alpha either way.
2026-08-09 13:41:39 +02:00
Henrik Rydgård 893ac3e3db 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.
2026-08-09 13:41:39 +02:00
Henrik Rydgård e0ddfc7109 Add --print-equal-lines option to headless, good for context when looking at output 2026-07-29 18:55:00 +02:00
Henrik Rydgård 8ff9793e32 Headless: Update the documentation, remove outdated teamcity stuff (used DeepSeek V4 Flash) 2026-07-18 18:35:46 +02:00
Unknown W. Brackets f009d15078 headless: Allow screenshot to not be 512x272.
Ended up with a cropped screenshot for a frame dump, which just silently
crashed.  Could reject, but easy enough to support.
2022-10-18 21:33:47 -07:00
Unknown W. Brackets fb69d56387 Headless: Generate a difference highlighting png.
Only for graphics tests that generate a screenshot, including ppdmp.
2021-11-07 11:05:17 -08:00
Unknown W. Brackets 92f9d3dc46 Headless: Move screenshot compare to class. 2021-11-07 10:03:49 -08:00
Henrik Rydgård 2e16e83159 It never ends... 2021-05-13 10:39:16 +02:00
Unknown W. Brackets c73d8ab1d0 Headless: Add specific GitHub Actions logging. 2020-12-31 00:21:09 -08:00
Henrik Rydgård 6a1fa728d8 Remove Globals.h 2017-08-31 17:15:22 +02:00
Chin 37f50a3792 Change to pass some arguments by reference 2015-03-01 16:49:00 +01:00
Unknown W. Brackets af9e0510c3 Use the debug interface to compare screenshots.
This way it's already implemented in all backends.
2014-08-30 09:45:51 -07:00
Unknown W. Brackets 0185825b23 Support the verbose test compare parameter. 2013-09-17 00:15:19 -07:00
Unknown W. Brackets 9a2ea4cdc1 Move the actual test run to its own function. 2013-09-16 23:49:41 -07:00
Unknown W. Brackets 57b636816b Add an internal comparison algorithm to headless.
This is slightly smarter than the test.py version, and should be
completely compatible.  It doesn't handle timeouts though.
2013-09-16 08:30:02 -07:00
Unknown W. Brackets 6a72b0d325 Separate out the actual screenshot comparison.
Fixes #109.
2013-02-08 00:25:29 -08:00