Understand the ways you can optimize your URP project 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.
This page describes the optimization techniques for universal render pipelineA series of operations that take the contents of a Scene, and displays them on a screen. Unity lets you choose from pre-built render pipelines, or write your own. More info
See in Glossary (URP) projects that target untethered extended reality (XR) devices. An untethered XR device is an XR device that aren’t connected to a desktop with a wire.
Most untethered XR devices use tile-based GPUs. The guidelines on this page help you use this hardware architecture more efficiently and avoid using rendering techniques that are less efficient on those devices. To learn more about how tiled-based GPUs work, refer to the additional resources section.
To optimize your XR project, consider the following:
The following sections describe these methods in more detail.
Vulkan API is more stable and provides better performance compared to OpenGL ES API in URP projects targeting XR platforms. Many new OpenXR features are only available on Vulkan.
Refer to Configure graphics APIs for information on how to change the graphics API to Vulkan.
Use the OpenXR Plugin in projects that target XR platforms.
Enable the following settings in your OpenXR project:
Tip: Consider whether URP Application SpaceWarp is appropriate for your project. Application SpaceWarp can improve frame rate significantly, but might cause visible artifacts for some content.
In Unity 6.0 and newer, new URP projects use the render graph system. Refer to Benefits of the render graph system to understand the benefits of render graph.
In URP, Deferred rendering generates several render targets for the G-buffer. Unity performs multiple graphics memory loads (Qualcomm documentation) to access those render targets, which is slow on tile-based GPUs.
Refer to Deferred rendering implementation details for more information on the implementation of the G-buffer in URP.
The Rendering PathThe technique that a render pipeline uses to render graphics. Choosing a different rendering path affects how lighting and shading are calculated. Some rendering paths are more suited to different platforms and hardware than others. More info
See in Glossary settings is in the Rendering section of the Universal Renderer Asset.
On XR devices, Unity recommends that you use on-tile 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. Post-processing techniques without on-tile post-processing enabled are expensive on untethered XR devices because post-processing adds intermediate textures.
In Unity 6.3 and newer, you can use on-tile post-processing to enable certain URP post-processing effects on XR devices. Refer to On-tile post-processing (URP) to learn more about on-tile post-processing and how to enable it in your XR project.
In versions of Unity older than Unity 6.3, Unity recommends that you disable post-processing techniques because on-tile post-processing isn’t available.
Avoid using geometry shadersA program that runs on the GPU. More info
See in Glossary on platforms with tile-based GPUs. Some devices don’t support geometry shaders.
The generation of additional primitives and vertices breaks the tiled GPU flow because the division of primitives after the binning pass becomes invalid.
Tile-based GPUs can store more samples in the same tile. This makes Multi-sample Anti-aliasing (MSAA) efficient on mobile and untethered XR platforms. 2X MSAA value provides a good balance between visual quality and performance.
You can change the MSAA settings in the Quality section of the URP Asset. For more information on MSAA, refer to Anti-aliasing in URP.
Disable depth priming on XR platforms. XR devices have two views, which increases the performance impact from performing the depth pre-pass.
For untethered XR devices there are no benefits of performing the depth priming. You can obtain similar results using hardware optimization features, such as Low-Resolution-Z (LRZ) or Hidden Surface Removal (HSR).
For information on how to configure or disable depth priming, refer to the Depth Priming Mode property description.
Disable the Opaque Texture and Depth Texture properties to improve performance. Enabling those options causes extra texture copy operations, which requires extra GMEM loads.
Refer to Rendering for more information on these opaque and depth texture properties..
To identify if your current configuration is using intermediate textures, use the Render Graph Viewer window.
Screen Space Ambient OcclusionA method to approximate how much ambient light (light not coming from a specific direction) can hit a point on a surface.
See in Glossary (SSAO) might have poor performance on mobile and untethered XR devices.
SSAO in URP requires the depth priming pass, two blur passes to reduce the noise, and an additional blitA shorthand term for “bit block transfer”. A blit operation is the process of transferring blocks of data from one place in memory to another.
See in Glossary pass to clean the image. Such passes require several GMEM loads which have a high performance impact on tile-based GPUs.
Refer to for more information.
High Definition Rendering (HDR) has higher precision and improves graphics fidelity, but requires more bits per pixelThe smallest unit in a computer image. Pixel size depends on your screen resolution. Pixel lighting is calculated at every screen pixel. More info
See in Glossary to process. Disable HDRhigh dynamic range
See in Glossary to reduce memory bandwidth and improve performance.
Most untethered XR devices don’t support HDR rendering.
To disable HDR:
Note: some features, such as HDR light estimation require HDR. Check the requirements for the features your project uses to ensure HDR isn’t required.
Unity recommends that you implement resolution scaling to reduce GPU workload and maintain a stable frame rate.
To learn more, refer to Resolution control in XR projects.