AW: DirectX 12: Kommt bald für F1 2015; Hitman bestätigt
DAs ist mir eh klar, aber viele denken jetzt Vulkan verdrängt MS aus dem Gamingmarkt.
Niemand von diesen Leuten kann erklären, warum das bei OpenGL nicht geklappt hat, aber bei Vulkan plötzlich passieren soll.
Doch ist eigentlich sogar relativ easy zu erklären.
1) Waren bei OpenGL nie irgendwelche ISVs an der Entwicklung beteiligt sondern hauptsächlich GPU Hersteller.
2) Hatte das zur Folge, dass das Ökosystem für OpenGL sehr schlecht ist. Valve Software hat vor 2 Jahren ja selbst ein OpenGL Debugger entwickeln müssen, weil es nix richtiges gab.
Andere Entwickler dazu zu bringen eine andere API zu nutzen, wenn es keine Entwicklertools gibt ist sehr schwer.
3) Hatte dadurch OpenGL in Middleware Engines nie richtig Fuß gefasst. In Unreal Engine erst mit Unreal Engine 4. CryTek hat seit ein paar Monaten Support für OpenGL. Dann sieht es schon eher mau aus.
4) Haben es die OpenGL Treiber der Hersteller selbst nie so eng damit genommen genau der Spezifikation zu folgen. Was bei dem einem GL Treiber noch wunderbar funktioniert, führt bei dem GL Treiber
von einem anderen Hersteller vielleicht zum Crash. "Write once run everywhere" funktionierte daher nie so richtig. NVIDIA hat dort auch die Chance ergriffen besonders viel in ihren OpenGL Treiber zu investieren.
Das führt dazu das man schön schnellen OpenGL Code haben kann. Wenn man sich auf NVIDIA beschränkt und dafür optimiert, weil NVIDIAs Treiber alle Tricks nutzt um schnell zu sein auch wenn es nicht ganz der Spezifikation entspricht.
Wahrscheinlich haben AMD und Intel dann auch irgendwann nicht mehr versucht im Rennen zu bleiben. Deswegen erreicht man mit OpenGL hauptsächlich den NVIDIA Markt. Es gibt Firmen die ältere Spiele auf Mac und Linux portieren
die offiziell gar nix anderes außer den NVIDIA Treiber unterstützen.
Rich Geldreich's Tech Blog: The Truth on OpenGL Driver Quality
Rich Geldreich's Tech Blog: Things that drive me nuts about OpenGL
https://de.dolphin-emu.org/blog/2013/09/26/dolphin-emulator-and-opengl-drivers-hall-fameshame/?cr=de
In der Vulkan Working Group sind von Anfang an viele ISVs wie Unity, Electronic Arts, Valve Software, EPIC, Blizzard und Oxide dabei die dafür sorgen das Vulkan keine API für CAD Anwendungen wird wie OpenGL und das
ihre Engines während der Entwicklung Vulkan implementieren können. Mit dem Vulkan Renderer für Unreal Engine kann man bald nach Release rechnen. (
https://twitter.com/TimSweeneyEpic/status/630792308959629312)
Genauso wie Source 2 Vulkan schon unterstützt. Für die Conformance Seite ist Google im Boot und arbeitet an der Test Suite für die Treiber. Wie bei WebGL gibt es quelloffene Tests gegen die die Treiber getest werden können.
https://www.khronos.org/registry/webgl/sdk/tests/webgl-conformance-tests.html Findet man in seinem Vulkan Renderer eine Situation bei der Treiber abweichend handeln kann diese der Testsuite hinzugefügt werden damit
alle zukünftigen Treiber dagegen getestet werden. Für die Debugger Seite arbeitet Valve Software mit LunarG an GLAVE dem Vulkan Debugger der direkt am Tag 1 zur Verfügung stellen soll mit dem Vulkan SDK. Der Layer
Ansatz von Vulkan macht es sowieso einfacher zusätzliche Debugging und Telemetry Layer nach belieben einzubinden. Da die Treiber wesentlich einfacher sind und viel der Komplexität und Resourcenmanagement in der Engine
stattfindet, haben die Treiberhersteller auch viel weniger Spielraum für Tricks. Dazu kommt noch das Vulkan eine API für Mobile Geräte und Desktop gleichermaßen ist. Eine Unterteilung
zwischen OpenGL ES und OpenGL gibt es nicht. Im Smartphone und Tabletbereich führt nichts an OpenGL ES vorbei. Das wird in Zukunft durch Vulkan ersetzt. DirectX12 läuft halt nur bei den 5 Leuten die ein Windows Phone haben.
OpenGL Versionen kamen zwar in den letzten 20 Jahren immer neue, aber weil man immer Rückwärtskompatibiltät haben wollte wurden die Designfehler immer mitgetragen und 20 Jahre alte Zöpfe die nie einmal abgeschnitten wurden.
Vulkan ist ein frischer Start von 0 an mit der Mantle Spezifikation von Ende 2014 als Startpunkt.
Android Support ist für John Carmack schon Vorteil genug. Für Android haben Engines überhaupt angefangen sich für OpenGL zu interessieren, da die NVIDIA Tegra SoCs auch richtiges OpenGL unterstützen nicht nur ES.
https://twitter.com/ID_AA_Carmack/status/689440925500571648