Understand the Multiview Render Regions feature for XRAn umbrella term encompassing Virtual Reality (VR), Augmented Reality (AR) and Mixed Reality (MR) applications. Devices supporting these forms of interactive applications can be referred to as XR devices. More info
See in Glossary devices.
The Multiview Render Regions feature is an optimization technique to prevent processing on areas of the screen not visible by the user (the nasal region of a VR headset).
Multiview Render Regions is a Vulkan-specific feature that sets multiple scissors, viewportsThe user’s visible area of an app on their screen.
See in Glossary, and render areas on the headset to reduce rendering load. On VRVirtual Reality More info
See in Glossary devices, Multiview Render Regions sets specific values per eye so that areas outside of the user’s view aren’t processed. On Head-Mounted Devices (HMD), this is the nasal region of the headset.
Multiview Render Regions incorporates two Vulkan extensions (Multiview per view viewports, and Multiview per view render areas) (Khronos documentation). When you enable the Multiview Render Regions feature, you opt into using these extensions.
To use Multiview Render Regions, your project must meet the following requirements:
The following plug-insA set of code created outside of Unity that creates functionality in Unity. There are two kinds of plug-ins you can use in Unity: Managed plug-ins (managed .NET assemblies created with tools like Visual Studio) and Native plug-ins (platform-specific native code libraries). More info
See in Glossary support Multiview Render Regions:
Configure the following settings in the XR Plug-in Management section of your Project Settings (menu: Edit > Project Settings > XR Plug-in Management):
In Unity 6.2 and newer with OpenXR 1.15, you can choose which render passes Unity applies Multiview Render Regions to. To learn about the available options for Multiview Render Regions Optimizations in OpenXR 1.15, refer to the OpenXR Multiview Render Regions documentation.
If you select Final Pass in OpenXR 1.15, or enable Optimize Multiview Render Regions in OpenXR 1.14 or Oculus, Multiview Render Regions is applied to the final render pass only. This means Multiview Render Regions is only applied to render passes that output to eye textures. As such, performance gains aren’t expected when using intermediate textures or post-processingA process that improves product visuals by applying filters and effects before the image appears on screen. You can use post-processing effects to simulate physical camera and film properties, for example Bloom and Depth of Field. More info post processing, postprocessing, postprocess
See in Glossary with this feature enabled. If you use intermediate textures or post-processing in your project, profile your project to verify whether Multiview Render Regions will lead to performance gains before you enable it.
Note: Unity recommends that you avoid post-processing if your project targets standalone XR devices. Refer to Optimize for untethered XR devices in URP for more information about graphics optimization in XR.
In Unity 6.3 and newer, Multiview Render Regions requires that your project uses render graph for both Final Pass and All Passes modes. Render graph helps prevent some artifacts that occurred when you select the All Passes option in previous versions of Unity.
The render graph MultiviewRenderRegionsCompatible flag marks compatible passes to enable Multiview Render Regions only on compatible passes. This prevents rendering artifacts observed in earlier versions of Unity, where Multiview Render Regions is applied to passes that aren’t compatible.
To ensure your project uses render graph, disable Compatibility Mode (Render Graph Disabled) in your Graphics settings.
In Unity 6.3 and newer with render graph, Unity enables Multiview Render Regions only on passes where it increases performance and doesn’t result in rendering artifacts. Compatible passes are marked with the MultiviewRenderRegionsCompatible flag.
The following passes work well with Multiview Render Regions and don’t cause any rendering artifacts:
To add additional render graph passes to use with the Multiview Render Regions feature, use the render graph SetExtendedFeatureFlags(ExtendedFeatureFlags) method to set the MultiviewRenderRegionsCompatible flag for applicable raster passes.
If your chosen plug-in supports Multiview Render Regions, to enable Multiview Render Regions: