http://www.amd.com/en-us/solutions/soft ... /microsoft
https://msdn.microsoft.com/en-us/librar ... s.85).aspx
Spoiler: ukázať
That's a very naive look at how things are and is completely wrong the issue is the hardware.
If you are looking at the DX12 specs and most importantly the "performance" bands you'll see just how poorly NVIDIA's hardware is going to play out in the long run.
Even Maxwell 2 with it's 32 process que's supports only a single graphics que the remaining 31 can be used for compute operations only, there are also huge hardware limitations on direct memory access which limits copy operations which are quite important for concurrency when running DX12 shaders.
You might be able to get away with it by having a separate branch of your code and coding your code to CUDA specs but that's not going to happen.
The GCN architecture as far as gen 1 is much much more compatible with true high concurrency which is critical for DX12, it supports 64 GP ques with 2 DMA engines since the 7000 series.
It's been known for almost a year that NVIDIA GPU's are going perform quite badly in DX12 asynchronous operations not because their drivers were "optimized" for DX11 but because the hardware isn't designed for concurrency.
NVIDIA has been pulling allot of shady stuff including intentionally limiting desktop GPU's in order to promote their Tesla based cards like disabling passthrough to prevent the cards from being run under a hypervisor or limiting concurrency in the past 2-3 years because of their place on the throne, this might be the shakeup the need.
So don't expect great results form DX12 on NVIDIA, the only 2 cards which might benefit from DX12 are the Titan X (confirmed 2 DMA engines) and the 980ti (suspected), Maxwell Gen 1 will no see any performance boost, and anything below a 780ti would most likely see a performance decrease due to overhead.
The jury is still out on Pascal since Nvidia still has not released it's spec's yet at least not under their "rubber stamp" NDA system so no instruction set architecture documents for us peasants yet if ever.
Pretty much NVIDIA put it self into this situation they've been trying to push CUDA down everyone's throat, doing some really annoying stuff with their desktop GPU's to prevent them from being used as compute cards and now they are paying for it.
NVIDIA can still get by with brute force but once 4 year old mid range cards will start going neck to neck with it's heavy weight well Titans (pun intended) they'll have to align them selves with the spec.
I would say NVIDIA's only saving grace atm is that the high end AMD cards are memory and or ROP limited this means that DX12 or not you won't get true 4K performance from them at least not better performance that you would get with the ROP and bruteforce advantage of the current high end NVIDIA line-up.
NVIDIA's mid range line up is the one that's going to suffer the most the GTX 970 is completely broken in DX12 and it's probably their best selling card, while AMD's rehashed silicon from the past 4 years is going to see huge improvements.
And NVIDIA is in quite a tricky spot currently, if they have a DX12 compatible ISA out there unless they intentionally ROP limit it (or any other limit) the DX12-60 card they'll put out is most likely be capable of bringing the Titan X to it's knees, and that's something that might lose them more costumers in the long run...
No one is lying.So this is incredibly intriguing. I just spoke to an Nvidia rep regarding the aforementioned Asynchronous Computing. They confirmed with me that the 980TI DOES support Asynchronous Computing. Seems as though between Oxide and Nvidia, someone isn't telling the whole truth!!
Oxide disabled Async Compute for Nvidia because the performance was horrible on Maxwell cards. They support Async Compute just like they support 4GB of a GTX 970. Nvidia isn't lying, they're telling 1/2 truths.
Oxide spend months optimizing for Nvidia but the point of contention is Nvidia wanted to lower settings more to make Geforce cards look better than AMD ones. If you notice the low quality benchmarks the 980 TI beats a Radeon Fury, if you turn on eye candy then the FuryX beats a 980 TI.
Per Oxide they don't use async compute heavily. This does not bode well since it's minimal usage right now and consoles are getting async compute heavy in newer titles.
Look man I'm not defending Nvidia or attacking you. I'm on your side as a fellow engineer. I'm pointing out Nvidia has been lying for decades. They've cheated on benchmarks, they lower image quality on current cards for higher fps and when they lose they simply pay people to cripple the competition (ie Gameworks). I'm only buying Nvidia cards because I have to support apps written on Nvidia cards. Personally, I'm finding Intel's HD card doing wonders for me in Linux at a good price.