Oxides Games über AMDs Mantle: OpenGL und DirectX müssen sich anpassen, um relevant zu bleiben
Die englischsprachige Webseite MaximumPC.com hatte die Möglichkeit, mit Dan Baker, Entwickler bei Oxide Games, ein umfassendes Interview über Mantle zu führen. Dabei werden einige interessante Äußerungen getroffen, die auch die Konkurrenz in Form von DirectX sowie OpenGL betreffen. Demnach müssten beide APIs vor allem in der Multithread-Performance nachholen, um relevant zu bleiben.
Auf dieser Seite
Oxide Games ist bekanntlich einer der großen Unterstützer von Mantle. Die hauseigene Nitrous-Engine ist auf Echtzeitstrategie im Weltraum ausgelegt und genrebedingt sehr CPU-lastig. Genau hier soll AMDs API Abhilfe schaffen, indem der Drawcall-Overhead deutlich reduziert wird und die Command-Buffer ohne einen expliziten Treiber-Thread auf beliebig viele Kerne verteilt werden kann. In einem Interview gegenüber MaximumPC.com gibt der Oxide-Games-Entwickler Dan Baker nun einige Eindrücke im Umgang mit den verschiedenen Schnittstellen.
Dan Baker im Interview mit MaximumPC.com: Anforderungen an die API
Eigentlich wolle man als Entwickler lediglich eine Abstraktionsschicht haben, um die Shader einer GPU zu programmieren. Dabei sehe man die Entwicklung als zahlreiche kleine Programme an, die in den Draw-Calls ausgeführt und gegebenenfalls gebündelt werden ("Batches"). Zumindest bei Oxide Games wolle man hingegen nicht, dass auch das Speichermanagement durch die API beeinflusst wird. Bei DirectX sowie OpenGL sei es nämlich üblich, dass vieles automatisch geregelt wird, ohne dass der Entwickler dagegen etwas machen kann: "Wir wollen nicht, dass es [Anm. der Red.: die API] den Speicher verwaltet. Wir wollen nicht, dass es 'die Dinge einfacher für uns macht'."
Weiter wird ausgeführt, dass die Multithread-Performance unter den beiden genannten Schnittstellen unbrauchbar sei. Mit DirectX können zwar mittlerweile mehrere Threads ausgelastet werden, indem unterschiedliche Bereiche aufgeteilt werden. Am Ende muss allerdings alles gebündelt über den "Mainthread" an die GPU übermittelt werden, wodurch dieser sprichwörtlich verstopft und dadurch limitiert. In OpenGL habe man hingegen noch nicht einmal den Versuch unternommen, Multithreading einzuführen. Wie eingangs angesprochen ist dies mit Mantle nicht mehr der Fall: "Wir können die meiste der zuvor ungenutzten Zeit, in welcher der Prozessor nichts macht, ausfüllen".
Dan Baker im Interview mit MaximumPC.com: Mantle-Vergleich mit OpenGL
Viele Leser haben kommentiert, dass die Mantle-Funktionalitäten auch mittels Erweiterungen in OpenGL eingeführt werden könnten. Baker sieht das jedoch anders: "OpenGL hat essenziell die gleichen Kernprobleme wie Direct3D, außer dass man dort Erweiterungen hinzufügen kann." Letztere könnten einige Schwachstellen, wie das fehlende Multithreading, nicht wett machen. Eine von Grund auf neue API sei deshalb nicht unbedingt verkehrt: "Manchmal ist es sauberer und einfacher, einfach den Reset-Knopf zu drücken […]. Glaube es oder nicht, Mantle ist sogar einfacher zu unterstützen als OpenGL. OpenGL hat im Gegensatz zu Mantle einige verborgene Tücken und Fallen."
Dan Baker im Interview mit MaximumPC.com: Mantle-Vergleich mit DirectX
Insgesamt habe man bei der Nitrous-Engine sehr viel Zeit in die Optimierungen für DirectX gesteckt, um die nötige Performance zu erhalten. So habe man beispielsweise einige Aufgaben, die eigentlich besser von der CPU berechnet werden, auf die GPU verlagert, um den Flaschenhals zu lindern. Für Mantle habe man in etwa zwei Monaten lediglich 3.000 bis 4.000 Zeilen Code geschrieben, um bisher nur die ersten Optimierungen vorzunehmen. AMDs Versprechungen, eine deutlich höhere CPU-Performance "out of the box" zu bringen, scheinen also zuzutreffen. Letztendlich heißt es, dass "sich [OpenGL und DirectX] anpassen müssen, um relevant zu bleiben".
Quelle: MaximumPC.com

I-Novae Studios: Why OpenGL Probably isn't the Graphics API of the Future and I Hope it Dies
Interessanter Artikel. Wer Englisch kann nur zu. Grad keine Lust eine kurze Zusammenfassung zu schreiben.
Ganz so einfach ist die Sache mit DX und OpenGL auf jeden Fall nicht.
Ein Befehlssatz kann nicht threadsafe bzw. unsafe sein, zumindest wenn man ganze Aufgaben hat, die einen Thread bilden sollen. Nur eine Implementierung desselben. Bei den derzeitigen Implementierungen stellt sich die Frage aber halt gar nicht erst...
Markiere mir mal auf dieser Liste welche Titel du meinst. Die ist nicht aktuell, sollte aber einen Überblick geben.
Mantle:
Thief Square Enix
Plants vs. Zombies Garden Warfare Popcap
Dragon Age 3: Inquisition Bioware/EA
Star Citizen Cloud Imperium
Star Wars Battlefront DICE
ned zu vergessen: Mirror's Edge DICE
welche davon DX 11.2 haben?
alle obrigen ausgenommen : thief, SC
also steht es dz 6 vs 4 oder?
Ganz so einfach ist die Sache mit DX und OpenGL auf jeden Fall nicht.
Hast du das von AMD Analysten oder von deren Aktionäre? Damit kannst einen Werbespot drehen
Markiere mir mal auf dieser Liste welche Titel du meinst. Die ist nicht aktuell, sollte aber einen Überblick geben.