AW: AMD Mantle: DICE hofft auf künftige Versionen für Nvidia, Intel und Co.
Was die AMD eigene Folien angeht:
Ja. Das sind keine technischen Details. Die AMD-Präsentation bewirbt relativ lange, für was Szenarien Mantle denn so alles toll sein könnte. Aber sie macht keine Aussagen über wieund wieso. Das Mantle mehr als eine Grafikkarte ansprechen kann und gpGPU Befehle beherrscht ist keine Sensation und dass es das viel besser und schneller macht, als DirectX, ist ein schönes Versprechen - aber es ist keine nachvollziehbare Erklärung. Das einzige, was ich zur Arbeitsweise auf diesen Folien finde (neben der schnelleren Draw Call Verarbeitung. Bei der auch nicht klar ist, wieso sie im Mantle-Treiber denn schneller vonstatten geht, als im DirectX-Treiber und wieso dafür neue Befehle nötigt sind, wenn doch eh die gleichen Renderanweisungen gegeben werden), ist die Reduzierung der Datenformate auf 2. Das macht das Programmieren sicherlich wesentlich übersichtlicher und damit ggf. die Optimierung einfacher, aber wo sparen generalisierte Formate Leistung?
Dein dritter Link (den es hier vor kurzem schonmal gab) beschäftigt sich explizit nur mit Draw Calls bzw. deren Verarbeitung in Batches.
Was ein bißchen aufschlussreicher ist, ist die DICE-Präsentation in der Mitte, die mir bislang in der Tat entgangen ist. Allerdings beschäftigt die sich eben nicht mit dem AMD-Produkte Mantle, sondern mit Frostbite, und liefert somit ebenfalls nicht die Informationen zur Funktionsweise, die AMD uns bis auf weiteres schuldig bleibt.
Was man immerhin schlussfolgern kann: DICE nutzt Mantle, um eine ganze Reihe von Operationen, insbesondere Ladevorgänge, unabhängig vom eigentlichen Renderprozess auszuführen. Dass das Zeit spart und Performance bringt, ist einleuchtend. Dass es mit dem DirectX-Befehlssatz unmöglich sein soll, schon weniger. Selbst, wenn M$ es nicht vorsieht - was hindert denn den Treiber daran, derartige Befehle asynchron auszuführen, wenn er weiß, dass die vorhandene Karte das kann? Treiber und Karte stammen schließlich beide von AMD.
Weitere Sache, die ich herauslese: Scheinbar spricht man Rendering und Compute Pipelines direkt und getrennt an. Da letztere mit dem von AMD ja irgendwann mal vorrangig promoteten OpenCL eine komplett eigene Schnittstelle haben, frage ich mich aber, wieso das bislang nicht möglich gewesen sein soll / was Mantle besser macht?
Was war noch? Shader scheinen unabhängiger von der CPU zu agieren. Kingt auch sehr sinnvoll, aber auch nicht sehr neu, wenn man bedenkt, dass Shader seit Ewigkeiten eigenständig auf der GPU ausgeführt werden. Auch hier frage ich: Welche Möglichkeiten bietet Mantle gegenüber DirectX? Welche neuen Befehlsstrukturen werden dafür benötigt, die DirectX nicht bieten kann?
Und über all dem schwebt auch immer noch die Frage "und wenn M$ sich halt querstellt, was ist dann mit OpenGL?"