Fixed foveated rendering
- See also: Terms and Technical Terms
Fixed foveated rendering (FFR) is a performance–optimisation technique used primarily in Virtual Reality (VR) and Augmented Reality (AR). It exploits the characteristics of the human visual system—very high acuity in the Fovea and much lower acuity in the periphery—to lower the rendering workload on a GPU without noticeably degrading perceived image quality.[1][2]
Unlike Dynamic foveated rendering (DFR)—which relies on Eye tracking to move the high-quality region to the user’s current gaze—**FFR keeps that region fixed**, typically centred in the view, and progressively reduces resolution or shading rate towards the edges.[3] Because fragment shading is the dominant cost in modern high-resolution VR, reallocating it in this way can yield **34 – 65 % fragment-shader savings under typical loads**.[4]
How it works
Visual acuity falls off steeply outside the central ≈1 – 2° of vision.[5] FFR divides the render target into concentric zones:
- Foveal zone – full resolution / 1× shading
- Parafoveal zone – moderate reduction (e.g., ½×)
- Peripheral zone – stronger reduction (e.g., ⅛× or 1⁄16×)
- (optional) Far-peripheral zone
The exact boundaries are tuned per title and headset.[6]
Technical implementation
Variable Rate Shading (VRS)
Modern GPUs expose hardware VRS so developers can supply a *shading-rate map* that matches the FFR zones.
- NVIDIA first delivered VRS in Turing GPUs.[7]
- AMD introduced it in **RDNA 2** (RX 6000 / Radeon PRO W6000) and later cards.[8]
- Mobile Adreno GPUs provide VRS through Vulkan extensions.[1]
API support is available in DirectX 12 Ultimate[9], Vulkan ‘‘VK_KHR_fragment_shading_rate’’[10] and Apple’s Metal *Rasterization Rate Maps*.
Multi-resolution & lens-matched shading
An earlier vendor-specific approach rendered peripheral tiles to lower-resolution targets and then re-assembled them (NVIDIA *Multi-Res Shading*).[11] Valve’s ‘‘Lens-Matched Shading’’ aligns the shading pattern with optical distortion, saving additional work.[12]
Advantages
- **Performance:** measured shader-time reductions of 34 – 65 %.[4]
- **Lower power / heat:** critical on battery-powered headsets.[1]
- **No eye-tracking hardware required.**
Limitations
- The high-quality region is **fixed**; users who glance sideways may notice blur or aliasing.[13]
- Aggressive settings can introduce shimmering or visible zone boundaries.[14]
Platform & engine support
- **Standalone VR:** Meta Quest (Go → Quest 3) ships user-selectable FFR levels.[15]
- **Game engines:** built-in toggles exist in Unity[16] (including OpenXR plug-in[17]) and Unreal Engine 4.27+.[18]
- **Consoles & PC VR:** No system-level FFR exists on the original PlayStation VR, but some titles (e.g., Farpoint) implemented custom multi-resolution shading.[19]
Comparison with Dynamic Foveated Rendering
Feature | Fixed foveated rendering | Dynamic foveated rendering |
---|---|---|
Eye-tracking required | No | Yes |
Typical shader savings | 34–65 %[4] | Up to ≈70 %[3] |
User may notice blur if looking off-centre | Yes | No (if tracking latency is low) |
Hardware cost | Lower | Higher |
Future research
- **Hybrid FFR + DFR** schemes that fall back to fixed maps when gaze data is unreliable.[20]
- **Neural reconstruction** (e.g., DeepFovea) that regenerates fine detail in the low-resolution periphery.[21]
See also
References
- ↑ 1.0 1.1 1.2 "The Evolution of High-Performance Foveated Rendering on Adreno". 7 July 2021. https://www.qualcomm.com/developer/blog/2021/07/evolution-high-performance-foveated-rendering-adreno.
- ↑ "Save GPU with Eye-Tracked Foveated Rendering". 19 Oct 2022. https://developers.meta.com/horizon/blog/save-gpu-with-eye-tracked-foveated-rendering/.
- ↑ 3.0 3.1 Template:Cite journal
- ↑ 4.0 4.1 4.2 Template:Cite journal
- ↑ Template:Cite journal
- ↑ Template:Cite journal
- ↑ "Variable Rate Shading (VRS)". https://developer.nvidia.com/vrworks/graphics/variablerateshading.
- ↑ "A Foundation for High-Performing Graphics – AMD RDNA 2 Architecture". 2021. https://www.amd.com/content/dam/amd/en/documents/products/graphics/workstation/rdna2-explained-radeon-pro-W6000.pdf.
- ↑ "Variable Rate Shading – a scalpel in a world of sledgehammers". 18 Mar 2019. https://devblogs.microsoft.com/directx/variable-rate-shading-a-scalpel-in-a-world-of-sledgehammers/.
- ↑ "VK_KHR_fragment_shading_rate". https://registry.khronos.org/vulkan/specs/latest/man/html/VK_KHR_fragment_shading_rate.html.
- ↑ "Multi-Res Shading". https://developer.nvidia.com/vrworks/graphics/multiresshading.
- ↑ Vlachos, Alex. "Advanced VR Rendering Performance (slides)". https://media.steampowered.com/apps/valve/2016/Alex_Vlachos_Advanced_VR_Rendering_Performance_GDC2016.pdf.
- ↑ "What Is Foveated Rendering For VR & How Does It Work?". 15 Jul 2022. https://uploadvr.com/foveated-rendering-explainer/.
- ↑ Template:Cite journal
- ↑ "Oculus Go to Offer Fixed Foveated Rendering and up to 72 Hz Refresh Rate". 21 Mar 2018. https://www.roadtovr.com/gdc-2018-oculus-go-to-support-fixed-foveation-and-up-to-72hz-refresh/.
- ↑ "Foveated rendering (Unity Manual)". https://docs.unity3d.com/6000.0/Documentation/Manual/xr-foveated-rendering.html.
- ↑ "Foveated rendering in OpenXR". https://docs.unity3d.com/Packages/[email protected]/manual/features/foveatedrendering.html.
- ↑ "VR Performance Features". https://docs.unrealengine.com/4.27/en-US/SharingAndReleasing/XRDevelopment/VR/VRPerformanceAndProfiling/PerformanceFeatures.
- ↑ "A Look Inside Farpoint’s Rendering Techniques for VR". 4 June 2018. https://www.impulsegear.com/a-look-inside-farpoints-rendering-techniques-for-vr.
- ↑ Template:Cite conference
- ↑ Template:Cite journal