DirectX 12 as a cross-platform graphics API?

I think it’s best to use graphics API directly instead of using wrappers like bgfx, sokol, Diligent Engine and so on. Best performance and latency can be achieved by fine tuning the rendering flow (especially with modern API’s) when using graphics API directly. And then on top of that, have a clear specification to work on. But those wrappers provide one big benefits, cross-platform support. Also one big downside with modern APIs is that one needs really to know what you are doing with it to get the benefits over DirectX 11 or OpenGL.

So Vulkan is known to be cross-platform but what about DX12? With some help it seems that it can support every popular modern platform, but PS4/PS5?

Thanks to rising popularity of Linux gaming the quality of DX12 to Vulkan wrapper VKD3D-Proton is very high so I would not hesitate in using it.

  • Windows 10+ and XBOX directly trough DX12. Windows can be also provided with Vulkan backend through VKD3D-Proton.
  • Linux, Nintendo Switch, Steam Deck and Android trough Vulkan using VKD3D-Proton.
  • MacOS and iOS trough Metal using MoltenVK and VKD3D-Proton.

It would be interesting to test this in practice. MacOS and iOS might be bit stretching it to get to work and debug through two layers.

Leave a Comment