Version: Unity 6.5 (6000.5)
Language : English
Enable GPU occlusion culling in URP
Optimize GPU performance with variable rate shading

Improve performance with on-tile rendering

Learn about on-tile rendering in URP for tile-based GPUs.

Use features optimized for tile-based architecture in your project to improve performance on devices with a tile-based GPU.

On non-tile-based GPUs, rendering writes render targets to main GPU memory after each render pass. On tile-based GPUs, this creates unnecessary memory bandwidth usage because the GPU repeatedly stores and loads render target data from main memory.

With on-tile rendering, the main cameraA component which creates an image of a particular viewpoint in your scene. The output is either drawn to the screen or captured as a texture. More info
See in Glossary
targets (for example, intermediate textures and depth buffers) remain in the GPU’s fast tile cache throughout the entire rendering pipeline. The data is only written to main memory once at the end of the frame. This reduces GPU bandwidth usage, which reduces power consumption and improves GPU performance.

Requirements

To enable on-tile rendering, your project must meet the following requirements:

  • Use the 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
    .
  • Use a graphics API that supports native render passes.

Supported platforms

On-tile rendering is supported on any platform with tile-based GPUs. For XR-specific information, refer to Tile-based rendering in XR.

On-tile rendering works in Play mode when targeting supported platforms.

Note: You can enable on-tile rendering on desktop PCs with non-tile-based GPUs to use the validation system, which is useful for testing. However, it doesn’t improve your project performance.

Unsupported features

Any feature that creates intermediate textures results in an additional final 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 and breaks tile-based rendering, resulting in performance issues.

Avoid the following features:

  • Depth and opaque textures
  • Temporal anti-aliasing (TAA)
  • Multisample anti-aliasing (MSAA)
  • Built-in post-processing
  • HDRhigh dynamic range
    See in Glossary
    rendering
  • Upscaling (except on Android XR)
  • Dynamic resolutionA Camera setting that allows you to dynamically scale individual render targets to reduce workload on the GPU. More info
    See in Glossary
    (except on Android XR)
  • IMGUI rendering
  • Subrectangle viewports
  • Camera stacking
  • Deferred rendering path
  • WebGL

Enable on-tile rendering

Tip: Before you enable on-tile rendering, use the Render Graph Viewer to check your current render passes and identify potential issues.

To enable on-tile rendering in your project:

  1. Open your URP Renderer in the InspectorA Unity window that displays information about the currently selected GameObject, asset or project settings, allowing you to inspect and edit the values. More info
    See in Glossary
    window.
  2. In the Rendering section, enable Tile-Only Mode.

When you enable on-tile rendering, the main camera targets use the backbuffer’s UV orientation and Unity displays warnings on any components with unsupported features.

Note: If your custom Renderer Features or Scriptable Render Passes are compatible with on-tile rendering, they work automatically with the on-tile renderer.

Disable on-tile validation

On-tile validation enforces the constraints required for on-tile rendering to work correctly. The validation is enabled by default and shares the render graph validation setting. It throws exceptions when constraints are broken.

Disable validation only when you profile performance in a development buildA development build includes debug symbols and enables the Profiler. More info
See in Glossary
. It’s automatically stripped in release builds so there’s no performance impact.

To disable validation:

  1. Go to Edit > Project Settings > Graphics.
  2. Under Render Graph, disable Enable Validity Checks.

Warning: If you disable validation, on-tile constraints can be violated without displaying errors, which can cause silent performance regressions.

Use the Render Graph Viewer to inspect the actual graph on your target device.

Additional resources

Enable GPU occlusion culling in URP
Optimize GPU performance with variable rate shading