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
Friendly0Fire - Wednesday, February 24, 2016 - link
You don't have enough data to know this.Once the second generation of DX12 cards come out, then you can analyze the jumps and get a better idea. Ideally you'd wait for three generations of post-DX12 GPUs to get the full picture. As it is, all we know is that AMD's DX12 driver is better than their DX11 driver... which ain't saying much.
The_Countess - Thursday, February 25, 2016 - link
except we have 3 generations of DX12 cards already on AMD's side, starting with the hd7970, which still holds its own quit well.and we've had multiple DX12 and vulkan benchmarks already and in every one of them the 290 and 390 in particular beat the crap out of nvidia's direct competition. in fact they often beat or match the card above them as well
as for drivers. AMD's dx11 drivers are fine. they just didn't invest bucketloads of money in game specific optimizations like nividia did, but instead focused on fixed the need for those optimizations in the first place. nvidia's investment doesn't offer long term benefits (a few months, then people move on to the next game) and that level of optimization in the drivers is impossible and even unwanted in low level API's.
basically nvidia will be losing its main competitive advantage this year.
hero4hire - Friday, February 26, 2016 - link
I think what he meant was we don't have enough test cases to conclude mature dx12 performance. The odds are pointing to AMD having faster gpus for dx12. But until multiple games are out, and preferably one or two "dx12" noted driver, we're speculating. I thought this was clear from the article?It's a stretch calling 3 generations of dx12 released cards too. I guess if we add up draft revisions there are 50 generations of AC wireless.
You could state that because AMDs arch is targeting dx12, it looks to give an accross the board performance win in dx12 next gen games. But again we only have 1 beta game as a test case. Just wait and it will be a fact or not. No need to backfill the why
CiccioB - Sunday, February 28, 2016 - link
Right, they didn't invest bunchload in optimizing current game, they just payed a single company to make a benchmark game using their most strong point in DX12, super mega threaded (useless) engine. Not different than nvidia using super mega geometry (uselessly) complex scenes helped by tessellation.Perfect marketing: most return with less investments.
Unfortunately a single game with a bunchload of ASYN compute thread added just for the joy of it is not a complete DX12 trend: what about games that are going to support Voxel global illumination that AMD HW cannot handle?
We'll see where the game engine will point to. And if this is another faux-fire that AMD has started up these years seeing they are in big trouble.
BTW: it is stupid to say that 390 "beat up the crap aout of anything else" that is using a different API. All you could see is that a beefed up GPU like Hawaii consuming 80+W with respect to the competition manage finally to pass it as it should have do at day one. But this was only because of the use of a different API with different capacities that the other GPU could not benefit from.
You can't say it is better if with current standard API (DX11) that beefed up GPU can't really do better.
If you are so excited by the fact that a GPU 33% bigger than another is able to get almost 20% more in performance with a future API and best conditions at the moment a complete new architecture is going to be launched by both red and green teams, well, you really demonstrates how biased you are. Whoever has bought a 290 (then 390) card back in the old days during all these month has been biting dust (and loosing Watts) and the small boost at the end of these cards life is really a shallow thing to be exited for.
lilmoe - Wednesday, February 24, 2016 - link
I like what AMD has done with "future proofing" their cards and drivers for DirectX12. But people buy graphics cards to play games TODAY. I'd rather get a graphics card with solid performance in what we have now rather than get one and sit down playing the waiting game.1) It's not like NVidia's DX12 performance is "awful", you'll still get to play future games with relatively good performance.
2) The games you play now won't be obsolete for years.
3) I agree with what others have said; AOS is just one game. We DON'T know if NVidia cards won't get any performance gains from DX12 under other games/engines.
ppi - Wednesday, February 24, 2016 - link
You do not buy a new gfx card to play games TODAY, but for playing TOMORROW, next month, quarter and then for a few years (few being ~two), until the performance in new games regresses to the point when you bite the bullet and buy a new one.Most people do not have unlimited budget to upgrade every six months when a new card claims performance crown.
Friendly0Fire - Wednesday, February 24, 2016 - link
It's unlikely that the gaming market will be flooded by DX12 games within six months. It's unlikely to happen within a few years, even. Look at how slow DX10 adoption was.anubis44 - Thursday, February 25, 2016 - link
I think you're quite wrong about this. Windows 10 adoption is spreading like wildfire in comparison to Windows XP --> Vista. DX10 wasn't available as a free upgrade to Vista the way DX12 is in Windows 10.Despoiler - Thursday, February 25, 2016 - link
Just about every title announced for 2016 is DX12 and some are DX12 only. There are many already released games that have DX12 upgrades in the works.Space Jam - Wednesday, February 24, 2016 - link
Nvidia leading is always irrelevant. Get with the program :pNvidia's GPUs lead for two years? Doesn't matter, AMD based on future performance.
DX11 the only real titles in play? Doesn't matter, the miniscule DX12/Vulkan sample size says buy AMD!