Bei iOS 12 überraschte Apple mit der Ankündigung, dass die neue Version auf allen Geräten lauffähig ist, die iOS 11 unterstützen. Anders sieht es bei macOS 10.14 Mojave aus: Dort fallen diverse ältere Geräte durchs Raster, da eine Metal-fähige Grafikkarte vorausgesetzt wird. Dies betrifft alle Macs aus 2009, 2010 und 2011, die ohne auswechselbare Grafikkarte daherkommen. Der Mac Pro aus den Jahren 2010 und 2012 wird unterstützt, sobald dieser mit einer Metal-kompatiblen Grafikkarte ausgestattet ist.
Zuerst für iOS stellte Apple 2014 die Programmierschnittstelle Metal zur Ansteuerung von Grafikprozessoren vor - 2015 brachte El Capitan ebenfalls die Metal-Schnittstelle mit, allerdings nur auf Macs mit einer kompatiblen Grafikkarte. Mit Metal bietet Apple eine moderne Grafikschnittstelle, die im Vergleich mit OpenGL deutlich effizienter arbeitet. Die Metal-Schnittstelle passt erheblich besser zu modernen GPUs - OpenGL hingegen entstand in den frühen 90ern, als Grafikkarten noch deutlich anders arbeiteten als heutzutage.
Macs bis heute ohne modernes Grafik-API auf allen ModellenmacOS El Capitan, Sierra und High Sierra bieten Entwicklern keine moderne Grafikkarten-Schnittstelle, die auf allen Macs funktioniert. Viele Macs aus den Jahren vor 2012 können zwar diese macOS-Versionen ausführen, es steht aber nur OpenGL als Grafikkarten-API zur Verfügung - nicht jedoch Metal.
Entwickler stellte Apple so vor ein großes Dilemma: Sollte ein Spiel oder eine grafikintensive App umgesetzt werden, hatte der Entwickler drei Möglichkeiten: Auf das betagte und von Apple dürftig unterstützte OpenGL setzen und alle Macs unterstützten, nur Kunden mit Metal-fähigen Macs ansprechen oder die App mit großem Aufwand so programmieren, dass diese mit OpenGL wie auch mit Metal läuft.
Auch für Apple intern ein ProblemHören Nutzer OpenGL, Vulkan, Mantle oder Metal, denken viele vorrangig an Spiele und 3D-Grafikprogramme. Doch Apple setzt beispielsweise seit Mac OS X 10.2 Jaguar die 3D-Beschleunigung von Grafikkarten auch beim OS-X-eigenen Window-Manager ein, um die Bildschirmdarstellung zu beschleunigen. So lassen sich beispielsweise Fenster auf dem Desktop verschieben, ohne dass die CPU viel Arbeit verrichten muss - für den Grafikprozessor ist das erneute Zeichnen des Fensters an der neuen Position ein Klacks.
Mit High Sierra passte Apple den Window Manager auf Metal an - musste aber auch hier weiterhin OpenGL unterstützen, da nicht alle High-Sierra-fähigen Macs eine Metal-Grafikkarte mitbringen. Für Entwickler ist dies ein großes Problem, da Metal und OpenGL sich maßgeblich unterscheiden und die Unterstützung von beiden Schnittstellen zwangsläufig zu Kompromissen bei der Entwicklung führt.
Mehr Einsatz der Grafikkarte an der BenutzeroberflächeApple gab in einer Session für Entwickler auf der Worldwide Developers Conference bekannt, dass alle mit dem macOS-Mojave-SDK ("Software Development Kit") entwickelten Programme automatisch Core Animation nutzen. Durch Aktivieren von Core Animation bei einem Fenster oder einem Teilbereich des Fensters werden Texte, Reihen in Tabellen oder Icons als gesonderte Bilder auf die Grafikkarte geladen, um diese zu zeichnen. Dies hat einen entscheidenen Vorteil: Verschieben sich diese Elemente, zum Beispiel beim Scrollen, muss der Inhalt dieser Bilder nicht erneut gezeichnet werden, sondern die Grafikkarte kann diese einfach an die neue Stelle malen - die CPU wird hierdurch kaum belastet und die Zeichenoperation ist deutlich schneller.
Für Apple ist es enorm wichtig, dieses Zusammenspiel zwischen Programm und Grafikkarte zu optimieren. Muss Apple nur noch eine Grafikschnittstelle unterstützten, vereinfacht dies Optimierungen enorm.
macOS Mojave wieder mit einheitlichem APIBeginnt ein Entwickler heute mit der Programmierung einer App, steht ihm mit Metal aus macOS Mojave endlich wieder ein auf allen Macs lauffähiges API zur Ansteuerung der Grafikkarte zur Verfügung. Apple wie auch Entwickler müssen sich nicht mehr mit dem betagten OpenGL rumschlagen oder zweigleisig fahren, um mit allen unterstützten Macs kompatibel zu sein.
OpenGL wird in macOS nicht mehr weiterentwickeltZeitgleich mit macOS Mojave
gab Apple bekannt, dass die Weiterentwicklung von OpenGL eingestellt wird: OpenGL wird keine signifikanten Updates mehr in macOS erhalten. Zwar wird OpenGL noch über viele Jahre in macOS unterstützt, Entwickler sollen aber bei der Programmierung von neuen Apps oder Features Metal statt OpenGL einsetzen.
Für Cross-Plattform-Anwendungen, die unter Windows, macOS und Linux lauffähig sein sollen, stellt dies ein Problem dar: Bisher war OpenGL die einzige Grafikkarten-Schnittstelle, die über alle Desktop-Plattformen hinweg lauffähig war. Für Performance-kritische Anwendungen wie Spiele oder 3D-Programme setzen Entwickler allerdings schon heute häufig auf die plattformspezifischen Schnittstellen wie Microsoft Direct X, um optimale Frameraten zu erzielen.
Dass Apple zukünftig OpenGL nicht mehr weiterentwickeln beziehungsweise nicht mehr unterstützen wird, ist aber für den Spiele-Markt nur in wenigen Fällen ein Problem: Heutzutage werden die wenigsten Spiele von Grund auf neu programmiert, sondern setzen Spiele-Engines wie beispielsweise die Umreal-Engine ein. Diese verstecken es vor den Entwicklern so gut wie möglich, welche Grafik-Schnittstelle zum Einsatz kommt.
OpenGL-Entwicklung wegen ARM-Macs eingestellt?Im April 2018
berichtete Bloomberg, dass Apple ab 2020 die Mac-Sparte weg von Intel-Prozessoren auf eigene Apple-A-Chips umstellen wird - ähnlich denen, die derzeit im iPhone und iPad werkeln. Die Grafik-Architektur dieser ARM-basierten Chips unterstützte noch nie das gesamte OpenGL, sondern nur das für Smartphones, Tablets und andere kleinere Systeme gedachte OpenGL ES ("Embedded Systems").
Will Apple die eigenen ARM-basierten Prozessoren auch in Macs einsetzen, müsste Apple mit großem Aufwand die OpenGL-Schnittstelle zum laufen bringen - wahrscheinlich möchte der Konzern sich diese Arbeit ersparen und setzt jetzt schon ein Zeichen, dass Entwickler frühzeitig umschwenken.
FazitEs ist sehr zu begrüßen, dass Apple sich nur noch auf ein Grafik-API konzentriert und Entwicklern nun endlich wieder eine konsistente Schnittstelle zur Verfügung stellt, die auf allen Mojave-Macs funktioniert. Für Apple wie auch für Dritthersteller-Entwickler wird es mit Mojave erheblich einfacher, die Leistungsfähigkeit der Grafikkarte zu nutzen, ohne viele Funktionalitäten doppelt implementieren zu müssen.