Support for foveated rendering depends on your Unity version, render pipeline, and graphics API, and on both the XR provider plug-in and the device. This page lists those requirements, the pipeline and resolution combinations Unity supports, and the capability values a device reports at runtime.
For an explanation of variable rate shading (VRS) and variable rate rasterization (VRR), refer to Introduction to foveated rendering.
Your project must meet all the following requirements to use foveated rendering:
| Requirement | Details |
|---|---|
| Unity version | Unity 2022.3 or later. |
| Render pipeline | Universal Render Pipeline (URP). |
| XR provider plug-in | Configure the foveated rendering settings that your XR provider plug-in exposes, if it has any. |
| Graphics API | On Windows standalone XR, the project must use the DirectX 12 or Vulkan graphics APIs. |
| GPU | On Windows standalone XR, the computer running the application must have a GPU such as NVIDIA GeForce RTX 20 series or later, or AMD Radeon RX 6000 series or later. |
| Plug-in and device support | On standalone XR platforms, both the XR provider plug-in and the device must support foveated rendering. The OpenXR Plug-in, Unity OpenXR: Android XR, and PolySpatial visionOS packages document the foveated rendering settings they provide. For any other plug-in, refer to XR provider plug-ins. |
The following conditions determine whether foveated rendering is available outside the standard Universal Render Pipeline (URP) configuration:
| Condition | Support |
|---|---|
| The Built-In Render Pipeline | Unity doesn’t support foveated rendering in projects that use the Built-In Render Pipeline. |
| The Built-In Render Pipeline through a provider plug-in | Some XR provider plug-ins use a different API and implementation to support foveated rendering in Unity 2022.3 with the Built-In Render Pipeline. These plug-ins include the OpenXR Plug-in and the Oculus XR Plug-in. Unity deprecated the Oculus XR Plug-in in Unity 6.5 and later, so the OpenXR Plug-in is the active path. |
| Dynamic resolution | Fixed foveated rendering is compatible with dynamic resolution that uses XRSettings.renderViewportScale. Refer to Resolution control in XR projects for more information. |
A device reports its foveated rendering capabilities through the foveatedRenderingCaps property of SystemInfo. The property returns a FoveatedRenderingCaps value. To read this property in a script, refer to Enable and control foveated rendering.
The property can report the following values:
| Value | Meaning |
|---|---|
None |
The device doesn’t support foveated rendering. Various factors can cause a lack of support, including software, the device runtime, or drivers, so even if a platform supports foveated rendering, it might not be available on a particular device. |
FoveationImage |
The foveated rendering implementation uses VRS. |
NonUniformRaster |
The foveated rendering implementation uses VRR. |
The FoveationImage and NonUniformRaster values describe how a device implements foveated rendering, which is useful if you implement a custom render pipeline.