Rasagar/Library/PackageCache/com.unity.render-pipelines.universal/Documentation~/gpu-resident-drawer.md
2024-08-26 23:07:20 +03:00

3.3 KiB

uid
urp-gpu-resident-drawer

Use the GPU Resident Drawer

The GPU Resident Drawer automatically uses the BatchRendererGroup API to draw GameObjects with GPU instancing, which reduces the number of draw calls and frees CPU processing time. For more information, refer to How BatchRendererGroup works.

The GPU Resident Drawer works only with the following:

Otherwise, Unity falls back to drawing the GameObject without GPU instancing.

If you enable the GPU Resident Drawer, the following applies:

  • Build times are longer because Unity compiles all the BatchRendererGroup shader variants into your build.

Enable the GPU Resident Drawer

Follow these steps:

  1. Go to Project Settings > Graphics, then in the Shader Stripping section set BatchRendererGroup Variants to Keep All.
  2. Go to the active URP Asset and enable SRP Batcher.
  3. Double-click the renderer in the Renderer List to open the Universal Renderer, then set Rendering Path to Forward+.
  4. Set GPU Resident Drawer to Instanced Drawing.

If you change or create GameObjects each frame, the GPU Resident Drawer updates with the changes.

To include or exclude GameObjects from the GPU Resident Drawer, refer to Make a GameObject compatible with the GPU Resident Drawer.

Analyze the GPU Resident Drawer

To analyze the results of the GPU Resident Drawer, you can use the following:

Optimize the GPU Resident Drawer

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 is large.
  • Multiple GameObjects use the same mesh, so Unity can group them into a single draw call.

Rendering usually speeds up less in the Scene view and the Game view, compared to Play mode or your final built project.

The following might speed up the GPU Resident Drawer:

  • Go to Project Settings > Player, then in the Other Settings section disable Static Batching.
  • Go to Window > Panels > Lighting, then in the Lightmapping Settings section enable Fixed Lightmap Size and disable Use Mipmap Limits.

Additional resources