cancel
Showing results for 
Search instead for 
Did you mean: 

Red Team Discussions

rhallock
Staff
Staff

Re: DirectX 12: Q&A with Robert Hallock

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:

  • Rendering a hypothetical 3D scene takes 8 milliseconds.
  • Computing the setup for the next frame takes 1.5 milliseconds.
  • Processed serially, it would take 9.5 milliseconds to finish churning through the data to reach the next scene.
  • But now I can process setup and 3D at the same time, so now I only have to wait on the longest job: 8ms for the 3D scene. The setup has already been completed in parallel when the next scene has started.

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.

rhallock
Staff
Staff

Re: DirectX 12: Q&A with Robert Hallock

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.

rhallock
Staff
Staff

Re: DirectX 12: Q&A with Robert Hallock

Good DirectX programmers.

downl1nk
Staff
Staff

Re: DirectX 12: Q&A with Robert Hallock

With DX12, are functions and compute such as DirectCompute / C++ AMP relevant?

0 Kudos
adored
Journeyman III

Re: DirectX 12: Q&A with Robert Hallock

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?

0 Kudos
maverick
Adept II

Re: DirectX 12: Q&A with Robert Hallock

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.

0 Kudos
rhallock
Staff
Staff

Re: DirectX 12: Q&A with Robert Hallock

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.

0 Kudos
rhallock
Staff
Staff

Re: DirectX 12: Q&A with Robert Hallock

AFR, SFR and many other multi-GPU uses are possible in DX12. The developer can choose which is best for their needs.

0 Kudos
rhallock
Staff
Staff

Re: DirectX 12: Q&A with Robert Hallock

I imagine it's difficult to design an implementation for hardware that doesn't support the feature.

RxwBPB1.gif

downl1nk
Staff
Staff

Re: DirectX 12: Q&A with Robert Hallock

Rekt.