In 2022 DirectX 12 support is a top priority. That being said, our CrossOver developers are working through the challenge of developing support for DirectX 12 in two distinct gaming environments. The obstacles in Linux are not the same as the obstacles in Mac. Let's take a look at how CrossOver supports DirectX 12 and what the challenges are.
All that means support for DirectX 12 on Linux is arriving in 2022 with CrossOver 22. Support for DirectX 12 on Mac is another story. Why, you ask?
On Mac, there is an additional layer of complexity when trying to use VKD3D for DirectX 12 games. That layer of complexity is Metal. Metal is Apple’s low-level, low-overhead, hardware-accelerated graphic and compute shader API. It was introduced back in 2014, and was designed specifically for Apple's GPUs. Metal does provide support for some other GPUs, but because it was geared for Apple hardware it is different from OpenGL, Vulkan, or D3D12 and its predecessors.
In general, Metal does tessellation differently, and is missing geometry shaders and transform feedback. Specific to DirectX 12 and Metal, there is an issue with limits on resources. Generally, games need access to at least one million shader resource views (SRVs). Access to that many SRVs requires resource binding at the Tier 2 level. Metal only supports about 500,000 resources per argument buffer, so Tier 2 resource binding isn’t possible. Metal’s limit of half a million is sufficient for Vulkan descriptor indexing, but not for D3D12. This limitation means CrossOver Mac can't support Tier 2 binding and therefore a lot of DirectX 12 games will not run.
Considering these obstacles, we believe support for DirectX 12 on Mac could arrive as soon as CrossOver 23. Keep an eye out for updates, as we will be posting about the progress of DirectX 12 support on Crossover for Mac when we have news to share.