Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


Foveated rendering support reference

Find the Unity versions, render pipeline, graphics APIs, and hardware that support foveated rendering, and the capabilities a device can report.
Read time 3 minutesLast updated 20 days ago

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, the additional conditions that dynamic foveation requires, 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.

Project requirements

Your project must meet all the following requirements to use foveated rendering:

Requirement

Details

Unity versionUnity 2022.3 or later.
Render pipelineUniversal Render Pipeline (URP).
XR provider plug-inConfigure the foveated rendering settings that your XR provider plug-in exposes, if it has any.
Graphics APIOn Windows standalone XR, the project must use the DirectX 12 or Vulkan graphics APIs.
GPUOn 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 supportOn 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.

Render pipeline and resolution compatibility

The following conditions determine whether foveated rendering is available outside the standard Universal Render Pipeline (URP) configuration:

Condition

Support

The Built-In Render PipelineUnity doesn't support foveated rendering in projects that use the Built-In Render Pipeline.
The Built-In Render Pipeline through a provider plug-inSome 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 resolutionFixed foveated rendering is compatible with dynamic resolution that uses
XRSettings.renderViewportScale
. Refer to Resolution control in XR projects for more information.

Dynamic foveation support

Dynamic foveation has narrower support than foveated rendering. For an explanation of what it does to the foveated rendering level, refer to Introduction to foveated rendering. Your project must meet all the following conditions to use dynamic foveation:

Condition

Details

XR provider plug-inThe OpenXR Plug-in, version 1.19 or later.
Graphics APIVulkan.
Foveation methodThe plug-in must use the foveation method that
foveatedRenderingLevel
controls, not a provider-specific foveation method.
Device and runtimeThe device's OpenXR runtime must support the
XR_FB_foveation
,
XR_FB_foveation_configuration
,
XR_FB_foveation_vulkan
, and
XR_FB_swapchain_update_state
extensions.
To enable dynamic foveation, refer to Foveated rendering in OpenXR.

Foveated rendering capabilities

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.

Additional resources