In a very simple way, which of course I'll get corrected down the thread:
AMD has been betting on parallel computing and Asynchronous shading since the 7XXX series with GCN. This architecture is the one used in consoles nowadays as well (Xbox One and PS4). Most console games benefit from low-overhead programming and are used closed to spec of their hardware.
Enter Mantle, the low overhead API that AMD wanted to bring to the PC side, this made a huge burn on Microsoft which decided to make DX12 close to what Mantle and AMD were offering. AMD also gave Mantle for free, which is now Vulkan (The future of OpenGL)
So now we have two future API's (DX12 and Vulkan) which benefit a lot from how AMD do things in their Architectures.
If games are programmed to use the full DX12 API's for example, they will use Async shaders, which is AMD only as of right now. Hence why in the Oxide benchmarks, you have a 290X trading blows with a 980Ti
TL;DR
Nvidia has wonderful DX11 performance due their Serial Architecture
AMD has wonderful DX12 performance, due their Parallel Architecture
Why did you decide to buy G-Sync monitor +9months before you can actually use the main feature?
Either they are a couple driver updates away from Async Compute support, or they expect this feature to be only relevant when Pascal is out.
Regardless, this has not hurt them (or current Nvidia users) any.
Some guys mocked people for using asynchronous compute in an argument about PS4 performance in the past here on GAF and multiple times. If true, it deserves a pretty big wall of shame. Would be hilarious.
But wait. I don't want to be involved in any of this. Leave me alone.
If you were exposed to AMD's advertising efforts you would know about their support for Async shaders since February.
the only 'vendor' specific code is for Nvidia where we had to shutdown async compute. By vendor specific, I mean a case where we look at the Vendor ID and make changes to our rendering path. Curiously, their driver reported this feature was functional but attempting to use it was an unmitigated disaster in terms of performance and conformance so we shut it down on their hardware.
We disabled it at the request of Nvidia, as it was much slower to try to use it then to not.
Why is Nvidia even reporting this feature being functional and then asking the developer to manually disable it again? What a mess.
Is this the reason amd is much better at bitcoin mining?
From the quotes in the OP:
Why is Nvidia even reporting this feature being functional and then asking the developer to manually disable it again? What a mess.
Do I have to start regretting buying a GTX 970 a few months back?
Well, it wouldn't exactly be a surprise that Nvidia got fat on their success and missed the boat on something important.
Hmm now I think about it, could be drivers, as Nvidia cards have their own queue engine.Is this "correctable" in a driver update or does it require completely new hardware?
Doesn't async timewarp use this in Oculus Rift..?
Nvidia at 82% share or something atm.
It is practically the same that happens on CPUs. You can create any amount of threads (queues) even if your CPU (GPU) just has a single core (runs a single command stream). If more threads (queues) are active at the same time than are supported by the hardware, they will be periodically context switched.
ASYNC Compute is part of DX12 so every GPU "supports" it even if it's not implemented in hardware which is the case with NVIDIA's current GPUs. To quote REDLYNX's Sebbi:
https://forum.beyond3d.com/posts/1868942/
So AMD GPU: HW Support for Async Compute
NVIDIA GPU: Async Compute code will run single thread
"Our belief is that by the middle of the PlayStation 4 console lifetime, asynchronous compute is a very large and important part of games technology." - Mark Cerny
More reading material from few months back:
http://www.anandtech.com/show/9124/amd-dives-deep-on-asynchronous-shading
http://wccftech.com/amd-improves-dx12-performance-45-gpu-asynchronous-compute-engines/
We are just about to enter the "middle of the PlayStation 4 console lifetime", and with the big help from AMD, low-level APIs will arrive at the same time on PC.
Tough call then... Dx11 still the key performance requirement today. How long until async compute is too important to be ignored & dx11 support has faded?
Most obvious gain of DX12 is decoupling DX11 CPU processing from old singlethreaded-focus into full multithreaded approach. After that, devs get full controll over GPU and memory they are accessing, including features such as async compute.
DX11 is here to stay because it is easy, but DX12 will be there for studios [or engines] who are focused on performance [pls Ubi, switch AC games [even old ones] to DX12 ASAP].
Not sure, even UE4 doesn't seem to support it (except for X1)Tough call then... Dx11 still the key performance requirement today. How long until async compute is too important to be ignored & dx11 support has faded?
People wondering why Nvidia is doing a bit better in DX11 than DX12. Thats because Nvidia optimized their DX11 path in their drivers for Ashes of the Singularity. With DX12 there are no tangible driver optimizations because the Game Engine speaks almost directly to the Graphics Hardware. So none were made. Nvidia is at the mercy of the programmers talents as well as their own Maxwell architectures thread parallelism performance under DX12. The Devellopers programmed for thread parallelism in Ashes of the Singularity in order to be able to better draw all those objects on the screen. Therefore what were seeing with the Nvidia numbers is the Nvidia draw call bottleneck showing up under DX12. Nvidia works around this with its own optimizations in DX11 by prioritizing workloads and replacing shaders. Yes, the nVIDIA driver contains a compiler which re-compiles and replaces shaders which are not fine tuned to their architecture on a per game basis. NVidias driver is also Multi-Threaded, making use of the idling CPU cores in order to recompile/replace shaders. The work nVIDIA does in software, under DX11, is the work AMD do in Hardware, under DX12, with their Asynchronous Compute Engines.
I like this quote, where Nvidia's drivers gave them big boosts before, they're losing in DX12 because drivers aren't nearly as important.
Pretty much what AMD has been on about for the past 3 years. While Nvidia focused on the market as-is, AMD was getting in early on DX12 and it's cost them dearly in their already low market share. Now that DX12 is the current focus, I'm sure Pascal won't have these problems and it honestly can't if they want to compete. When Pascal comes around, we'll probably start seeing the first DX12 games hit the market and if their top-tier card is competing or even winning, that's all anyone is going to be talking about, not Maxwell performance.
People wondering why Nvidia is doing a bit better in DX11 than DX12. Thats because Nvidia optimized their DX11 path in their drivers for Ashes of the Singularity. With DX12 there are no tangible driver optimizations because the Game Engine speaks almost directly to the Graphics Hardware. So none were made. Nvidia is at the mercy of the programmers talents as well as their own Maxwell architectures thread parallelism performance under DX12. The Devellopers programmed for thread parallelism in Ashes of the Singularity in order to be able to better draw all those objects on the screen. Therefore what were seeing with the Nvidia numbers is the Nvidia draw call bottleneck showing up under DX12. Nvidia works around this with its own optimizations in DX11 by prioritizing workloads and replacing shaders. Yes, the nVIDIA driver contains a compiler which re-compiles and replaces shaders which are not fine tuned to their architecture on a per game basis. NVidias driver is also Multi-Threaded, making use of the idling CPU cores in order to recompile/replace shaders. The work nVIDIA does in software, under DX11, is the work AMD do in Hardware, under DX12, with their Asynchronous Compute Engines.
I like this quote, where Nvidia's drivers gave them big boosts before, they're losing in DX12 because drivers aren't nearly as important.
Pretty much what AMD has been on about for the past 3 years. While Nvidia focused on the market as-is, AMD was getting in early on DX12 and it's cost them dearly in their already low market share. Now that DX12 is the current focus, I'm sure Pascal won't have these problems and it honestly can't if they want to compete. When Pascal comes around, we'll probably start seeing the first DX12 games hit the market and if their top-tier card is competing or even winning, that's all anyone is going to be talking about, not Maxwell performance.
"Our belief is that by the middle of the PlayStation 4 console lifetime, asynchronous compute is a very large and important part of games technology." - Mark Cerny
More reading material from few months back:
http://www.anandtech.com/show/9124/amd-dives-deep-on-asynchronous-shading
http://wccftech.com/amd-improves-dx12-performance-45-gpu-asynchronous-compute-engines/
We are just about to enter the "middle of the PlayStation 4 console lifetime", and with the big help from AMD, low-level APIs will arrive at the same time on PC.
IIRC it was 290X versus 980Ti which is two grades above and twice the pricePeople painting an obscure future for Nvidia is funny, because even on that biased Ashes of the Singularity benchmark, geared towards AMD hardware even when the engine it's based on doesn't shows that strange behaviour, still sees better performance on Nvidia side.
Usual AMD forums fud.
IIRC it was 290X versus 980Ti which is two grades above and twice the price
Then again, Fury didn't shine so more data is indeed needed.
There is no such thing as an async shader, there is an async pipe/ring (generally exposed as an 'async device') upon which compute shaders run.
These threads, so painful.
That's the Oxide Dev, is the company aligned with AMD?
Why would Nvidia do this? why are they being dumb.
Should I throw my 970 in the garbage and put my 7950 back in?
Nvidia has the marketshare and the money to focus on what works best "now" then release something different when it's needed. AMD doesn't have that luxury. They have to aim at future proofing because they don't have the R&D budget to constantly adapt like Nvidia. So, when they release a new microarchitecture, it's aimed a few year ahead and may not play well right off the bat with what is currently popular. This also means that when AMD has a misstep, they are stuck with that mistake for years (as with their CPUs.)
Should I throw my 970 in the garbage and put my 7950 back in?
This pic should be on OP, imo.
Why did you decide to buy G-Sync monitor +9months before you can actually use the main feature?
What does this prove, exactly?
I am pretty sure NVs research budget is not about "the now" and AMDs "is about the future". The world is more diverse than the picture you paint. Because if you look at any other data point than async compute (which still has not even been proven that Maxwell 2 does not support it) you would see NV also has hardware features which are "future oriented".
then I can do this!
This pic should be on OP, imo.