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 (19)
-
jccjccjccc
Jul 16, 2025 20:03
We really need MDI to draw large scenes. This feature not being properly implemented is negatively impacting us and our customers. Supporting a custom render api is expensive and difficult to maintain. Hope this is implemented soon.
-
aboeck
Jul 16, 2025 11:09
Come on guys.. we need a solution for this, please!
-
jribijed6
Jun 01, 2025 23:34
I am also in need of this feature as it could allow me to optimize my instance indirect foliage system. Currently by having to "emulate" all the commands instead of dispatching real commands. This not only causes all my vertex and index buffers to be redundantly rebound, but also breaks the GPU's ability to parallelize rendering vertex shaders of multiple command arg elements. A shame that this is implemented for the hybrid entities renderer (or what it looks like when viewing Radeon AMD profiler) and it isn't exposed to the user. Pls fix
-
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
- Texture2D hash changes inside of an AssetBundle when rebuilding a SpriteAtlas bundle with an empty AssetPostprocessor Script enabled
- Aniso Level still applies when Generate MipMap is disabled in Texture Import Settings
- Mipmap Limit Groups long names are not truncated when creating a new Mipmap Limit Group with a long name
- “ArgumentException: Invalid double parameter.” error is thrown when Infinity is typed into the Fixed Timestep field
- GameObject becomes gray when using HDRP and STP together on macOS
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.