Apple ontmoedigt gebruik OpenGL- en OpenCL-api's; alles moet naar Metal

Door , bron: Dev notes iOS, Dev notes tvOS, Dev notes macOS


Eerder schreven we over iOS 12 en macOS Mojave, de nieuwste besturingssystemen van Apple. Naast alle nieuwe features is er ook iets wat Apple uit al zijn besturingssystemen wil verwijderen; de zeer breed gedragen grafische open-source api's van Kronos: OpenGL, OpenGL ES en OpenCL. Dat heeft vergaande consequenties.


OpenGL is een grafische applicatie-interface voor games en tevens de enige cross-platform api die op dit moment op zowel met Windows als macOS werkt. Hoewel Apple niet abrupt de stekker eruit trekt, ontmoedigt het bedrijft het gebruik van de api's sterk in de nieuwe release-notes van macOS Mojave, iOS 12 en tvOS 12. De kans is aanwezig dat het bedrijf in de toekomst harde deadlines gaat stellen voor de migratie naar Metal.

Deprecation of OpenGL and OpenCL
Apps built using OpenGL and OpenCL will continue to run in macOS 10.14, but these legacy technologies are deprecated in macOS 10.14. Games and graphics-intensive apps that use OpenGL should now adopt Metal. Similarly, apps that use OpenCL for computational tasks should now adopt Metal and Metal Performance Shaders.

Eén implicatie hier van is dat ontwikkelaars geen api meer beschikbaar hebben om cross-platform games op te ontwikkelen. Metal werkt niet op Windows, en DirectX en Vulkan werken niet op macOS. Ook het gebruik van de compute-api OpenCL wordt door het bedrijf afgeraden. De gevolgen hiervan zijn minder groot, omdat OpenCL nooit heel breed gedragen is.

Tegelijkertijd heeft Apple voor iOS en tvOS aangekondigd op termijn te gaan stoppen met ondersteuning van OpenGL ES, een mobiele grafische api die door letterlijk elke Android en (tot nu toe) iOS-smartphone ondersteund wordt.

Deprecation of OpenGL ES
Apps built using OpenGL ES will continue to run in iOS 12, but Open GL ES is deprecated in iOS 12. Games and graphics-intensive apps that previously used OpenGL ES should now adopt Metal.

Deprecation of OpenGL ES
Apps built using OpenGL ES will continue to run in tvOS 12, but Open GL ES is deprecated in tvOS 12. Games and graphics-intensive apps that previously used OpenGL ES should now adopt Metal.

De gevolgen hiervan zijn vergelijkbaar met die op de desktop: cross-platform games tussen Android en iOS kunnen niet meer op één api draaien. De gevolgen voor iOS zullen waarschijnlijk wel te overzien blijven, aangezien het besturingssysteem voor ontwikkelaars te groot is om te negeren, maar het betekent wel dat elke cross-platform game naar Metal geport moet worden, wat flink extra werk voor ontwikkelaars betekent. Waarschijnlijker is dat ontwikkelaars, die veelal toch eerst kiezen voor de App Store om titels te lanceren, een port naar Android sneller achterwege zullen laten, wat pijnlijk zou zijn voor Android-gebruikers die potentieel toegang tot populaire titels zouden mislopen.

Omgekeerd worden op de desktop juist vooral de gamers met macOS mogelijk geraakt door dit besluit. Het games aanbod onder Windows was al veel groter, en de recente lichte verschuiving richting macOS dankzij nieuwe Mac's met krachtige grafische kaarten zal niet versneld worden wanneer het porten weer lastiger wordt. Aan de andere kant, OpenGL zien we nog maar zelden terug als api voor games onder Windows, dus het is de vraag hoe groot het netto-effect zal zijn. 

Apple wil dat alle applicaties op al zijn besturingssystemen gebruik gaan maken van de Metal-api. Deze biedt net als Vulkan en DX12 low-level toegang tot de gpu. Dat zorgt potentieel voor een efficiëntere benutting van de gpu, al zien we in de praktijk onder Windows nog weinig meerwaarde bij games die van DX12 gebruik maken - en nog altijd veel DX11 titels. Apple had in theorie ook in kunnen inzetten op Vulkan, aangezien deze api van Khronos dezelfde voordelen biedt als Metal, maar wel open-source is en op vele platformen, waaronder Windows en Android, ingezet wordt. 

De mededeling onderaan de release notes lijkt een waarschuwing dat er in de toekomst hardere restricties gaan volgen. De ervaring uit het verleden bij het uitfaseren van een technologie door Apple leert dat dit gepaard gaat met meerdere deadlines en maatregelen. Zo is het mogelijk dat apps aanvankelijk lager in de ranking van app-stores verschijnen als Metal niet gebruikt wordt, vervolgens voor nieuwe apps Metal verplicht wordt en dat uiteindelijk apps die geen Metal ondersteunen niet meer kunnen worden geüpdatet en uiteindelijk uit de store verdwijnen - of het zover gaat komen is uiteraard afwachten.

De keerzijde van dit verhaal is dat Apple, zoals vaker, van zijn unieke positie als hard- en softwareontwikkelaar gebruik kan maken om een doorbraak op het gebied van standaarden te forceren. Daarbij is de uiteindelijke situatie waarbij een modernere standaard relatief snel dominant wordt veelal een verbetering, maar gaat dat wel gepaard met een relatief pijnlijke en abrupte transitie. Voorbeelden uit het verleden zijn de overstap naar usb in de eerste iMac, de overstap van Motorola naar PowerPC en later naar Intel-architectuur, en de overstap van het 'oude' MacOS naar OS X - het huidige macOS. Voor Apple-gebruikers een bekend fenomeen, maar dit keer wel met potentieel grotere impact op andere ecosystemen.


Vandaag in het nieuws

Hardware.Info maakt gebruik van cookies.
*