Was ist das besondere an Vulkan?
Vulkan ist wie OpenGL eine offene Grafik API die von allen gängigen Systemen unterstützt wird, sogar bis hin zu eurem Navi und eurem Smartphone, zumindest die meisten. Wobei OpenGL oft nachgesagt wird das es recht viel sogenannte „Driver Overhead“ hat. Das heißt kurz gesagt, das im Falle der OpenGL API der Grafikkarten Treiber das meiste interpretiert und sehr vieles automatisiert gescheid. Das hat zwar kürzeren Code als vorteil, aber auch den Nachteil das die Performance von OpenGL sehr stark Treiber abhängig ist, und damit auch evtl von Treiber zu Treiber und Hersteller zu Hersteller die API besser oder weniger gut umgesetzt sein kann.
Vulkan soll hier Abhilfe schaffen. Zwar muss man „mehr Aufwand“ betrieben um einen lauffähigen sogenannten Context und Swap Chain zu erstellen. Ist aber anschließend nur noch wenige vom Treiber abhängig und man kann zu dem auch seine Grafik besser auf seine Anwendung zu schneiden. Was in der Theorie bessere Performance bedeutet. Aber gegen schlechtes Programmieren ist noch kein Kraut gewachsen 😀
Auch etwas was wir oft als negativ im Zusammenhang mit OpenGL hören, das die API Ansicht schlecht und langsam sei. Doch das meiste ist immer Sache des Entwicklers der jeweiligen Anwendung. Aber gewisse Mankos hat OpenGL trotzdem. Zu dem ist es sehr Singel Core lastig. Heißt der gesamte Rendercontext und die Befehle die an die Grafikkarte gehen werden hauptsächlich von einem CPU Kern gehandelt. Auch hier schafft Vulakn abhilfe, in dem es deutlich bessere Multicore Performance bietet. Heißt das Kompilieren von Shadern (Kleine Programme die auf der Grafikkarte ausgeführt werden um dort etwas zu zeichnen) auf mehreren CPU Kernen ausgeführt werden kann.
Darüber hinaus soll Vulkan auch eine von Haus aus mitgebrachte Multi Grafikkarten Unterstützung mit bringen, auch wenn wir davon bis her noch nicht viel gehört oder gesehen haben. Aber soll prinzipiell sogar möglich sein. Die Idee ist es auch verschiedene Grafikarten unterschiedlicher Hersteller zusammen nutzen zu können. Auch hier ein deutlicher vorteil gegenüber OpenGL.
Ein paar Beispiele?
Ihr wollt ein paar Beispiel Spiele sehen die 100% Vulkan nutzen? Kein Problem: