@Mango2Go: Aber es sieht so aus, dass Nvidias Treiberarchitektur weniger Probleme mit CPU Overhead hat.
Nein, Nvidias GPU Architektur hat weniger Probleme mit DirectX 11. Das hat nicht's mit der Treiberarchitektur zu tun. Nvidia und AMD haben hardwaretechnisch 2 Ansätze für das gleiche Problem. Ein Beispiel.
Das AMD gut von Async Compute profitiert liegt daran das die Architektur gut Vorteile draus ziehen kann weil es der GPU beim Auslasten hilft. Nachfem die Architektur von Nvidia damit eh weniger Probleme hat, hat Nvidia im besten Falle wenig von Async Compute im schlimmsten Fall Nachteile.
Deshalb ist der CPU Overhead in DirectX 12 auch so runtergegangen. Da erlaubt der Standard einfach bessere Parallelisierung. In DirectX 11 wäre Async-Compute eine nicht standadisierte Erweiterung. Genau wie die Intrinsic-Funktionen die Nvidia verwendet um z.B. einiges von ihrem Gameworkscode umzusetzen. Das ist übrigens auch einer der Gründe warum AMD so schlecht damit klarkommt. Bei Nvidia geht Gameworks über Intrinsic Funktionen, bei AMD über den DirectX Standard. Würde man unter AMD auch einfach über Intrinsic Funktionen gehen wäre die DirectX 11 Performance auch besser, die Optimierung macht halt keiner. In Vulkan sind zumindest Shader Intrinsics jetzt im Standard.
Das bringt bessere Performance, bringt aber auch ab und an mal Probleme mit.
AMD hält sich bei DirectX 11 an den Standard während Nvidia das quasi selbst ummodelt und nur eine Schnittstelle bietet die sich ähnlich wie der Standard verhält. Sowas führt dann zu Nichtstandard-Verhalten wie die Grafikunterschiede zwischen AMD und Nvidia bei Ashes of the Singularity. (Da gab's ja mal diese tolle Diskussion).
Grade da du auch ein wenig über Programmierung zu wissen scheinst solltest du wissen das es sinnvoller ist sich an Standards zu halten, das ist nämlich auch der Grund warum Nvidia sich schwerer tut DirectX 12/Vulkan richtig nach zu ziehen was wiederum der Grund ist warum Nvidia so an DirectX 11 festhält. Nichtstandard-Code ist halt nicht portable.
Nvidia plant auch schon wieder Non-Standard-Erweiterungen bevor Features überhaupt erscheinen. Raytracing kommt gerade erst für DirectX 12 und Nvidia plant schon wieder Gameworks-Funktionen.
Long story short, AMD implementiert den DirectX Standard besser, Nvidia hat schnellere Treiber. Dafür muss man sich bei Nvidia halt auf viel Nicht-Standard-Verhalten verlassen was für Entwickler halt ******* ist. Oder man verwendet Gameworks... das ist idr. dann für Kunden *******.