We have early information about some of the details regarding DirectX 12, and what follows will surprise you.
A source with knowledge of the matter gave us some early information about an "unspoken API," which we strongly infer is DirectX 12.
We first heard of DirectX 12 in 2013, and DirectX 12 appears to finally be around the corner. It's expected to launch in tandem with the upcoming Windows 10 operating system.
The new API will work much differently from older APIs, and it's common knowledge by now that it will be "closer to the hardware" than older APIs, similar to AMD's Mantle. This will bring massive improvements in framerates and latency, but that's not all that DirectX 12 has up its sleeve.
Explicit Asynchronous Multi-GPU Capabilities
One of the big things that we will be seeing is DirectX 12's Explicit Asynchronous Multi-GPU capabilities. What this means is that the API combines all the different graphics resources in a system and puts them all into one "bucket." It is then left to the game developer to divide the workload up however they see fit, letting different hardware take care of different tasks.
Part of this new feature set that aids multi-GPU configurations is that the frame buffers (GPU memory) won't necessarily need to be mirrored anymore. In older APIs, in order to benefit from multiple GPUs, you'd have the two work together, each one rendering an alternate frame (AFR). This required both to have all of the texture and geometry data in their frame buffers, meaning that despite having two cards with 4 GB of memory, you'd still only have a 4 GB frame buffer.
DirectX 12 will remove the 4 + 4 = 4 idea and will work with a new frame rendering method called SFR, which stands for Split Frame Rendering. Developers will be able to manually, or automatically, divide the texture and geometry data between the GPUs, and all of the GPUs can then work together to work on each frame. Each GPU will then work on a specific portion of the screen, with the number of portions being equivalent to the number of GPUs installed.
Our source suggested that this technology will significantly reduce latency, and the explanation is simple. With AFR, a number of frames need to be in queue in order to deliver a smooth experience, but what this means is that the image on screen will always be about 4-5 frames behind the user's input actions.
This might deliver a very high framerate, but the latency will still make the game feel much less responsive. With SFR, however, the queue depth is always just one, or arguably even less, as each GPU is working on a different part of the screen. As the queue depth goes down, the framerate should also go up due to freed-up resources.
The source said that with binding the multiple GPUs together, DirectX 12 treats the entire graphics subsystem as a single, more powerful graphics card. Thus, users get the robustness of a running a single GPU, but with multiple graphics cards.
It should be noted that although the new Civilization: Beyond Earth title runs on Mantle, it has an SFR option and works in a similar way because AMD's Mantle API supports SFR. Mind you, Split Frame Rendering is not a new trick by any means. Many industrial film, photography, and 3D modelling applications use it, and back in the 90s some game engines also supported it.
Of course, chances are you won't be able to use all of the options described above at the same time. Split frame rendering, for example, will still likely require some of the textures and geometry data to be in multiple frame buffers, and there may be other sacrifices that have to be made.
Build A Multi-GPU System With Both AMD And Nvidia Cards
We were also told that DirectX 12 will support all of this across multiple GPU architectures, simultaneously. What this means is that Nvidia GeForce GPUs will be able to work in tandem with AMD Radeon GPUs to render the same game â€“ the same frame, even.
This is especially interesting as it allows you to leverage the technology benefits of both of these hardware platforms if you wish to do so. If you like Nvidia's GeForce Experience software and 3D Vision, but you want to use AMD's TrueAudio and FreeSync, chances are you'll be able to do that when DirectX 12 comes around. What will likely happen is that one card will operate as the master card, while the other will be used for additional power.
What we're seeing here is that DirectX 12 is capable of aggregating graphics resources, be that compute or memory, in the most efficient way possible. Don't forget, however, that this isn't only beneficial for systems with multiple discrete desktop GPUs. Laptops with dual-graphics solutions, or systems running an APU and a GPU will be able to benefit too. DirectX 12's aggregation will allow GPUs to work together that today would be completely mismatched, possibly making technologies like SLI and CrossFire obsolete in the future.
There is a catch, however. Lots of the optimization work for the spreading of workloads is left to the developers â€“ the game studios. The same went for older APIs, though, and DirectX 12 is intended to be much friendlier. For advanced uses it may be a bit tricky, but according to the source, implementing the SFR should be a relatively simple and painless process for most developers.
Queueing frames has been a difficult point for various studios, such that on some games SLI or CrossFire configurations don't even work. The aggregation together with SFR should solve that issue.
That's as far as we can reach into the cookie jar for now, but we expect to see and learn more at GDC.