From 6deda797d144413082c5bb8f29a539b523538e77 Mon Sep 17 00:00:00 2001 From: iChris4 Date: Thu, 24 Sep 2026 19:55:46 +0200 Subject: [PATCH] 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 --- OPENXR.md | 4 +++- docs/quest-port.md | 15 +++++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/OPENXR.md b/OPENXR.md index 99269db..7b8aebc 100644 --- a/OPENXR.md +++ b/OPENXR.md @@ -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 diff --git a/docs/quest-port.md b/docs/quest-port.md index 72dd7f2..68b3707 100644 --- a/docs/quest-port.md +++ b/docs/quest-port.md @@ -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