Search Issue Tracker
Feature Request
Feature Request in 6000.3.X
Votes
62
Found in
2021.3.47f1
2022.3.55f1
6000.0.32f1
6000.1.0a9
6000.2.0a1
6000.3.0a1
Issue ID
UUM-91617
Regression
No
Graphics.RenderMeshIndirect does not issue multi-draw rendering commands when using a graphics API capable of multi-draw commands
How to reproduce:
1. Open the attached "IN-87308" project
2. Open the "SampleScene" and enter Play mode
3. Navigate to “Window > Analysis > Frame Debugger” and open the Frame Debugger window
4. Enable the Frame Debugger from the window
5. Navigate to “Camera.Render > Drawing > Render.OpaqueGeometry > RenderForwardOpaque.Render > RenderForward.RenderLoopJob” and expand it to reveal the “Draw Mesh” calls
6. Observe the amount of “Draw Mesh” calls inside the Frame Debugger
Expected result: Frame Debugger outputs one “Draw Mesh” call that combines all four of the vkCmdDrawIndexedIndirect calls
Actual result: Frame Debugger outputs four “Draw Mesh” calls
Reproducible in: 2021.3.47f1, 2022.3.55f1, 6000.0.32f1, 6000.1.0a9
Reproducible on: Windows 11
Not reproducible on: No other environments tested
Notes:
- Also reproducible in Player (while using a graphics debugger)
- Reproducible using both Vulkan and DirectX12
Comments (16)
-
kostarev_vadim
May 16, 2025 16:18
In my case on an Android device this causes the frame rate to drop from 60 fps to 20 and it took me a few days to figure out what it was.
-
jonjak94_unity
May 08, 2025 17:26
Any update on this?? our team is literally counting on this, also why SV_DrawID semantic s not provided ? it is easy to simulate and fix, i mean common unity this has been used by many games for a decade.
-
FromNorthProjekt
May 07, 2025 15:27
Please fix this or at least say is it intentional or a bug, we have a rendering system that entirely built around the idea of multi indirect drawing, we need this to get fixed!
-
OldanyGames
May 07, 2025 15:16
Why this is not fixed yet ????????????????????? it is a must feature
-
MrDaveSh
Jan 30, 2025 15:14
i agree with previous comment, i did work for ages to implement RenderMeshIndirect, just to realize that it was not working as documented. This is really a huge missing features of the engines.
-
Manuel_H
Jan 28, 2025 11:05
This is not a satisfying resolution. MDI is a critical feature and there is no alternative for it. Can you please at least clarify if this is indeed a BUG or a missing feature? Because according to the docs of every unity release with the RenderMeshIndirect-API (https://docs.unity3d.com/6000.1/Documentation/ScriptReference/Graphics.RenderMeshIndirect.html) it should be implemented and working!
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
- Texture Import Warnings are obscured by other Terrain Layer options in the Inspector
- Active Targets section text in Graph Inspector is truncated despite available space
- Burst Inspector middle divider is jittering when resized with the Burst Inspector window docked
- Shader Graph Node information is briefly displayed in Graph Inspector when clicking on Category in the Blackboard
- JsonConvert conversion fails trying to call GetCallbackMethodsForType when [OnDeserialized] is used in a class
Resolution Note:
Multi Draw Indirect (MDI) is currently not supported. We fixed the documentation error to reflect this. The current recommendation is to simply submit multiple indirect draw commands instead.
We are evaluating the feature request for MDI support. It is important to note that unless trying to batch a large number of draws, we would not expect any tangible performance gain with MDI.
When rendering many instances, the currently recommended approach is using the Batch Renderder Group API instead: https://docs.unity3d.com/6000.1/Documentation/ScriptReference/Rendering.BatchRendererGroup.
Resolution Note (6000.3.X):
Multi Draw Indirect (MDI) is currently not supported. We fixed the documentation error to reflect this. The current recommendation is to simply submit multiple indirect draw commands instead.
We are evaluating the feature request for MDI support. It is important to note that unless trying to batch a large number of draws, we would not expect any tangible performance gain with MDI.
When rendering many instances, the currently recommended approach is using the Batch Renderder Group API instead: https://docs.unity3d.com/6000.1/Documentation/ScriptReference/Rendering.BatchRendererGroup.