GDC 2017 | Is DirectX 12 worth it? A game developer gives us some insights.
Katsman mentioned a number of problems when moving from DirectX 11 to DirectX 12 and made clear that it is not a walk in the park. It is a complex path to produce optimized DirectX 12 code and takes a lot of time. Especially in early 2016, when Nixxes was one of the first developers switching to DirectX 12, there were a lot of problems. Missing debugging tools, sparse documentation and driver problems led to the late DirectX 12 patches for both games.
Even now, as many mentioned problems should be less severe, there are a lot of aspects that impact performance and complexity. Especially the memory management is a big problem to handle. DirectX 12 needs more memory than DirectX 11 and has problems when using more memory than physically available on the graphics card. As DirectX 12 is a low level API, the code has to be tested on a lot of hardware combinations as it may show performance problems on specific combinations that are not present with the primary test hardware (different hardware costs). Furthermore, the DX12 gains are easily masked by high quality settings, fast CPUs, or running in high resolutions.
Async Compute is definitely the future according to Katsman, but currently it shows most gains on the current gaming consoles.
In a later talk, a Ubisoft developer for the AC series also mentioned that DX 12 is hard to develop for. Only changing the API without optimization led to a much lower performance in their example (200% mentioned on the slide).
Good DirectX 12 gains with SLI or Crossfire
Multi GPU with DX12 is one of the most positive aspects of the new API. The developers are quite happy with their direct control over multiple GPUs. AFR (alternate frame rate) in the driver (SLI and CrossFire in DirectX 11) is unpredictable, leads to high CPU overhead and is uncontrollable according to Katsman. Furthermore, he mentioned that memory stacking (using all of the GPU memory of both cards and not duplicate the data in it) won't be coming. It is no easy task to do that and the market is not big enough to justify investments (time and money) to solve this problem.
Up to 10 % better performance
A big problem of DirectX 12 is also the surrounding hype. Many users were looking forward to high performance gains, but according to Katsman, only 10% are possible. This, combined with the high efforts to produce a good DirectX 12 version, lead to the question whether DirectX 12 is worth it. "A good question" was the answer of Katsman, although he saw it rather "positive". All in all, the hype for DirectX 12 is a bit inflated. It is a lot of work to use the new low-level API and users should not expect huge performance gains.
GDC 2017 talks:
"Advanaced Graphics Tech: How to Thrive on the Bleeding Edge Whilst Avoiding Death by 1000 Paper Cuts" by Jurjen Katsman, CEO Nixxes
" Advanced Graphics Tech: Moving to DirectX 12: Lessons Learned"