Search Issue Tracker
By Design
Votes
0
Found in
2020.1.17f1
2020.2.0a8
Issue ID
1307714
Regression
Yes
BatchRendererGroup doesn't render GameObjects with URP Materials when SRP Batcher is enabled
How to reproduce:
1. Open the user's attached "BatchTest.zip" project
2. Open the "SampleScene" Scene
3. Observe the Game view
Expected result: GameObject is rendered with BatchRendererGroup and SRP Batcher enabled
Actual result: GameObject is not rendered with BatchRendererGroup and SRP Batcher enabled
Reproducible with: 2020.2.0a8, 2020.2.3f1
Not reproducible with: 2019.4.19f1, 2020.2.0a4
Could not test with: 2020.2.0a5, 2020.2.0a7 (Crashes on open)
Note:
- The issue is not reproducible if the SRP Batcher is disabled
-
XRA
Feb 02, 2021 03:47
+1 what Arycama said
-
Arycama
Jan 29, 2021 09:14
Is this a joke?
I have used BatchRendererGroup since it was first introduced, to render Oceans, Foliage, Decals and other custom systems.
It has been a great replacement for Graphics.DrawMesh, which needs to be called every frame and does not give you control over culling, or how the draw calls are batched.
BatchRendererGroup on the other hand gives you full control over culling, batching, instancing, and custom data that can be passed to the rendering pipeline.
All of this is now completely useless unless I stop upgrading any of my projects to 2020.2.
A replacement for Graphics.DrawMesh is long overdue, see: https://forum.unity.com/threads/graphics-drawmesh-drawmeshinstanced-fundamentally-bottlenecked-by-the-cpu.429120/
There is nothing in the BatchRendererGroup documentation about Hybrid Renderer, and seeing as Hybrid Renderer is a package, it makes no sense that an internal engine component (BatchRendererGroup) has a dependency on a package.
Surely you are aware that there are tons of custom rendering systems on the asset store, most of which are forced to deal with Graphics.DrawMesh and it's severe limitations requiring numerous workarounds and band-aid solutions, and has less than ideal performance characteristics?
Stop taking away API features without providing a replacement. It is extremely frustrating for developers and results in large amounts of work being wasted.
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- [Dragon Crashers] Build fails in U6
- [Dragon Crashers] 4 Shader error messages on import
- [Dragon Crashers] Readme text is white on light grey
- Cursor stays in front of the first character when entering text in the TextMeshPro field
- Searching in Hierarchy causes unwanted component calls
Resolution Note:
BatchRendererGroup has inherit limitations. It only correctly supports ShaderGraph shaders when using the Hybrid Renderer V1 API set. To avoid graphics corruption and crashes on several platforms, we added checks for incorrect API usage. Now if you try to render objects that don't use ShaderGraph, the API will ignore them instead of potentially corrupting the graphics or crashing the GPU.
Please refer to this documentation when using BatchRendererGroup. The "Setting up shaders for Hybrid Renderer V1" section has instructions how to setup shaders so that they are compatible with the BatchRendererGroup (V1) API:
https://docs.unity3d.com/Packages/com.unity.rendering.hybrid@0.11/manual/index.html