Optimize GPU rendering

Unity provides a variety of advanced GPU features that use instancing and occlusion culling to significantly reduce draw calls and eliminate rendering of hidden objects. These features work together to maximize GPU efficiency in complex scenes.

GPU Resident Drawer

The GPU Resident Drawer automatically uses GPU instancing to reduce draw calls and free up CPU processing time. This feature is most effective for large scenes with many objects that share the same mesh.

Enable this feature

  1. From the Unity main menu, click Edit > Project Settings > Graphics.
  2. In the Shader Stripping section, set Batch Renderer Group Variants to Keep All.
  3. Find your Default Render Pipeline asset, which is also your URP asset.
  4. Search for this asset in your project.
  5. Right-click the asset and select Properties.
  6. In the Renderer List, right-click the Universal Renderer and select Properties.
  7. Set Rendering Path to Forward+.
  8. Return to your URP asset, select it, and then click the three dots in the and select Debug.
  9. Set GPU Resident Drawer Mode to Instanced Drawing.

GPU Occlusion Culling

Occlusion Culling uses the GPU instead of the CPU to exclude objects that are hidden behind other objects. This feature is most effective in scenes with significant occlusion, such as interiors or dense environments.

Enable this feature

  1. From the Unity main menu, click Edit > Project Settings > Graphics.
  2. Enable GPU Occlusion Culling.
  3. Select the URP tab.
  4. In the Render Graph section, disable Compatibility Mode (Render Graph Disabled).

Optimize Buffer Discards

This optimization improves performance by discarding unnecessary depth buffer data and efficiently processing MSAA color buffers, which reduces memory operations.

Benefits

  • Eliminates unnecessary copying and moving of graphics data.
  • Speeds up GPU rendering for all cases.

Enable this feature

  1. From the Unity main menu, click Edit > Project Settings.
  2. Expand the XR Plug-in Management section, and then click OpenXR.
  3. Select the Android tab.
  4. Select the Android XR feature group.
  5. Click the cog icon next to Android XR Support.
  6. Enable Optimize Buffer Discards (Vulkan).

    Unity settings optimizing buffer discards

Disable front-to-back rendering

Front-to-back rendering is a rendering order experiment you can try in your scene. When combined with optimizations like Low-Resolution-Z (LRZ), it might help with performance in scenes with significant occlusion where background objects use expensive fragment shaders.

However, enabling this setting might also reduce performance. For this reason, leaving it at the default setting (disabled) is the recommended approach.