Valve-Entwickler zur Qualität von OpenGL-Treibern
Der Valve-Entwickler Rich Geldreich kritisiert in seinem Blog in zwei Artikeln den Zustand der OpenGL-Treiber zur Spieleentwicklung und mahnt, AMDs Mantle und DirectX 12 könnten OpenGL „bald zu Mittag verspeisen“. Geldreich betont, er sei gerade in Meckerlaune und stellt klar, dies sei seine rein persönliche Sicht der Dinge.
Geldreich, der derzeit unter anderem am kürzlich von Valve als Open-Source freigegebenen „Vogl OpenGL Debugger“ arbeitet, hatte sich am Wochenende detailliert über Dinge ausgelassen, die ihm nach jahrelanger Arbeit mit OpenGL stark auf die Nerven gehen.
Er kritisiert dabei beispielsweise den „OpenGL Legacy Support“. Die OpenGL-API ist seit 20 Jahren abwärtskompatibel. Das hat natürlich Vorteile, andererseits sammelt sich mit der Zeit ein undurchdringlicher Dschungel an „überflüssigem Müll“ an, der es besonders Einsteigern sehr schwer macht, in OpenGL Fuß zu fassen. Auch sei die Dokumentation immer noch nicht vollständig.
Zudem kritisiert er das System der OpenGL-Erweiterungen, die allgemein als großer Pluspunkt für OpenGL angesehen werden. Für Geldreich schaden sie der API eher, da sie oft nur unzulänglich funktionieren, zu wenig getestet sind und zu viele Workarounds benötigen.
Ein zweiter Blogeintrag befasst sich explizit mit der Qualität und dem derzeitigen Zustand der OpenGL-Treiber. Um dabei seinem Arbeitgeber Valve nicht ins Gehege zu kommen, maskiert Geldreich die Treiberhersteller als Hersteller A, B und C. Seine Beschreibungen sind dabei aber explizit genug, um dahinter leicht Nvidia, AMD und Intel auszumachen.
Vendor A – Nvidia
Laut Geldreich hat Nvidia die besten OpenGL-Entwickler der gesamten Industrie sowie auch die beste Test-Umgebung. Den OpenGL-Treiber beschreibt er als „den Standard“, er sei schnell und die Entwickler bevorzugen Stabilität über hundertprozentige Einhaltung der Spezifikation. Die meisten Entwickler benutzen diesen Treiber zum Entwickeln neuer Funktionen, da er die meisten Erweiterungen unterstützt und „sexy“ ist. Bei der Spieleentwicklung könne man sich nicht auf diesen Treiber beschränken ohne große Teile der Nutzer außen vor zu lassen.
Allerdings seien nach der Portierung der Source-Engine, von Geldreich als Source1 bezeichnet, die Entwickler des Treibers auf „Händchenhalten seitens der Valve-Entwickler“ angewiesen gewesen, da sie alleine nicht einmal einen Puffer neu befüllen könnten. Zudem sei es so, dass wenn der Treiber in einen Fehler läuft, er meist „total auf die Fresse fällt“ und die GPU abstürzt beziehungsweise unter Windows die Karte per TDR zurückgesetzt wird. Der Treiber unterstütze zwar, so Geldreich, die meisten Extensions, will man aber einige der populäreren einsetzten, verlässt man sicheres Gelände und bewegt sich im „no mans land“.
Die Entwickler des Herstellers sind Profis wenn es darum geht, in anderen Teams den eigenen Treiber zu optimieren. Geldreich machte diese Erfahrung bei der Entwicklung von SteamOS, wo Nvidia-Entwickler vor Ort bei Valve mitarbeiteten. Er nennt deren Stil „serious business“. Das kann sich so ausdrücken, dass sie Optimierungen für den eigenen Treiber vornehmen ohne Rücksicht auf die Auswirkungen auf andere Treiber.
Vendor B – AMD
Der OpenGL-Treiber von AMD kommt bei weitem nicht so gut weg. Er sei „ein einziger Mischmasch“. Der Treiber sei fehlerbehaftet und weise inkonsistente Leistung auf. Das sei schade, da die GPUs des Herstellers recht gut und verbreitet seien. Von daher könne man AMD nicht ignorieren obwohl sie „idiots with software“ seien. Die Entwickler hielten sich zwar näher an die Spezifikation als die von Nvidia, jedoch tue das dem Treiber nicht gut. Die OpenGL-Erweiterungen dieses Treibers seien nett auf dem Papier, um bei Managern Eindruck zu machen, funktionell seinen sie aber eine Katastrophe. Zudem sei AMD nicht in der Lage, seine Treiber zu aktualisieren ohne etwas kaputt zu machen. Lob erhalten lediglich die Debugging-Werkzeuge von AMD, ohne die die Portierung von Source1 wesentlich länger gedauert hätte.
Vendor C – Intel
Geldreich bezeichnet Intel als „an Software nicht wirklich interessiert“. Trotzdem sei es schwer sich über deren Treiber aufzuregen. Intel habe so viel Geld, dass der Marktführer bei freien Grafiktreibern sich für Windows und Linux jeweils ein eigenes Team leiste und einen Treiber mit jeweils völlig anderer Codebasis entwickle. Wenn man außer acht lasse, dass der Intel-Treiber der am wenigsten performante sei, so funktioniere er am besten, so Geldreich. Zudem sei der Linux-Treiber immer ein bis zwei Jahre hinter der OpenGL-Entwicklung zurück. Der Windows-Treiber ist laut dem Spiele-Entwickler „ein Desaster“ und werde nur von wenigen Titeln eingesetzt und sei somit ganz klar ein „Bürger zweiter Klasse“. Das einzige, was ihm zugute zu halten sei, sei eine etwas bessere Geschwindigkeit gegenüber dem Linux-Pendant.
Die freien Treiber, die für Nvidia- und AMD-Hardware von der Community entwickelt werden, hat Geldreich für die Spieleentwicklung erst gar nicht angefasst. Er befürchtet, die Teams der proprietären Treiber könnten daraufhin ihre Unterstützung einstellen. Es sei aber enorm wichtig, so Geldreichs Fazit, nett zu diesen Entwicklern und ihren Vorgesetzten zu sein, da man ohne sie bei Problemen wesentlich schlechter vorankomme.