Documented foveation on SNES Ghost Valley 2

- Retro Rewind's SNES Ghost Valley 2 at render_scale 1.0, GPU-bound at about 40 FPS: merging the
  eye passes lifts it from 38.9 to 41.5 FPS (app GPU 23.3 to 21.7 ms), and no foveation level
  raises the frame rate further.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
iChris4andClaude Opus 5.5 committed 2026-09-24 19:55:46 +02:00
1 parent 11084d13d9
commit 6deda797d1
2 files changed
+14 -5

No files matched your search

+3 -1
View File
@@ -670,7 +670,9 @@ At the Quest's default 0.8 an eye's time goes mostly to geometry and to storing
resolution. The Wii's shading is cheap, so foveation saves nothing measurable there, although the
density map verifiably applies (4x4 blocks at the view's edges on High). That is why it defaults to
`off`. At higher render scales it takes 8 to 22% off the eyes, which is where it earns its keep,
bought with a softer periphery.
bought with a softer periphery. It is no fix for a heavy track: on Retro Rewind's SNES Ghost Valley
2 at 1.0, GPU-bound at about 40 FPS, no level raised the frame rate, while merging the eye passes
did (39 to 41.5 FPS).
## Diagnostics
+11 -4
View File
@@ -170,10 +170,17 @@ at 0.8, and 492 to 525 MHz at 1.3, the unfoveated windows running at the higher
- A compositor screenshot (`TAKE_SCREENSHOT`, headset still on a desk) at High shows 4x4 pixel
blocks on the kart body at the bottom of the view, and smooth shading with foveation off.
So at the default render scale an eye's time is mostly geometry and full-resolution tile stores,
which a density map does not reduce (the stores stay full size for non-subsampled images).
Foveation stays off by default; it pays when `render_scale` is raised. Heavy Retro Rewind tracks
such as SNES Ghost Valley 2 were not measured.
- Retro Rewind's SNES Ghost Valley 2 at `render_scale` 1.0 (1680x1760), paused at the
countdown, GPU-bound at clock 640 MHz. That session ran without `fpslog`, so these are the
compositor's figures per setting (headset FPS, app GPU time, GPU busy). One render pass per
recorded pass: 38.9 FPS, 23.3 ms, 97%. Merged: 41.5 FPS, 21.7 ms, 96%. Low, Medium and High:
40.3, 39.4 and 39.6 FPS at 22.2, 22.4 and 22.0 ms, with the GPU busy falling to 95, 94 and 94%.
The merge helps here too, and no foveation level raised the frame rate.
So an eye's time on these tracks is mostly geometry and full-resolution tile stores, which a
density map does not reduce (the stores stay full size for non-subsampled images). Foveation
stays off by default; it pays only when `render_scale` makes the eyes pixel-bound, as at 1.3 on
Luigi Circuit.
### Controllers