Wadenbeisser schrieb:
@noxon
Hätte deine Logik auch nur halbwegs Sinn dann würden die Spiele und die Grafikkarten deutlich vor der API raus kommen.
Wieso sollte das denn der Fall sein? Die Spezifikation der Grafikkarten liegen schon laaaaange vor der Serienfertigung der Grafikkarten fest.
Garatiert schon 1 Jahr oder so. Dann können Grakahersteller zu MS gehen und ihnen sagen was sie in Zukunft für eine API benötigen.
Microsoft auf der anderen Seite benötigt auch wieder eine recht lange Zeit um die API zu bauen und eventuell auch das Betriebssystem anzupassen um den neuen Anforderungen gerecht zu werden.
Beim Erstellen der API lassen sie sich dann auch regelmäßig von einer kleinen Gruppe von Entwicklern beraten, die dann parallel dazu ein paar Launchtitel erstellen, die diese API demonstrieren wird.
Wenn dann die Grafikkarten, wie jetzt bei nVidia, fertig ist und auch MS mit der API fertig ist, dann kann alles vorgestellt werden und auch die Spielehersteller können ihre Launchtitel präsentieren.
Genau das passiert doch hier.
Nach diesen Launchtiteln wird es dann allerdings auch lange lange Zeit erst einmal keine Titel geben, die von der Technik gebrauch machen. Das wird dauern, zumal auch sehr wenige die passende Hardware haben um diese nutzen zu können.
das MS hier offenbar nur mit einem zusammengearbeitet hat legt die Vermutung nahe das diese API auch recht deutlich auf dessen Hardware ausgerichtet ist und schon passt es wieder zum Schema von nvidias bisheriger Vorgehensweise.
DirectX vermittelt nur zwischen Programmierer und Grafiktreiber. Da ist nichts auf spezielle Hardware ausgerichtet.
Allerdings muss MS beim Erstellen einer neuen API wissen, was sich beiden Parteien für Features wünschen zwischen denen sie vermitteln soll. In diesem Fall wären das also Spieleentwickler und Graka-Hersteller.
Die Grakahersteller sagen MS, welche neuen Hardwarefeatures sie im Angebot haben und wie sie diese über ihre Treiber dem Betriebssystem zur verfügung stellen könnten und die Spieleentwickler sagen MS, wie sie diese Features gerne programmiertechnisch ansprechen würden.
Microsofts Aufgabe ist es dann eine API zu entwickeln, die zwischen Programmierern und Treibern vermittelt. Features werden in DirectX aber nicht imlpementiert, also wird da auch nichts auf hardware optimiert. Wenn neue Spiele erscheinen und optimiert werden, dann aktualisiert man ja auch nicht DirectX, sondern die Grafikkarten-Treiber, denn dort steckt die hardwarespezifische Funktionalität drin. Nicht in DirectX.
Das ist nur eine Vermittlungsschicht, die durch einen konstanten Dialog zwischen Entwicklern, Graka-Herstellern und Microsoft entstanden ist. Schließlich ist es allen daran gelegen, dass Entwickler jede Hardware auf Windows am besten und einfachsten ansprechen kann.
Wenn nVidia irgendwo Einfluss nehmen will, dann ist das höchstens in Middleware-Bibliotheken wie Gameworks. Die nutzen zwar auch ganz normale die DirectX API und laufen somit nicht schlechter auf AMD Karten als nVidia, aber sie nutzen natürlich auch optimal die Stärken von nVidia Karten aus. Wenn nVidia besonders gut im Tesselation-Beereich ist, dann werden Gameworks Effekte das besonders stark nutzen und wenn nVidia dank Tensor-Cores eine besonders hohe RayTraycing Leistung beherrscht, dann wird es auch davon sehr viel gebrauch machen. Gameworks ist für die Entwickler allerdings auch OpenSource und jeder kann die Effekte so verändern wie er möchte.
Anders herum gibt es so eine Middleware natürlich auch von AMD in der Form von GPUOpen. Dort wird natürlich auch nicht beonsders viel Wert darauf gelegt, dass die Effekte auf nVidia GPUs gut laufen, sondern hauptsächlich so entwickelt, dass sie auf AMD GPUs gut funktionieren. Auch dort hat der Entwickler aber die Möglichkeit alles so zu ändern wie er möchte.
Letztendlich hängt also immer alles vom Entwickler ab, wie gut er seine Spiele optimiert und ob er sich die Arbeit macht herstellerspezifisch anzupassen oder ob er den kostengünstigsten Weg nimmt und einfach eine der kostenlosen Middlewares von nVidia oder AMD nimmt und sie so einsetzt, wie sie ausgeliefert werden.
Aber selbst wenn Gameworks oder GPUOpen einfach nur blind einsetzt werden, so sollten wir froh sein, dass diese Bibliotheken existieren, denn die meisten Entwickler würden ansonsten solche Effekte wahrscheinlich überhaupt nicht einsetzen, wenn sie sie komplett selbst entwickeln müssten.