Some feature requests for Metal

Hello guys. With the release of the M1 Pro and M1 Max in particular, the Mac has become a platform that could become very interesting for games in the future. However, since some features are still missing in Metal, it could be problematic for some developers to port their games to Metal. Especially with the Unreal Engine 5 you can already see a tendency in this direction, since e.g. Nanite and Lumen are unfortunately not available on the Mac. As a Vulkan developer I wanted to inquire about some features that are not yet available in Metal at the moment. These features are very interesting if you want to write a GPU driven renderer for modern game engines. Furthermore, these features could be used to emulate D3D12 on the Mac via MoltenVK, which would result in more games being available on the Mac.

  1. Buffer device address:

This feature allows the application to query a 64-bit buffer device address value for a buffer. It is very useful for D3D12 emulation and for compatibility with Vulkan, e.g. to implement ray tracing on MoltenVK.

  1. DrawIndirectCount:

This feature allows an application to source the number of draws for indirect drawing calls from a buffer. Also very useful in many gpu driven situations

  1. Only 500000 resources per argument buffer

Metal has a limit of 500000 resources per argument buffer. To be equivalent to D3D12 Resource Binding Tear 2, you would need 1 million. This is also very important as so many DirectX12 game engines could be ported to Metal more easily.

  1. Mesh shader / Task shader:

Two interesting new shader stages to optimize the rendering pipeline

Are there any plans to implement this features in future? Is there a roadmap for metal? Is there a website where I can suggest features to the metal developers?

I hope to see at least the first 3 features in metal in the future and I think that many developers feel the same way.

Best regards, Marlon

Replies

Hi, thanks for the suggestions! We take feature requests through Feedback Assistant. If you do wish to file requests, it would be great to provide some info about your use case and what you are trying to do. Also, please post the feedback IDs here, it helps us with tracking the requests.

We don’t generally talk about our future plans, and new APIs are usually released during WWDC.

Thank you for your answer. I will make these feature requests in the next days. Of course I will post the feedback ids here.

The feedback ID for DrawIndrectCount is FB9826206, the feedback ids for the following feature requests will be posted here in the next days.

Have a nice day and stay healthy !:) Marlon

Well Said