Ob es sich dabei nicht um ein speziell angepasstes Vulkan handelt wissen wir nicht.
Doch, wissen wir, siehe
Hardware-Datenbank mit diversen Einträgen von Mobil-GPUs, oder einen
Blog-Eintrag von Imagination, die nebenbei auch schon Extensions für Vulkan eingereicht haben. Der Grund, warum das funktioniert, ist, dass Vulkan kaum Features zwingend voraussetzt - selbst Geometry Shader, die jede Desktop-GPU seit Dx10-Zeiten hat, sind optional. OpenGL verlangt dagegen alles mögliche für 4.5-Konformität, genau deshalb existiert OpenGL ES.
Mephisto_xD schrieb:
Hehe, guter Witz. Vergleich das mal mit der mitgelieferten Dokumentation aus dem DirectX SDK.
Hat mich in Kombination mit den Spezifikationen für diverse Extensions bisher nicht im Stich gelassen, um ehrlich zu sein. Das Wiki enthält genug Material, um die Zusammenhänge zu verstehen, für die Dokumentation von Einzelfunktionen gibt es Manpages oder eben
das hier, und abgesehen von dem DSA-Kram stehen auch die alle im Wiki.
Microsoft macht das ganze (sofern die Dokumentation, von der du redest, der
Online-Version entspricht) wohl etwas schöner mit einer Art Guide, um den Leuten einen Überblick zu geben, ab davon sehe ich jetzt keinen "meilenweiten" Vorsprung.
Methisto_xD schrieb:
DirectX hingegen ist seit Version 10 eine moderne, objektorientierte API, ist also wesentlich weniger anfällig für Spagetticode.
Also wenn ich mir sowas wie ID3D11DeviceContext mal genauer anschaue, sehe ich da haufenweise Setter-Methoden wie OMSetBlendState, GSSetShader, DSSetConstantBuffers und eigentlich genau den gleichen Mist, den man auch von OpenGL kennt. Das ist nicht modern, das ist letztenendes nichts anderes als eine State Machine, die sich hinter ein paar C++-Interfaces versteckt. Die teils bescheuerte Benennung der Methoden (wofür zum Henker steht "OM"?) kommt noch dazu.
Falls du auf Bind-to-Edit anspielst: Ja, das war *******, gehört dank Direct State Access aber inzwischen auch der Vergangenheit an. Auch die Bindung von VAOs an spezifische Vertex-Buffer gibt es so nicht mehr, bzw. es gibt eine bessere Alternative dazu. OpenGL 4.4 und 4.5 wurden ganz gut aufgeräumt, und man kann inzwischen hervorragend C++-Klassen drum herum bauen, ohne globale Zustände zu verändern - wir sind uns aber einig, dass GL3 keine wirkliche Meisterleistung war vom API-Design her.
Anyway, wenn man irgendwas mit wirklich modernem Design haben will, kommt man um Vulkan oder eben D3D12, wobei mir bei letzterem der Überblick fehlt, nicht herum. Auch wenn der Arbeitsaufwand bis zum ersten Dreieck um
einige Größenordnungen höher liegt als bei OpenGL.