Rendering Modes
There are two modes. They produce exactly the same picture, down to the pixel. They differ only in what they cost and what they need from your project.
Leave it on Performance unless one of the two situations below applies to you.
What each one costs
Section titled “What each one costs”Measured on a Galaxy S20 FE (the Quest 2’s GPU) at 1080p with MSAA 4x, in a busy scene:
| Performance | Compatibility | |
|---|---|---|
| One layer | 1.75 ms | 16.47 ms |
| Four layers | 2.62 ms | 19.61 ms |
On a Galaxy A53, a slower phone:
| Performance | Compatibility | |
|---|---|---|
| One layer | 3.91 ms | 41.30 ms |
| Four layers | 5.28 ms | 44.78 ms |
That gap is specific to phones and headsets with MSAA turned on. With MSAA off, both modes are cheap and the difference between them mostly disappears.
So: on mobile or VR, use Performance mode. If you have to use Compatibility mode, turn MSAA off and you will be fine. The editor warns you when it sees Compatibility mode, MSAA and a mobile build target together.
What Performance mode needs
Section titled “What Performance mode needs”One setting, and only if you use HDR:
- HDR off: nothing to do.
- HDR on: set HDR Precision to 64 bits in your URP asset. Performance mode cannot run on the default 32-bit HDR format.
If it finds a format it cannot use, the package switches that camera to Compatibility mode by itself and logs a message once. Nothing breaks, it just costs more. The feature’s Inspector shows the mode the last frame actually used, and the format it saw, so you can check without guessing.
When to choose Compatibility mode
Section titled “When to choose Compatibility mode”Two situations:
- You need HDR and cannot use the 64-bit precision setting.
- Your project reads this camera’s output as an image with transparency - screenshots with a see-through background, compositing one camera over another, portal effects. Performance mode does not leave that camera’s output usable that way, so put the camera in Compatibility mode.
If you only take ordinary opaque screenshots, this does not affect you.
Transparent objects
Section titled “Transparent objects”Nothing to do. Your transparent materials, particles and third-party VFX all work with either mode, unchanged.
Two things to expect:
- The outline draws on top of transparent objects. Usually what you want: a selected unit stays visible through smoke or glass.
- Transparent objects cannot be outlined themselves. If you need one outlined, give it an
invisible solid stand-in mesh and put the
Outlinedcomponent on that.
Camera stacks
Section titled “Camera stacks”Supported. A UI or overlay camera on top of your main camera is fine, and costs about 0.74 ms extra on an S20 FE.
Two things to know:
- An object only an overlay camera can see is not outlined. Outlines come from the base camera.
- On phones with Mali GPUs, a camera stack with MSAA 4x is expensive (around 9.9 ms on an A53). If you are shipping a stacked UI on that class of hardware, prefer MSAA 2x or off.
Which mode am I actually using?
Section titled “Which mode am I actually using?”Look at the feature’s Inspector. It reports the mode the last rendered frame used, which is
not always the one you picked: Unity 2022.3 with URP 14 always uses Compatibility mode, and so
does any camera whose colour format cannot support Performance mode. In a script, that is
OutlineZeroFeature.EffectiveMode.