HITMAN Lead Dev: DX12 Gains Will Take Time, But They’re Possible After Ditching DX11
HITMAN (or rather, its prologue) came out just over a month ago and was received pretty well overall, Wccftech review included. The game was also one of the first to introduce DirectX 12 support on PC, but the gains were minimal on AMD and non-existent on NVIDIA.
We've had the chance to inquire about this specific topic with IO Interactive's Lead Programmer Jonas Meyer, who mentioned that the fabled 20% CPU performance and 50% GPU performance boosts advertised by Microsoft are possible, but only in time and after dropping DirectX 11 support entirely. HITMAN itself was more of a straight port to DirectX 12, for instance.
- HITMAN on DirectX 12 only offers approximately a 10% performance boost on AMD cards. Are you planning to improve DirectX 12 performance and/or add any further DX12 features via patch and if so, which ones?
- We don’t have any DX12 specific improvements planned for our subsequent releases. While we have 10% improvement when completely GPU bound, I think there are gains above that when you're CPU bound.
- NVIDIA cards, on the other hand, have basically the same performance under DX11 and DX12. You've mentioned during the GDC 2016 talk that you're working with NVIDIA to improve their Async Compute implementation - how are things looking on that end and do you have any ETA?
- I don’t have any news on that front, sorry.
- Async Compute in particular has received a lot of attention from PC enthusiasts, specifically in regards to NVIDIA GPUs lacking hardware support for it. However, in the GDC 2016 talk you said that even AMD cards only got a 5-10% boost and furthermore, you described Async Compute as "super hard" to tune because too much work can make it a penalty. Is it fair to say that the importance of Async Compute has been perhaps overstated in comparison to other factors that determine performance? Do you think NVIDIA may be in trouble if Pascal doesn't implement a hardware solution for Async Compute?
- The main reason it's hard is that every GPU ideally needs custom tweaking – the bandwidth to compute ration is different for each GPU, ideally requiring tweaking the amount of async work for each one. I don’t think it's overstated, but obviously YMMW (your mileage may vary). In the current state, Async compute is a nice & easy performance win. In the long run it will be interesting to see if GPU’s get better at running parallel work, since we could potentially get even better wins.
- Several DirectX 12 games are out now, but the first outlook isn't nearly as positive as Microsoft stated (up to 20% more performance from the GPU and up to 50% more performance from the CPU). Do you think that it's just a matter of time before developers learn how to use the new API, or perhaps the performance benefits have been somewhat overestimated?
- I think it will take a bit of time, and the drivers & games need to mature and do the right things. Just reaching parity with DX11 is a lot of work. 50% performance from CPU is possible, but it depends a lot on your game, the driver, and how well they work together. Improving performance by 20% when GPU bound will be very hard, especially when you have a DX11 driver team trying to improve performance on platform as well. It's worth mentioning we did only a straight port, once we start using some of the new features of dx12, it will open up a lot of new possibilities – and then the gains will definitely be possible. We probably won’t start on those features until we can ditch DX11, since a lot of them require fundamental changes to our render code.
- Do you believe HITMAN's DirectX 12 performance could have been better if the game had been built entirely on it, rather than having DX11 as min spec?
- Yes, it obviously would have. DX12 includes new hardware features, which I think over time will make it possible for us to make games run even better.
- Another low level API has been recently released: Vulkan. What do you think of it in terms of performance and features? Do you have any plans to add Vulkan support to HITMAN?
- Vulkan is a graphics programmer’s wet dream: A high performance API, like d3d12, for all platforms. With that said, we don’t have any plans to add Vulkan support to Hitman. Also, unfortunately it looks like Vulkan won't be supported on all platforms.
- Finally, as a developer, what are your thoughts on the Universal Windows Platform?
- I’m not qualified to talk about UWP – I don’t know anything about it. I can say, I really like the Win32 API, it's been around forever, is well documented, and it works.
While many have been disappointed by the performance results of the first DirectX 12 compatible games, it is worth to add to Meyer's words that we have seen the same exact situation in the past. DirectX 11 took a very long time to be properly implemented in games; given the faster adoption of Windows 10, it's likely that DirectX 12 will get there faster but it clearly still needs time, mostly because developers have to understand how to best utilize its new capabilities.
Dropping DirectX 11, which might happen sooner rather than later (DICE's Johan Anderson wished DX12 only games for Holiday 2016 well before Windows 10 came out), should allow programmers to explore these possibilities. Of course, here at Wccftech we'll keep you updated on everything concerning DirectX 12 & Vulkan, so stay tuned.