Make a GameObject compatible with the GPU Resident Drawer in URP
BatchRendererGroup API in URP
GPU Resident Drawer performance considerations
How much the GPU Resident Drawer speeds up rendering depends on your scene. The GPU Resident Drawer is most effective in the following setups:
- The scene includes numerous objects, which results in a high number of draw calls. This negatively impacts CPU performance.
- Multiple GameObjects use the same mesh and the same material shader variant. As a result, Unity can group them into a single draw call.
Rendering usually speeds up more in Play mode or the final built project than in the Scene or Game views.
Ways to speed up the GPU resident drawer
To speed up the GPU Resident Drawer, try one of the following methods.
Disable static batching
Go to Project Settings > Player.
In the Other Settings section, disable Static Batching.
Use a fixed lightmap size and don’t set limits to mipmaps
Go to Window > Rendering > Lighting.
In the Lightmapping Settings section:
Enable Fixed Lightmap Size.
Disable Use Mipmap Limits.
GPU performance
GPU Resident Drawer improves CPU performance, but it slightly increases GPU workload. Lower-end mobile or VR platforms experience this effect more strongly. If your application is GPU-bound, overall frame time might increase when you enable GPU Resident Drawer.
When using GPU Resident Drawer, consider the following:
- GPU draw call performance: Monitor both vertex and fragment processing stages for potential performance impacts.
- Overdraw: Merging objects into a single instanced draw call can lead to increased overdraw, particularly on non-tiled GPUs commonly used in desktops and consoles. To help reduce this overdraw, set Depth Priming Mode to Auto or Forced when using the Forward+ rendering path.
Analyze the GPU Resident Drawer
To analyze the results of the GPU Resident Drawer, you can use the following:
Additional resources
Make a GameObject compatible with the GPU Resident Drawer in URP
BatchRendererGroup API in URP