Yes, there is a major feature called asynchronous shading. Fortunately for AMD customers, it's a DX12 feature that only GCN hardware supports. It allows a graphics card to run compute and graphics workloads simultaneously, which is a first for DirectX.
Radeon GPUs have three independent queues for useful work: graphics, memory and compute. In DX11, this hardware must be accessed serially. In other words, I can only do work on one of these queues at a time, even if the jobs don't relate to one another and could run independently. One of DX12's big changes is that these jobs can run independently. Now I can render what the user is seeing right now right alongside computing the setup for the next thing the user sees.
A math example:
That's a render speedup of 15%. That's a lot. That's 15% higher framerates in our hypothetical example.
Games are using compute and graphics all the time. Most shadowing, lighting, camera lens and physics effects are compute. Saving time there makes 3D geometry rendering faster, it makes framerates higher and it makes VR or input latency lower.
Good all around. This is a huge feature for DX12, and developers are extremely familiar with it as it's been accessible in the console space for quite some time. They've been clamoring to bring the same kind of performance gains on PCs.
I think async compute use will steadily rise over time. It's quite common on consoles, so developers are very familiar with it and excited about it for the "free" performance it provides. They definitely want this on PC.
Good DirectX programmers.
With DX12, are functions and compute such as DirectCompute / C++ AMP relevant?
Will alternate frame rendering Crossfire be gone with DX12? I've heard rumours of Liquid VR being capable of an "infinite" number of GPUs in Crossfire too - I'm guessing it's basically the same as SFR or Split Frame Rendering?
Hi there,
An Aquanox Dev said this: "We’d Do Async Compute Only With An Implementation That Doesn’t Limit NVIDIA Users". I'd like to hear your opinion on this statement.
AFAIK DX12 primarily concerns itself with Direct3D 12.. GPGPU is not my area of expertise, but I've not seen chatter on DirectCompute 12. I'm uncertain if it would actually even be needed. C++ AMP and DirectCompute are already quite robust.
AFR, SFR and many other multi-GPU uses are possible in DX12. The developer can choose which is best for their needs.
I imagine it's difficult to design an implementation for hardware that doesn't support the feature.
Rekt.