Total War: Warhammer Gets DirectX 12, But Don't Get Excited

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.

Image: Supplied

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.

Image: Supplied

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.

Image: Supplied

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.


Comments

    It seems to me nVidia has no intention of implementing hardware ASYNC scheduling in the future. They are going to depend on their extremely high shader throughput to come out the other side.

    Don't know if this will work forever though.

    Edit: if they turn around and start supporting it at a later architecture, the current GPUs will probably be left behind in performance.

    Last edited 05/07/16 1:40 pm

    The most important question is actually, does AMD in DX12 mode outperform NVIDIA's performance in DX11 mode? The graphics aren't actually being made better looking by DX12. That's not what DX12 is about, it's more about data handling. If the NVIDIA version already outperforms the AMD DX12 version in DX11 mode, why bother implementing DX12? A lot of the "bare metal" programming stuff that's been released lately, seems to exist solely to make up for AMDs inability to ship a decent DirectX/OpenGL Driver compared to NVIDIA (especially on the Linux side of things where NVIDIA has been ahead for 20 years).

    Last edited 06/07/16 7:55 am

Join the discussion!