Why macOS Mojave requires Metal -- and deprecates OpenGL

Posted:
in macOS edited September 2018
In order to run the new macOS Mojave, Macs must have graphics hardware capable of supporting Metal, Apple's modern low-level, low-overhead software that provides access to graphics processing.




Editor's note: The furor about why Apple is deprecating OpenGL has flared up again with the release of Mojave. This piece originally ran in June, but remains accurate and relevant today

Apple's list of Mac hardware supporting the new macOS Mojave is identical to its list of Mac computers that support Metal. More specifically, Metal is Apple's hardware-accelerated 3D graphics and compute framework, standard library and GPU shading language.

Mojave will require at least a Late 2012 iMac or Mac mini, or a Mid 2012 MacBook Air or MacBook Pro. It also of course runs on any new 2017 iMac Pro or new Retina MacBooks (released in 2015), and supports all of the black cylinder Mac Pros (released since 2013). It also supports the earlier "cheese grater" Mac Pro models back to Mid 2010, if equipped with a Metal-capable graphics card.


Why Mojave requires a Metal-capable GPU

Lack of support for Metal graphics is why some of the Macs that are supported in today's macOS High Sierra can't be upgraded to run Mojave. This includes 2009-2011 ("non slim") iMacs; 2010-2011 Mac minis; 2009-2010 plastic non-Retina MacBooks; and 2011 or earlier non-Retina MacBook Pro and MacBook Air models.

The new Mojave drops support for a couple years of non-Retina models, but still supports some non-Retina Macs, as the problem isn't their display resolution but rather their GPU capabilities. Older Mac Pro models dating back to 2010 can be outfitted with new Metal-capable GPUs to run the new release, making it clear Apple isn't just dropping legacy machines to force new purchases.

Drawing a line at Metal-capable GPUs allows Apple to optimize graphics performance--particularly for entirely new software features including multi-user FaceTime and other new iOS-familiar UI features. If you've owned a Mac for 8-9 years, Mojave offers a good reason to upgrade your hardware and join the modern Metal party.

The new Mojave release will officially ship this fall alongside a new iOS 12, watchOS 5 and the new tvOS, following what has been Apple's regular schedule for OS updates for several years now. In advance of this, Apple is offering a Mojave Public Beta program where users can opt in to download prerelease software, test out its new features in advance and report any bugs they discover to Apple.

Metal replaces OpenGL

Metal was first delivered in 2014 for the previous year's iPhone 5s to take full advantage of the graphics capabilities of its custom A7 'System on a Chip,' which bundled a 64-bit CPU and independent GPU.




The performance gains from Metal come largely from its optimizations to reduce CPU load, enabling software to much more efficiently make use of the power of the GPU. Metal achieves this using explicit synchronization and shared memory space between GPU and CPU; lower driver overhead, precomputed shaders and up-front state validation; and efficient multithreading, where every CPU thread can send commands to the GPU.

Metal gets its name from its low level of hardware optimization, as it runs on "the bare metal," rather than hovering over a large hardware abstraction layer in the model of cross platform graphics frameworks like OpenGL, which were designed to support a wide range of processors.

Apple initially moved to OpenGL in the late 90s after Steve Jobs announced plans to abandon the company's own QuickDraw 3D, an early project to build support for software graphics rendering into the Mac. At the time, moving to OpenGL allowed Apple to take advantage of existing work already done to build software that enabled hardware acceleration on a variety of different GPUs.

Fifteen years later, however, Apple's iOS had become the largest platform of uniform mobile hardware. In parallel with Metal, Apple launched the first 64-bit custom-ARM CPU, and was also optimizing the generic GPU design created by Imagination Technologies. Going forward, Apple knew that all of its iOS devices would get a 64-bit CPU and an advanced GPU.

Outside of iOS, Android and Windows Mobile licensees were using a wide variety of processors and graphics hardware. They were fated to be years behind in 64-bit CPUs and were beleaguered with cost effective "value engineering" that required devices to ship with underperforming graphics.

Developing the State of the Art in mobile GPUs was an expensive and risky proposition that had pushed one-time mobile GPU giants AMD, Texas Instruments and Nvidia out of the smartphone business entirely.

Apple's goal for iOS was to build extremely high performance graphics capable of rapidly ratcheting up performance and then just as rapidly scaling it down to conserve battery life. It needed the ability to optimize support for upcoming products--notably the higher resolutions of iPhone 6 and 6 Plus, and future models of iPad that would demand more graphics power than most PC laptops had.

Android and Windows licensees had far less ambitious plans. Samsung introduced new high resolution panels but shipped these with basic GPUs running standard Android software. The focus was on bragging specifications, not on actual usability or performance in gaming, creative or computationally intensive software.

In 2015 Apple brought Metal support to recent Macs (with GPUs dating back to 2012, including Intel's HD 4000 and Iris Graphics; AMD's Graphics Core Next GPUs; and Nvidia's Kepler-based GPUs) in macOS El Capitan.

Metal 2 focuses on the ML, AR, VR future

Last year, Apple announced Metal 2 for macOS High Sierra, with improvements including a new shader debugger and GPU dependency viewer for more efficient profiling and debugging in Xcode; support for accelerating the computationally-intensive task of training neural networks, including machine learning; lower CPU workloads via GPU-controlled pipelines, where the GPU is able to construct its own rendering commands and schedule them with little to no CPU interaction; and support for Virtual Reality.

Metal 2 is also supported in iOS on devices using the new A11 Bionic: iPhone 8, 8 Plus, and X models. This chip also launched Apple's first independent GPU of its own design, even more tightly optimized for not just accelerating graphics but also accelerating machine learning and Augmented Reality (which includes applications such as VR and face tracking).

image


Apple is no longer trying to work within a commodity-graphics community where its own product is just a proprietary variant of an Intel PC, outfitted with one of a several proprietary GPU designs that must all be abstracted to look similar to developers trying to make use of them.

Today, Apple is building its own highly customized silicon--including its own CPU, GPU and Neural Engine, and has to develop bare Metal software to run these both efficiently and at their maximum capacity.

Android and other platforms have begun supporting a community-developed Vulkan framework for graphics that makes improvements over the 1990's era OpenGL, but they don't share the same attainable goals as Apple. Most Android makers are focused on high volume sales of basic phone devices that sell on average for around $200.

The OpenGL deprecation

Earlier this month, Apple's developer documentation advised that active development has ceased for OpenGL and OpenCL on the Mac, and that the APIs will only get "minor changes" going forward.

"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," the company noted.

In software, "deprecation" means that a feature has been superseded and that while the old version should still work for the time being, it's advised to stop using it moving forward and to prepare for a future where it is removed entirely.

This created a knee-jerk reaction of clickbait warning that "developers" were revolting and waving pitchforks about the announcement. However, the main uses of OpenGL and OpenCL (the GPU-computation framework that Apple originally developed and shared with the OpenGL community) are in porting low level code between Linux, Windows and Macs.

Most modern games with 3D graphics are not hard coded using low-level OpenGL. Instead, developers make use of higher-level graphics "engine" frameworks such as Epic Games' Unreal Engine 4; Blizzard's WoW and SC2 Engine; or Unity Engine. Like Apple's own higher level graphics frameworks such as SceneKit, SpriteKit and ARKit, these already make native use of Metal under the scenes.

That means the games you play today--and the new titles you'll look for in the future--won't really be impacted by the deprecation of OpenGL. They will, however, be greatly accelerated by Apple's latest advances in low-level silicon and the nearly as low-level Metal plated on top. Additionally, Metal is also supporting the deployment of advanced new applications including multiuser FaceTime in the macOS Mojave Public Beta.
colinngpropodAlex1N
«134567

Comments

  • Reply 1 of 137
    MacProMacPro Posts: 19,718member
    Very informative, thanks.

    Question, what is the impact on the latest Macs running Windows 10 and beyond under Boot Camp, I assume none and Window will just continue as is, even on the latest Macs?
    watto_cobraAlex1N
  • Reply 2 of 137
    frantisekfrantisek Posts: 756member
    Can someone with deeper insight tell whether older GPUs are that bad that they could not support Metal if "anybody" would made drives? Or count with them when coding Metal? Older versions MS DirectX is running on much worse HW I woudl say.
    tylersdadwatto_cobraAlex1N
  • Reply 3 of 137
    tylersdadtylersdad Posts: 310member
    This still makes no sense at all. There is no reason why Apple can't support their native SDK (Metal) and OpenGL. Microsoft has been doing this for decades with DirectX.

    The majority of game developers won't bother with creating Metal versions of their rendering engines. There won't be enough customers to justify it.
    edited June 2018 williamlondonelijahgmuthuk_vanalingam
  • Reply 4 of 137
    Mike WuertheleMike Wuerthele Posts: 6,858administrator
    frantisek said:
    Can someone with deeper insight tell whether older GPUs are that bad that they could not support Metal if "anybody" would made drives? Or count with them when coding Metal? Older versions MS DirectX is running on much worse HW I woudl say.
    This is really a complicated discussion. In short, Metal relies on newer calls to the hardware that some older cards don't have. 

    So, it's less a "this much performance and no less" and more a "just can't support Metal in silicon" situation.
    macxpresswatto_cobraAlex1Nuniscape
  • Reply 5 of 137
    Mike WuertheleMike Wuerthele Posts: 6,858administrator

    MacPro said:
    Very informative, thanks.

    Question, what is the impact on the latest Macs running Windows 10 and beyond under Boot Camp, I assume none and Window will just continue as is, even on the latest Macs?
    None. Windows in Boot Camp will continue as-is.
    macxpresswatto_cobraAlex1N
  • Reply 6 of 137
    Mike WuertheleMike Wuerthele Posts: 6,858administrator
    tylersdad said:
    This still makes no sense at all. There is no reason why Apple can't support their native SDK (Metal) and OpenGL. Microsoft has been doing this for decades with DirectX.

    The majority of game developers won't bother with creating Metal versions of their rendering engines. There won't be enough customers to justify it.
    The Unreal Engine already supports Metal. So does the Foundation engine, Blizzard's engine for WoW, the Ego Engine, Glacier, Dawn, and Unity 5.
    tdknoxroundaboutnowfrantisekStrangeDaysGG1techconcPickUrPoisoncolinngmacplusplusfastasleep
  • Reply 7 of 137
    snailersnailer Posts: 51member
    Looks like I'm gonna have to upgrade my Mac Pro 5,1 graphics card. I'm running a Radeon HD 7950 3GB. Does anybody know what cards support Metal on my machine?
    watto_cobra
  • Reply 8 of 137
    It is built in obsolescence. Windows will run on 15 year old computers while Mac OS will refuse to run on any Mac built more than six years ago. There is really no technical reason why Mac OS could not run on a 2010 Intel CPU. These are decisions made at the top of the company. Apple does what is best for Apple and not for its customers. The reason developers are not up in arms about Apple dropping OpenGL and OpenCL is that it really happened years ago when Apple stopped updating it. Mac OS is now about five years out of date. When you look at the extremely poor library of AAA games available on the Mac, know that it is Apple's poor hardware features and lack of cross platform software support that is the major reason. Of course people don't buy Macs to play games. Pretty soon people won't buy Macs at all.
    williamlondonelijahgmike54muthuk_vanalingamlmac
  • Reply 9 of 137
    mjtomlinmjtomlin Posts: 2,673member
    tylersdad said:
    This still makes no sense at all. There is no reason why Apple can't support their native SDK (Metal) and OpenGL. Microsoft has been doing this for decades with DirectX.

    The majority of game developers won't bother with creating Metal versions of their rendering engines. There won't be enough customers to justify it.

    Two things...

    First, Apple hasn't updated OpenGL for a while now. Probably when they starting pushing Metal. So the OpenGL implementation included with iOS and macOS are fairly old, I think it's at 2.1, while the latest is 4.6. So there really is only a limited amount of "cross platform" compatibility for developers.

    Second, the entire industry is moving away from OpenGL. There is now a Khronos project, Vulkan, that is meant to replace OpenGL and OpenGL ES. And there is a version that "runs" on top of Apple's Metal called MoltenVk, so if developers must have cross platform compatibility, then they can move to it, instead of Metal.
    williamlondontdknoxtmayroundaboutnowauxiofrantisekcolinngwatto_cobrajony0Alex1N
  • Reply 10 of 137
    Mike WuertheleMike Wuerthele Posts: 6,858administrator
    It is built in obsolescence. Windows will run on 15 year old computers while Mac OS will refuse to run on any Mac built more than six years ago. There is really no technical reason why Mac OS could not run on a 2010 Intel CPU. These are decisions made at the top of the company. Apple does what is best for Apple and not for its customers. The reason developers are not up in arms about Apple dropping OpenGL and OpenCL is that it really happened years ago when Apple stopped updating it. Mac OS is now about five years out of date. When you look at the extremely poor library of AAA games available on the Mac, know that it is Apple's poor hardware features and lack of cross platform software support that is the major reason. Of course people don't buy Macs to play games. Pretty soon people won't buy Macs at all.
    I've been hearing this for 15 years, and yet, here we are.

    When does "pretty soon" arrive?
    edited June 2018 williamlondontmayroundaboutnowlkrupp2old4funmwhiteTireawelshdogfastasleepmacxpress
  • Reply 11 of 137
    wizard69wizard69 Posts: 13,377member
    MacPro said:
    Very informative, thanks.

    Question, what is the impact on the latest Macs running Windows 10 and beyond under Boot Camp, I assume none and Window will just continue as is, even on the latest Macs?
    It shouldnt make any difference on current models.   There might be issues if Apple starts to put Apple designed GPUs in the Macs.  
    edited June 2018 Alex1N
  • Reply 12 of 137
    auxioauxio Posts: 2,717member
    mjtomlin said:
    tylersdad said:
    This still makes no sense at all. There is no reason why Apple can't support their native SDK (Metal) and OpenGL. Microsoft has been doing this for decades with DirectX.

    The majority of game developers won't bother with creating Metal versions of their rendering engines. There won't be enough customers to justify it.

    Two things...

    First, Apple hasn't updated OpenGL for a while now. Probably when they starting pushing Metal. So the OpenGL implementation included with iOS and macOS are fairly old, I think it's at 2.1, while the latest is 4.6. So there really is only a limited amount of "cross platform" compatibility for developers.

    Second, the entire industry is moving away from OpenGL. There is now a Khronos project, Vulkan, that is meant to replace OpenGL and OpenGL ES. And there is a version that "runs" on top of Apple's Metal called MoltenVk, so if developers must have cross platform compatibility, then they can move to it, instead of Metal.
    Exactly.  There's always a segment of people who want everything to stay the same.  They'll complain when hardware connectors are deprecated, they'll complain when SDKs are deprecated, they'll complain when computers can't run the latest OS, etc.  This has always been the way of technology: it progresses.  Connectors get faster/smaller, GPUs get more powerful, things need to move forward.

    If you never want to spend another dollar on tech, then live in the past, form volunteer support groups around your old tech, and stop complaining.  Heck, I know musicians who still use Atari STs with Cubase to produce music.  Steinberg doesn't support it, but people on the internet do.  They're not complaining and lobbying Steinberg to support it because they understand that they're using old technology and they're in a small niche.

    It's the same for developers who want to continue using outdated SDKs.  Microsoft may bend over backwards to be backwards compatible, but Apple has never been afraid to move forward and leave the past behind.  It's exactly the reason why they were able to move into the mobile space successfully while Microsoft failed even though they had a head start.
    StrangeDaysmacpluspluspropodracerhomie3watto_cobraAlex1N
  • Reply 13 of 137
    MS has been shoving DirectX on devs for more than a decade despite having serious flaws for at least the first 5 generations. Devs cried for years that OpenGL wasn't sufficient for 'real games' and many petitioned Apple to create something to give them better performance like DirectX (yes, it offered performance benefits even while being buggy). Apple comes out with Metal as serious competition to DirectX and suddenly they're terrible for requiring Metal. That's even despite the fact that OpenGL is already being largely deprecated in favor of Vulkan in an effort modernize it because it's begun to seriously lag behind pretty much everything else in use today. And there's absolutely nothing stopping anyone from developing a way to use OpenGL on top of Metal which is probably what someone in the open source community will do.
    williamlondonracerhomie3watto_cobraAlex1Nmacplusplus
  • Reply 14 of 137
    tallest skiltallest skil Posts: 43,388member
    snailer said:
    Looks like I'm gonna have to upgrade my Mac Pro 5,1 graphics card. I'm running a Radeon HD 7950 3GB. Does anybody know what cards support Metal on my machine?
    None. We’re stuck. Even if you happened to buy a third party GPU that supports Metal, you still can’t use it. You can’t install install Mojave with the card installed because the graphics drivers will be wiped upon update. To install new graphics drivers, you would have to use a different graphics card to see the UI, but none of the ones that DO work with Mojave can be used in a Mac Pro.

    EDIT: Hang on, you MIGHT be able to boot it after a Mojave install, blind-type your way into your account, and then use screen sharing to run the driver install from a virtualized desktop.
    edited June 2018 muthuk_vanalingamAlex1N
  • Reply 15 of 137
    It is built in obsolescence. Windows will run on 15 year old computers while Mac OS will refuse to run on any Mac built more than six years ago. There is really no technical reason why Mac OS could not run on a 2010 Intel CPU. These are decisions made at the top of the company. Apple does what is best for Apple and not for its customers. The reason developers are not up in arms about Apple dropping OpenGL and OpenCL is that it really happened years ago when Apple stopped updating it. Mac OS is now about five years out of date. When you look at the extremely poor library of AAA games available on the Mac, know that it is Apple's poor hardware features and lack of cross platform software support that is the major reason. Of course people don't buy Macs to play games. Pretty soon people won't buy Macs at all.
    I've been hearing this for 15 years, and yet, here we are.

    When does "pretty soon" arrive?
    Windows 10 runs like shit on 7 years old hardware I cant even imagine 15 years! 

    People will buy more Macs from now on. 


    williamlondonroundaboutnowlkruppStrangeDaysrevenantracerhomie3watto_cobramacplusplusMike_78
  • Reply 16 of 137
    boboliciousbobolicious Posts: 1,139member
    It is built in obsolescence. Windows will run on 15 year old computers while Mac OS will refuse to run on any Mac built more than six years ago. There is really no technical reason why Mac OS could not run on a 2010 Intel CPU. These are decisions made at the top of the company. Apple does what is best for Apple and not for its customers. The reason developers are not up in arms about Apple dropping OpenGL and OpenCL is that it really happened years ago when Apple stopped updating it. Mac OS is now about five years out of date. When you look at the extremely poor library of AAA games available on the Mac, know that it is Apple's poor hardware features and lack of cross platform software support that is the major reason. Of course people don't buy Macs to play games. Pretty soon people won't buy Macs at all.
    I've been hearing this for 15 years, and yet, here we are.

    When does "pretty soon" arrive?
    ...the last mac this long time three year serial Applecare cycle customer kept is 2011 vintage, and regrettably I've dabbled yet sent newer ('onboard' memory limited) macs back...

    Such has me asking further why the cutoff based on geekbench OpenCL ratings:
    5448 Intel HD 4000 (2012 supported, integrated GPU ie. RAM based & slow?)
    7338 AMD Radeon HD 6630M (2011 mini unsupported, independent GPU)
    7863 ATI Radeon HD 5750 (2010 imac unsupported, independent desktop GPU)
    browser.geekbench.com/opencl-benchmarks

    edited June 2018
  • Reply 17 of 137
    sflocalsflocal Posts: 6,092member
    It is built in obsolescence. Windows will run on 15 year old computers while Mac OS will refuse to run on any Mac built more than six years ago. There is really no technical reason why Mac OS could not run on a 2010 Intel CPU. These are decisions made at the top of the company. Apple does what is best for Apple and not for its customers. The reason developers are not up in arms about Apple dropping OpenGL and OpenCL is that it really happened years ago when Apple stopped updating it. Mac OS is now about five years out of date. When you look at the extremely poor library of AAA games available on the Mac, know that it is Apple's poor hardware features and lack of cross platform software support that is the major reason. Of course people don't buy Macs to play games. Pretty soon people won't buy Macs at all.
    Oh give us a break.  Sure, Windows will run on a 15 year old computer, but if you want to get actual WORK done on that computer, you're SOOL.  Enough with the tired, moot debate.  It's obvious you have an agenda, so just move on.

    I run all variants of Windows on my Mac (as a VM) for corporate work, and I am more than happy that Apple does not follow that same path.  

    roundaboutnowcolinngStrangeDaysrevenantracerhomie3watto_cobraAlex1Nmacplusplus
  • Reply 18 of 137
    elijahgelijahg Posts: 2,753member

    This created a knee-jerk reaction of clickbait warning that "developers" were revolting and waving pitchforks about the announcement. However, the main uses of OpenGL and OpenCL (the GPU-computation framework that Apple originally developed and shared with the OpenGL community) are in porting low level code between Linux, Windows and Macs.

    Most modern games with 3D graphics are not hard coded using low-level OpenGL. 
    So what happens to the applications and games where OpenGL is used for "porting low level code between Linux, Windows and Macs"? In any case OpenGL isn't used to "port low level code", it is the low level code. For tools such as AutoCad, Sketchup, Kicad, Eagle, Blender, GIMP etc that are natively Windows or Linux, Mac support is often a token gesture; simply a tickbox when the graphics core is OpenGL. If developers have a hard time porting to Mac because they have to use Metal, they just won't bother. It's not worth them spending disproportionate time on a minority of computer users to support an obscure graphics API, and game engines aren't any good for writing actual tools to get things done.

    As I've said in another thread on this: unlike mobile, Apple has pretty much no clout in the desktop/laptop market. Developers want to support iOS because it's profitable, so they'll follow Apple's every whim. On Mac however, that won't happen, developers just won't bother, to the detriment yet again of Mac users.
    ElCapitanmattspace
  • Reply 19 of 137
    cashxxcashxx Posts: 114member
    Here is the kicker though!  10.13 isn't supposed to run on the 2009 Mac Pro, but runs perfectly fine!   If you flash the 2009 Mac Pro with the 2010 Mac Pro firmware, it runs it fine.  (Yes, the 2010 firmware allows you to flash the 2009 model)

    No reasons they can't give support for the 2009 model as well, it runs it fine!  They have a GT120 card that I don't think supports Metal.  But the OS runs great, no lag, etc.  I did upgrade to an SSD though to help with speed.
    libertyforallwatto_cobramarklark
  • Reply 20 of 137
    llowejrllowejr Posts: 2member
    It is built in obsolescence. Windows will run on 15 year old computers while Mac OS will refuse to run on any Mac built more than six years ago. There is really no technical reason why Mac OS could not run on a 2010 Intel CPU. These are decisions made at the top of the company. Apple does what is best for Apple and not for its customers. The reason developers are not up in arms about Apple dropping OpenGL and OpenCL is that it really happened years ago when Apple stopped updating it. Mac OS is now about five years out of date. When you look at the extremely poor library of AAA games available on the Mac, know that it is Apple's poor hardware features and lack of cross platform software support that is the major reason. Of course people don't buy Macs to play games. Pretty soon people won't buy Macs at all.
    Ya right, try running Windows 10 on a stock 15 year old PC, not going to happen!!!
    jimh2StrangeDaysjblongz
Sign In or Register to comment.