Quad Views Support for Quest 3 Devices

We’re excited to announce Quad Views support for Quest 3 devices in Unity 6.5, enabled via OpenXR 1.17!

Quad Views introduces a new alternative to traditional foveation techniques, designed to improve rendering efficiency, particularly in GPU-bound XR applications.

What is Quad Views?

Quad Views improves rendering performance by rendering two views per eye at different resolutions:

  • A low-resolution view covering the full field of view
  • A high-resolution inset focused near the center of the display

Because the periphery of a user’s field of view is rendered at a lower resolution, overall rendering cost is reduced. At the same time, the high-resolution center, where users are most likely to focus, maintains perceived visual quality.

Why use Quad Views?

Quad Views is most impactful for apps that are GPU or pixel bound, such as scenes with high render resolution, complex lighting, or significant overdraw from UI and transparent objects. Many XR applications today are GPU and pixel bound, making them great candidates for Quad Views.

In these scenarios, Quad Views can provide:

  • Reduced fragment shading cost
  • Improved GPU frame time
  • Maintained or improved visual quality

Quad Views vs Foveated Rendering

Both Quad Views and Foveated Rendering optimize rendering by prioritizing resolution in the center of the user’s view, but they use different approaches and have different tradeoffs.

As with other XR optimizations, these techniques often trade raw performance for some change in visual quality, so we recommend evaluating them early in development and again before final release to determine the best approach for your project.

Use Quad Views when:

  • Your app is GPU-bound
  • You are using post-processing effects that aren’t compatible with Foveated Rendering.

Post-processing compatibility depends on the technique used. Quad Views is compatible with on-tile post-processing effects, which are recommended for untethered XR devices. Using any post-processing effects that are not in the list of supported on-tile techniques may result in visual artifacts or reduced performance.

Use Foveated Rendering when:

  • Your app is CPU-bound

Getting Started

Enabling Quad Views is simple:

  1. Open the Project Settings window (menu: Edit > Project Settings).
  2. Select the OpenXR settings page under XR Plug-in Management.
  3. Select the Meta Quest tab.
  4. Under OpenXR Feature Groups, select All Features.
  5. Enable the Foveated Rendering feature.
  6. Click the gear to open the Foveated Rendering feature sub-options.
  7. On the Foveated Rendering sub-option window, select Quad Views for Foveated Rendering Method.

Pair with Other Performance Optimizations

Quad Views can be combined with:

  • Multiview Per View Viewports (MVPVV/MVPVRA)
  • Application SpaceWarp
  • Dynamic Resolution

Availability

  • Unity Version: 6.5+
  • OpenXR Version: 1.17+
  • Platform: Meta Quest 3

We’d love to hear your feedback. If you try Quad Views in your project, share performance comparisons, edge cases, or anything unexpected.

Enabling Quad Views in Unity 6.5 can introduce some additional CPU cost. We’re continuing to explore optimizations in this area, with improvements expected in future releases.

If you have any questions, feel free to ask in the thread below.

7 Likes

That sounds great! Especially combined with the new Quest optimizations (I would love for these to be managed by OpenXR, so all OpenXR XR devices can utelize these instead of being Meta only).

Few questions:

  1. What is technically different from using regular FFR? It sounds the same to me.
  2. Will there be eye tracked quad view support when this comes out for other devices? (I am currently locked into the YVR SDK, as the Quad View implementation in OpenXR did not have all required features according to them)
  3. Can you change the inset view size via script?
  4. Does this need shader changes, or will all multiview compatible shaders work?

Also please add the Official tag!!

1 Like

Thanks for your questions, hope this helps:

  1. What is technically different from using regular FFR? It sounds the same to me.

Regular FFR uses the Vulkan Fragment Density Map extension on Quest devices in a single multi-view pass, whereas for Quad Views, we render in two lower resolution multi-view passes; the outer (peripheral) pass followed by the inner (inset) pass.

  1. Will there be eye tracked quad view support when this comes out for other devices?

Yes, we plan to support eye-tracking with Quad Views.

  1. Can you change the inset view size via script?

This is not currently possible, we recommend relying on dynamic resolution to scale both peripheral and inset views.

  1. Does this need shader changes, or will all multiview compatible shaders work?

Most shaders do not need any modifications for Quad Views to work, however, effects that sample neighboring pixels may result in visible inset view borders on the headset. Do share with us if you see any issues!

1 Like

Regarding the platform constraint, while we can’t make promises about what our partners will and won’t support, our goal is always to make features as widely available as possible. It’s in the name. :wink:

1 Like