Parallel Rendering Explained
Ashes of the Singularity is powered by Oxide Games' fourth-generation Nitrous engine, with DX11 now being a limiting factor. Oxide uses DX11 to its benefit, with most uses of DX11 used in something that's called a "client/server model". The application (or game) is the client while the driver is the server. The application/game fills out commands which are usually single threaded while the server (driver) processes them.
Oxide notes that there are problems with this client/server model approach, as DX11 can build commands on multiple threads. But most of the time, "the mechanisms for doing so ended up serializing such that it had minimal if any real benefit", reports Oxide. The other issue with DX11 is that the client/server model has to take into place the amount of work needed to build commands for the GPU, something that won't push a single core, or the client thread can't assemble them on a single CPU core.
This means we'll see scaling and performance numbers coming in as expected until a single CPU becomes saturated. The entire performance of the system is determined from that single CPU core, so if it's saturated, performance can be affected. The last issue with DX11 is that the client/server model has to take into place that the driver has available CPU cores that the game isn't using. The Nitrous engine doesn't treat the API like that, as it'll use any and all cores available, so that the driver thread will fight with game threads.
Oxide has said that it has "spent considerable effort trying to cooperate with driver threads in DX11", but notes that "this ends up being a difficult task". Once Oxide worked its magic on Nitrous with the DX11 side of things, Oxide says that its Nitrous engine is "one of the most efficient D3D11 engines ever built". Take that, consoles.
Explicit Multi-GPU Support - YES!
This is the most exciting part of DirectX 12 and our testing with Ashes of the Singularity, the fact that AotS is the first-ever game with explicit multi-GPU abilities. DX12 allows developers to make use of all of the available GPUs in a system, so Ashes of the Singularity can do AFR (alternate frame rendering) - no matter which GPU is in the system. There could be an NVIDIA GeForce GTX 980 and an AMD Radeon R9 Fury X, and Ashes of the Singularity will make use of them both.
DirectX 12 has two modes of operations when it comes to GPUs: Linked Display Adapter (LDA) and Multiple Display Adapter (MDA). LDA is similar to the way SLI and Crossfire works, where each of the GPUs can be accessed by each other, with some additional features capable of being used.
The second mode, MDA, allows for any two GPUs to be used, no matter the brand or make. DX12's new Shared Fences feature allows developers like Oxide to synchronize commands between the GPUs, sharing the resources through shared memory pools which hang out in system memory. Oxide adds that there's "even a specification for textures to be stored in a cross-vendor standard swizzle pattern to allow sharing to be more efficient".
Asynchronous compute isn't a stranger to tech fans, with AMD pushing it throughout 2015. This is yet another exciting part of DX12, as it allows developers to use multiple command queues, all on a single GPU. This is similar to explicit multi-GPU, but here the idea is that a GPU has multiple graphics, compute and copy queues. This allows work queued up by developers and the game to act in parallel to each other, where it's similar to being automated.
PRICING: You can find products similar to this one for sale below.
United States: Find other tech and computer products like this over at Amazon's website.
United Kingdom: Find other tech and computer products like this over at Amazon UK's website.
Canada: Find other tech and computer products like this over at Amazon Canada's website.
- We at TweakTown openly invite the companies who provide us with review samples / who are mentioned or discussed to express their opinion of our content. If any company representative wishes to respond, we will publish the response here.