Ashes of the Singularity Revisited: A Beta Look at DirectX 12 & Asynchronous Shading
by Daniel Williams & Ryan Smith on February 24, 2016 1:00 PM ESTWe’ve been following DirectX 12 for about 2 years now, watching Microsoft’s next-generation low-level graphics API go from an internal development project to a public release. Though harder to use than earlier high-level APIs like DirectX 11, DirectX 12 gives developers more control than ever before, and for those who can tame it, they can unlock performance and develop rendering techniques simply not possible with earlier APIs. Coupled with the CPU bottlenecks of DirectX 11 coming into full view as single-threaded performance increases have slowed and CPUs have increased their core counts instead, and DirectX 12 could not have come at a better time.
Although DirectX 12 was finalized and launched alongside Windows 10 last summer, we’ve continued to keep an eye on the API as the first games are developed against it. As developers need the tools before they can release games, there’s an expected lag period between the launch of Windows 10 and when games using the API are ready for release, and we are finally nearing the end of that lag period. Consequently we’re now getting a better and clearer picture of what to expect with games utilizing DirectX 12 as those games approach their launch.
There are a few games vying for the title of the first major DirectX 12 game, but at this point I think it’s safe to say that the first high profile game to be released will be Ashes of the Singularity. This is due to the fact that the developer, Oxide, has specifically crafted an engine and a game meant to exploit the abilities of the API – large numbers of draw calls, asynchronous compute/shading, and explicit multi-GPU – putting it a step beyond adding DX12 rendering paths to games that were originally designed for DX11. As a result, both the GPU vendors and Microsoft itself have used Ashes and earlier builds of its Nitrous engine to demonstrate the capabilities of the API, and this is something we’ve looked at with both Ashes and the Star Swarm technical demo.
Much like a number of other games these days, Ashes of the Singularity for its part has been in a public beta via Steam early access, while its full, golden release on March 22nd is fast approaching. To that end Oxide and publisher Stardock are gearing up to release the second major beta of the game, and the last beta before the game goes gold. At the same time they’ve invited the press to take a look at the beta and its updated benchmark ahead of tomorrow’s early access release, so today we’ll be taking a second and more comprehensive look at the game.
The first time we poked at Ashes was to investigate an early alpha of the game’s explicit multi-GPU functionality. Though only in a limited form at the time, Oxide demonstrated that they had a basic implementation of DX12 multi-GPU up and running, allowing us to not only pair up similar video cards, but dissimilar cards from opposing vendors, making a combined GeForce + Radeon setup a reality. This early version of Ashes showed a lot of promise for DX12 multi-GPU, and after some additional development it is now finally being released to the public as part of this week’s beta.
Since that release Oxide has also been at work both cleaning up the code to prepare it for release, and implementing even more DX12 functionality. The latest beta adds greatly improved support another one of DX12’s powerhouse features: asynchronous shading/computing. By taking advantage of DX12’s lower-level access, games and applications can directly interface with the various execution queues on a GPU, scheduling work on each queue and having it executed independently. Async shading is another one of DX12’s optimization features, allowing for certain tasks to be completed in less time (lower throughput latency) and/or to better utilize all of a GPU’s massive arrays of shader ALUs.
Between its new functionality, updated graphical effects, and a significant amount of optimization work since the last beta, the latest beta for Ashes gives us quite a bit to take a look at today, so let’s get started.
153 Comments
View All Comments
Beany2013 - Wednesday, February 24, 2016 - link
You are aware that Mantle and DX12 are actually different APIs, yeah?zheega - Wednesday, February 24, 2016 - link
AMD just released new drivers that say are made for this benchmark. Can we get a quick follow-up if their performance improves even more??http://support.amd.com/en-us/kb-articles/Pages/AMD...
AMD has partnered with Stardock in association with Oxide to bring gamers Ashes of the Singularity – Benchmark 2.0 the first benchmark to release with DirectX® 12 benchmarking capabilities such as Asynchronous Compute, multi-GPU and multi-threaded command buffer Re-ordering. Radeon Software Crimson Edition 16.2 is optimized to support this exciting new release.
revanchrist - Wednesday, February 24, 2016 - link
See? Every time when there's a pro AMD game tested, there'll be much butt hurt fanboy comments. And i guess everyone knows why. Because when you bought something, you'll always want to justified your purchase and you know who's got the lion share of the dGPU market now. Guess nowadays people are just too sensitive or has a heart of glasses, which makes them judging things ever so subjectively and personally.Socius - Wednesday, February 24, 2016 - link
For anyone who missed it:"Update 02/24: NVIDIA sent a note over this afternoon letting us know that asynchornous shading is not enabled in their current drivers, hence the performance we are seeing here. Unfortunately they are not providing an ETA for when this feature will be enabled."
ToTTenTranz - Wednesday, February 24, 2016 - link
"Unfortunately they are not providing an ETA for when this feature will be enabled."If ever...
andrewaggb - Wednesday, February 24, 2016 - link
Makes sense why it would be slightly slower. Also makes through benchmarks less meaningfulExt3h - Wednesday, February 24, 2016 - link
"not enabled" is a strange and misleading wording, since it obviously is both available and working correctly according to the specification.Should be read as "not being made full use of", as it is only lacking any clever way of profiting from asynchronous compute in hardware.
barn25 - Thursday, February 25, 2016 - link
If you google around you will find out nvidia does not have asynchornous shading on its DX"12" cards. this was actually first found out in WDDM 1.3 back in windows 8.1 when they would not support the optional features which AMD does.Ext3h - Thursday, February 25, 2016 - link
I know that the wrong terminology kept being used for years now, especially driven by major tech review websites like this one. But that's still not making it any less wrong.The API is fully functional. So the driver does support it. Whether it does so efficiently is an entirely different matter, you don't NEED hardware "support" to provide that feature. Hardware support is only required to provide parallel execution, as opposed to the default sequential fallback. The latter one is perfectly within the bounds in the specification, and counts as fully functional. It's just not providing any additional benefits, but it's neither broken nor deactivated.
barn25 - Thursday, February 25, 2016 - link
Don't try to change it. I am referring to HW Asyc compute, which AMD supports and NVidia does not. Using a shim will impact performance even greater.