Auf der Suche nach Informationen welche OpenGL Versionen der freie MESA Grafiktreiber unterstützt (der brandneuste Treiber 10.5.4 supported übrigens bis OpenGL 3.3), ist mir wieder einmal bewusst geworden, wie sehr Mac OS X eine Mitschuld zu tragen scheint, dass Linux-Spiele oftmals nicht so schön aussehen wie sie es auf Windows tun. Nämlich ganz oft wird bei der Portierung auf Linux einfach mal das eine oder andere Grafikfeature entfernt, was ja nicht sogleich auffällt. Mit diesem Artikel möchte ich ganz bewusst die Gedanken anstacheln, mich einmal aufregen, und am Ende über die Kommentarfunktion eine Diskussionsrunde anregen.

Vielleicht mag sich auch der eine oder andere Entwickler zu diesem Thema äussern?

Mac OS X 10.10.3 «Yosemite» hat wieder nur OpenGL 4.1 im Gepäck

OS X ist nach Windows das meist verbreitete Desktop-Betriebssystem mit einem Marktanteil von 3.39% gemessen an den Spielern unter uns. Aus diesem Grund liegt OS X in der Priorität der Entwickler derzeit noch über Linux. Daraus hat sich bei den Entwicklerfirmen ein übliches Portierungsverfahren entwickelt: Zuerst wird ein Spiel auf Windows Direct3D entwickelt und veröffentlicht, gleich anschliessend ein Export für Mac OS X auf Basis von OpenGL erstellt und publiziert. Erst an dritter Stelle steht Linux, ganz offensichtlich wegen dem deutlich geringeren Marktanteil. Aber genau das kann für Spiele zum grafischen Problem werden: OS X unterstützt selbst in der neusten Version 10.10.3 «Yosemite» nur OpenGL 4.1 aus dem Jahre 2010 – Aktuell wäre aber OpenGL 4.5 (Release 2014). Dazwischen erschienen im Jahresrhythmus die Versionen 4.2 (2011), 4.3 (2012) und 4.4 (2013). So gibt es beispielsweise eine volle Kompatibilität zur OpenGL ES 3.0 API erst ab OpenGL 4.3.

Apple selbst liefert eine übersichtliche Liste der unterstützten OpenGL Versionen im hauseigenen Betriebssystem OS X:

Auch OSX 10.10.3 unterstützt nur OpenGL 4.1 , egal wie übertaktet die verbaute Grafikkarte ist.
Auch OSX 10.10.3 (Release: 8. April 2015) unterstützt nur OpenGL 4.1, egal wie hoch getaktet die verbaute Grafikkarte ist.

Eine OpenGL-Version kann – vereinfacht ausgedrückt – in Relation zu einer Direct3D (DirectX) Version verglichen werden. OpenGL 2.x ist das Gegenstück zu DirectX9, OpenGL 3 ist es zu DirectX10 und OpenGL 4 ist die parallele zu DirectX11, wobei OpenGL 4.1 mit der Veröffentlichung im Jahre 2010 doch schon wieder veraltet ist.

Ist das nicht ein Problem? Aus Sicht von Apple mag die Strategie durchaus von Nutzen sein, denn mit einem gemächlichen Vorgang die unterstützten Versionen zu patchen drängen sich auch weniger Probleme auf. Aus Sicht eines Gamers fragt man sich, wieso Apple dermassen gegen die Spieler wirtschaftet? Aus der Perspektive der Grafikpracht ist Mac OS ganz sicher kein spielfreundliches Betriebssystem und wird den Linux Spielern augenscheinlich zum Verhängnis. Mein stabiler, proprietärer NVIDIA-Treiber unterstützt OpenGL 4.4 und ein Update mit dem neusten Nvidia Beta-Treiber auf OpenGL 4.5 wäre kein Problem.

Die ganze Thematik kann auch noch auf die einzelnen Mac-Versionen oder deren Grafikpower heruntergebrochen werden. Ist es als Spielehersteller nicht lukrativer möglichst viele Mac-Versionen und GPUs zu unterstützen? Ja aber dann portiere ich mein Spiel doch auf OpenGL 3.3 weil so habe ich – gemäss obiger Liste von Apple – beinahe alle Mac’s unterstützt anstatt nur die Hälfte. Und sowieso, bis Mitte 2013 gab es in Mac OS überhaupt keine OpenGL 4.x Unterstützung. Ein Beispiel: Es ein offenes Geheimnis, wurde der AAA Shooter Metro: Last Light zuerst auf OpenGL 3.2 portiert und erst viel später mit OpenGL 4.1 aufgehübscht. Oder anders gefragt: Schüttelt der Publisher eines Blockbuster-Games nicht schon nach wenigen Augenblicken den Kopf, wenn er sieht, dass OS X keine aktuelle OpenGL Version unterstützten kann und damit die Portierung seines berauschend ausschauenden DirectX11 Spiels zur Qual werden würde? Resultiert daraus nicht auch sofort eine Absage an eine Linux-Portierung?

Wie bekannt ist hat Linux mit der kleinsten Desktop-Verbreitung von unter 2% nur dann ein wirtschaftliches Ziel, wenn es über den Umweg einer vorher portierten Mac-Version erleichtert werden kann. Doch der durchlaufene Prozess blockiert Linux in seinen Möglichkeiten: Nachdem das Spiel mit OS X auf einer möglicherweise veralteten OpenGL Version 4.1 oder geringer endlich funktioniert, macht sich kaum ein Hersteller die Mühe um die Grafikpracht anschliessend für Linux wieder zu verbessern. Das Resultat sind grafisch schlechtere Portierungen unter Linux, obwohl der Pinguin mit proprietären Treibern dank OpenGL 4.2, 4.3, 4.4 oder 4.5 schönere Grafik hergeben könnte.

Zumindest was die langfristige Lösung angeht sind die Weichen gestellt: Vulkan als neue Grafikschnittstelle soll auf allen Desktop-Betriebssystemen und Konsolen die gleiche Version anbieten können. Die unterstützte Grafikleistung hängt dann also nur noch von der Grafikkarte und ganz sicher nicht mehr von einem Mac OS ab.

Mich und andere Linux-Spieler interessiert dieses Thema ausgesprochen: Inwiefern ist also die OpenGL Strategie von OS X in Anbetracht dieser Tatsachen mitschuldig, dass viele Linux-Spiele technisch deutlich schlechter ausschauen als sie es auf Windows tun?

TEILEN
elysium

Elysium spielt seit 2012 unter Linux, aktuell mit Linux Mint 18. Beruflich bin ich im Bereich Middleware auf Linux-Server unterwegs. Für diverse Adobe Applikationen bleibt mein Dualboot Linux/Windows bestehen. Und in seltenen Fällen für DirectX only Games..

2 KOMMENTARE

  1. Hmm kann es sein das der Author das Prinzip OpenGL und dessen Extensions etwas missversteht? Wenn sein OS OpenGL 4.0 supported, ist es bereits für 4.2, 4.3, 4.4 und 4.5 fit. Das ist rein Treiberabhängig. OpenGL 4.x ist da Majorrelease, die Zahl hinterm Punkt gibt das Featureset an. Ist die API im OS auf 4.x liefert der TREIBER die anderen (4.2, 4.3 usw.) Features als Extension mit. Sprich installierst du dir einen GFX Treiber der OpenGL 4.5 kann, kannst du alle Features von OpenGL4.5 nutzen. Die Features die NICHt in der API im OS sind, sind im Treiber als Extension vorhanden. Hübscher werden Spiele durch die Featuresets nicht unbedingt. OpnGL ist was Shader betrifft flexibler als DX, sodas ich auch unter OGL 3.x die selbe Grafik wie unter 4.x haben kann. Ich muss „nur“ die Shader selbst schreiben/anpassen. OpenGL 4.5 sieht nicht besser aus als 4.0. Die Featureset bieten größtenteils Vereinfachungen und Optimierungen. Aber wie gesagt, durch die Extensions im Treiber Profitierst du schon jetzt davon und musst nicht warten bis apple auf 4.5 ist.

    Leider macht dies diesen Artikel Obsolete. Sorry dafür :/

    • @ThreeM: Ist es nicht einfach so, dass dem MacOS OpenGL-Stack einfach wichtige Features wie Compute Shader fehlen, die eben nicht mal eben nachgerüstet werden können? Daran ist zu mindestens der Port von E:D Horizont offiziell gescheitert:

      https://support.frontier.co.uk/kb/faq.php?id=228

      Und warum liest man auf Steam bei den Feral Ports jetzt immer „XYZ FOR MAC IS STANDING BY FOR METAL“? Wobei man XYZ inzwischen durch Deus EX, TW: Warhammer und Hitman ersetzen kann. Die Codemaster Spiele F1 und DiRT Rally erscheinen offensichtlich nur noch für Linux.

      Ansonsten halten sich die Entwickler wie immer bedeckt. Aber ich glaube nicht, dass sich Frontier und Feral da auf Kosten von Apple irgendwelche Geschichten ausdenken. Die würden sicherlich gerne auch für MacOS veröffentlichen, was immer noch ein deutlich größere Benutzerbasis hat als Linux. Ein Entwickler von Feral hat neulich gesagt, dass sie für die neusten Portierungen unbedingt auf OpenGL 4.5 angewiesen sind und nicht etwa auf ältere Versionen zurückgreifen können. Einfach wegen der Performance.

      Bei Apple bleibt dann eben nur Metal, was aber wohl bis zum heutigen Tage noch nicht ganz fertig ist. Ich kenne ehrlich gesagt kein einziges AAA Game, das Metal nutzt. Die oben genannten Ports von Feral dürften mit die ersten sein, wenn sie denn mal erscheinen. Vor diesem Hintergrund muss man sagen: Gut das Apple nun komplett eigene Wege geht und wir den Ballast los sind. Offensichtlich lohnt sich auch der reine SteamOS-Port wie die zahlreichen Neuerscheinungen zeigen. Mac-User können einem da schon Leid tun. Apples veraltete Grafiktreiber verhindern auch äußerst effektiv, dass ein Spiel wie Doom 2016 unter Wine läuft. Unter Linux läuft das Game dagegen als wäre es nativ dafür programmiert worden.

      Ich verstehe Apples Politik ehrlich gesagt nicht. OpenGL 4.5 und Vulkan bekämen sie kostenlos. Was will Apple erreichen? Top-Studios wie id Software müssten sie schon kaufen, damit diese auf Metal umschwenken. Und Momentan scheint das ja nicht mal technisch möglich zu sein.

HINTERLASSE EINE ANTWORT