If you were a Total War fan waiting for an extra boost in performance from Total War: Warhammer, good news: the long-awaited patch adding in DirectX 12 support has finally arrived.
Bad news: if you’re a NVIDIA owner, you’re getting bugger all benefit.
Much like Ashes of the Singularity, Total Warhammer is a pretty taxing game when it comes to hardware. It's also a very friendly game to AMD cards, although it hasn't been the most benchmark-friendly of titles. An in-built benchmark wasn't shipped with the game upon release, and to get any consistent results people have been recommended the PresentMon command line tool, which is far from the most user-friendly thing in the world.
But with the latest patch, Creative Assembly have also included an Empire vs Greenskins benchmark for users to test their video cards. You can run it in DX11 and DX12 modes, and it's available for all users.
But much like when Vulkan support was added to The Talos Principle, if you're expecting massive performance gains then you've got another thing coming.
We shipped back our Radeon RX 480 back to AMD this morning, and our machine is currently running a GTX 1080 instead. And as it turns out, the performance ... well, it's worse. The figures below is the average FPS recorded over three runs, using the Ultra preset at 1080p.
25% slower in DX12 at 1080p -- ouch.
I haven't been able to plug our reference R9 390X back in to confirm first-hand, but I've seen plenty of anecdotal reports that AMD users are enjoying around 10-15% improvement in DX12. Creative Assembly's own FAQ notes that AMD users will get far more play out of DX12 than their NVIDIA cousins, at least as far as Warhammer is concerned.
In readiness for DX12, AMD have been building Async Compute functionality into their GPUs for quite some time now, including the new RX480. This means that, while some earlier-gen cards are technically DX12 compatible, you’ll see more DX11-to-DX12 performance gains across a greater range of AMD cards, as they get the benefit of Async Compute and therefore parallelize tasks better.
That said, there are still plenty of bugs. For instance, if you're using a GTX 900 series GPU, you'll get occasional shadow flickering whenever MSAA (multi-sample aliasing) is enabled.
There's flickering in massive battles if you're using an R9 Fury or R9 300 series card from AMD. Fullscreen Windowed, otherwise known as borderless fullscreen, has a bit of a problem with the HD7800. And if you're using one of the R7 200 series GPUs from AMD, trying to use DX12 can result in a crash on start-up.
So there's a few fixes that need to be implemented. But perhaps the biggest one right now is on NVIDIA to implement async compute functionality, or find better performance gains from elsewhere. Creative Assembly's FAQ notes that async compute support isn't enabled for the 900 series or TITAN X cards, with a question mark against the GTX 1070 and GTX 1080.