Ashes of the Singularity Beta 2

Explicit Multi-Adapter rendering

One of the crazy things that you can do with direct access to hardware is to support any and all compute resources as you see fit. In theory, you could use all of the CPU cores, run some additional calculations on the processor graphics to help out, and if there are multiple GPUs, you can have each one help with rendering.

There are three ways of doing this: Implicit Multi-Adapter (basically, the DX12 version of CrossFire/SLI), and Explicit Multi-Adapter (EMA)—in either linked or unlinked modes. Implicit depends on the drivers distributing the work between the GPUs, and it's the easy route to supporting multiple GPUs; Ashes has not yet implemented this. EMA is the reverse, where the resources of all GPUs are available, but it's up to the developer to access them. The linked version is a more restrictive subset, where the two GPUs have to be pretty close to the same hardware; unlinked allows for any GPUs to be used, and that's what Oxide is supporting right now.

That's a Sapphire R9 390 sitting above a GTX 980. Prepare for the coming apocalypse!

That's a Sapphire R9 390 sitting above a GTX 980. Prepare for the coming apocalypse!

We've restricted our testing to dual-GPU configurations, though in theory three or more GPUs could be used. There would be diminishing returns, naturally, just as with SLI and CF. Even with just two GPUs, there are questions to address: Which card is the primary GPU and which card is the secondary GPU? With just twelve GPUs, you'd have about 144 potential combinations (including single GPU results) to support, each one at least slightly different, with certain pairings being massively different.

Looking at the latest graphics cards, we have 2GB, 4GB, 6GB, 8GB, and 12GB VRAM—and 1GB, 3GB and 3.5GB as well, depending on how you want to count. Graphics core counts on AMD's R9 300/Fury and Nvidia's GTX 900 series and can be 768, 1024, 1280, 1664, 1792, 2048, 2560, 2816, 3072, 3548, and 4096. How do you go about balancing all of those potential combinations properly? In Oxide's case, the developer did their best to create good algorithms, and then they warn users that some combinations simply aren't going to work that well. Their general advice is to use cards of "similar performance levels," which means you'll want to know the baseline level of performance, and then you'll typically want to have your faster card as the primary GPU.

If it feels like the world of PC hardware has suddenly gone crazy, with mortal enemies suddenly teaming up to take on a greater threat, that's because it's exactly what Oxide is doing. This happens all the time in comic books and movies, so why not? But from a practical standpoint, there's still the question of whether or not this will actually prove useful to end users. At Maximum PC, we have lots of modern GPUs available for testing, and as hardware reviewers our job is to tell readers which cards are the best options. Reviewers everywhere are going to be all over Ashes of the Singularity, and we'll draw our conclusions about what card/cards are best able to run the game (spoiler: AMD). But just because we happen to have a GTX 980 Ti and an R9 Fury X sitting nearby doesn't mean any normal gamers are going to have that option—or an R9 390 and GTX 980, or GTX 960 and R9 285, get the point.

Think about it: Right now there is exactly one game where you can harness the combined power of an AMD and Nvidia GPU. For every single other game, your best bet (outside of single GPUs) is going to be pairing up identical GPUs in SLI or CrossFire. And even with matching GPUs, users of SLI/CF will tell you that there are plenty of occasions where things don't quite work right. Our general advice is to move up to a faster single GPU before branching out to dual GPUs. Sure, two GTX 970 cards will often outperform a single GTX 980 Ti, and they'll cost the same amount…but there will be times where a game doesn't support SLI/CF properly, or you'll get lots of micro-stuttering.

If AMD and Nvidia can't totally address these problems in their drivers, who out there really thinks that most game developers will do better with a low-level API? At best, they might code for a few specific cases, but in the real world gamers will want to stick with our above advice of buying a fast single GPU, or two matched GPUs. And if you happen to switch teams, you're still unlikely to benefit, unless you move more laterally than up. How many gamers have both an R9 290X and a GTX 970 sitting around, waiting to be used in a single system? More likely would be someone owning a previous generation HD 7950 and buying a current GTX 970, or skipping a generation completely and going from GTX 670 to R9 390.

The likelihood of each combination working well is going to decrease based on the difference in age and features. Oxide acknowledges as much, which means this second beta of Ashes is more for the hardware fanatics and the honor of sounding a barbaric yawp of "FIRST!" than it is about covering every possible base. Then the next generation of graphics hardware will come out, and some of the algorithms may break, or at least not work optimally. Long-term, it seems like EMA is a huge can of worms waiting to devour developer resources—or waiting for future generations to shake their heads.

But damn, it's a hell of a "first!" That this works at all is impressive, practicalities notwithstanding.

Ashes 5

Performance testing

Okay, let's hit the numbers and talk about what you can expect. First things first, we need to set the baseline performance expectations, so we're going to test single-GPU performance on a rather large collection of cards. It's already overwhelming, so please excuse us for not managing to grab R9 Fury and Nano, or most previous generation hardware. Outside of a few exceptions, we're looking at the R9 300/Fury cards and the GTX 900 series.

Oxide also advises testers to go high-end on the CPU, recommending 6-core and 8-core processors. Having spent the better part of a week testing just one CPU on all of the following combinations, we frankly didn't have the gumption to repeat everything on several more processors. This is basically a best-case look at performance scaling, though; users of slower processors will likely hit other bottlenecks than graphics.

Finally, without digging too deeply, it looks like Ashes is only using Alternate Frame Rendering (AFR) when using more than one GPU. This is the easiest way to support multiple GPUs, and it also explains why Oxide recommends using similar performance GPUs—you wouldn't want one GPU rendering at 30 FPS paired with a second GPU running at 60FPS, as the result would be every other frame stuttering. DX12 EMA allows for other options, like Split Frame Rendering (SFR), but Oxide has not implemented anything like that for now.

Here's our standard GPU test bed:

Swipe to scroll horizontally
Maximum PC 2015 GPU Test Bed
CPUIntel Core i7-5930K: 6-core HT @ 4.2GHz
MoboGigabyte GA-X99-UD4
GPUsAMD R9 285 2GB Compact (Sapphire)AMD R9 290X 4GB (Gigabyte)AMD R9 380 4GB (Sapphire)AMD R9 380X 4GB (Sapphire)AMD R9 390 8GB (Sapphire)AMD R9 Fury X 4GB (Reference)Nvidia GTX 950 2GB (Asus)Nvidia GTX 960 2GB (EVGA)Nvidia GTX 970 4GB Mini (Asus)Nvidia GTX 980 4GB (Reference)Nvidia GTX 980 Ti 6GB (Reference)Nvidia GTX Titan X 12GB (Reference)
SSDSamsung 850 EVO 2TB
MemoryG.Skill Ripjaws 16GB DDR4-2666
CoolerCooler Master Nepton 280L
CaseCooler Master CM Storm Trooper
OSWindows 10 Pro 64-bit
DriversAMD Crimson 16.1.1 (Feb7) Nvidia 361.91

That's twelve GPUs we're testing, though we only performed limited testing with the R9 290X (we paired it up with the R9 390 for pseudo-CrossFire testing). For the game itself, we limited testing to one resolution (1920x1080) with three quality presets: Crazy, High, and Standard (with AA disabled on Standard, though it normally defaults to 2xAA). The test sequence is similar to the earlier GDC_Demo, only with the Substrate now present instead of showing humans vs. humans. Graphically, the game is definitely looking better than last year—bullets and other effects seem to connect better, and there are lots of other details that weren't present before.

Jarred Walton

Jarred's love of computers dates back to the dark ages when his dad brought home a DOS 2.3 PC and he left his C-64 behind. He eventually built his first custom PC in 1990 with a 286 12MHz, only to discover it was already woefully outdated when Wing Commander was released a few months later. He holds a BS in Computer Science from Brigham Young University and has been working as a tech journalist since 2004, writing for AnandTech, Maximum PC, and PC Gamer. From the first S3 Virge '3D decelerators' to today's GPUs, Jarred keeps up with all the latest graphics trends and is the one to ask about game performance.