1. 42
  1. 23

    This is a bit disappointing. It feels a bit like we are walking into the situation OpenGL was built to avoid.

    1. 7

      To be honest we are already in that situation.

      You can’t really use GL on mac, it’s been stuck at D3D10 feature level for years and runs 2-3x slower than the same code under Linux on the same hardware.

      It always seemed like a weird decision from Apple to have terrible GL support, like if I was going to write a second render backend I’d probably pick DX over Metal.

      1. 6

        I remain convinced that nobody really uses a Mac on macOS for anything serious.

        And why pick DX over Metal when you can pick Vulkan over Metal?

        1. 3

          Virtually no gaming or VR is done on a mac. I assume the only devs to use Metal would be making video editors.

          1. 1

            This is a bit pedantic, but I play a lot of games on mac (mainly indie stuff built in Unity, since the “porting” is relatively easy), and several coworkers are also mac-only (or mac + console).

            Granted, none of us are very interested in the AAA stuff, except a couple of games. But there’s definitely a (granted, small) market for this stuff. Luckily stuff like Unity means that even if the game only sells like 1k copies it’ll still be a good amount of money for “provide one extra binary from the engine exporter.”

            The biggest issue is that Mac hardware isn’t shipping with anything powerful enough to run most games properly, even when you’re willing to spend a huge amount of money. So games like Hitman got ported but you can only run it on the most expensive MBPs or iMac Pros. Meanwhile you have sub-$1k windows laptops which can run the game (albeit not super well)

          2. 2

            I think Vulkan might have not been ready when Metal was first skecthed out – and Apple does not usually like to compromise on technology ;)

            1. 2

              My recollection is that Metal appeared first (about June 2014), Mantle shipped shortly after (by a coupe months?), DX12 shows up mid-2015 and then Vulkan shows up in February 2016.

              I get a vague impression that Mantle never made tremendous headway (because who wants to rewrite their renderer for a super fast graphics API that only works on the less popular GPU?) and DX12 seems to have made surprisingly little (because targeting an API that doesn’t work on Win7 probably doesn’t seem like a great investment right now, I guess? Current Steam survey shows Win10 at ~56% and Win7+8 at about 40% market share among people playing videogames.)

              1. 2

                Mantle got heavily retooled into Vulkan, IIRC.

                1. 1

                  And there was much rejoicing. ♥

      2. 11

        Really not happy about this. I mean, I recognize that mac gaming is a tiny sliver market anyway, but this essentially will kill the desktop mac games market, although it’ll mean ports from mobile will get much easier.

        But really, is that what we want? Thank god for Bootcamp I guess?

        1. 5

          OpenGL already seems to be an afterthought for most game developers. It’s basically only a Linux/Mac target in practice, no? For Windows, game devs usually target DirectX, and for PS4 and Xbox, there isn’t even OpenGL support. Games today sometimes even run better on Mac using DirectX under Wine compared to using the native macOS OpenGL, although that admittedly makes them less accessible to the average user.

          1. 2

            But Wine’s DirectX uses OpenGL as backend.

          2. 1

            I assume the major game engines like unity, unreal, and cry, will just emit a Metal taget, like they do for directx and opengl currently? Also, isn’t Vulkan supposed to take over? It seems like OpenGL is just going to die off.

            1. 2

              That’s a big assumption. Said engine makers would need to feel confident enough that there will be ROI for them to spend those man hours and dollars that could more profitably be spent on supporting the next next next gen nvidia card or the Playstation 20 :)

              1. 5

                Well, MoltenVK is a thing apparently, so I guess if Vulkan does take over, maybe it won’t be /too/ bad as a macos target?

                EDIT: also looks like (based on very quick searching) that unity and unreal both support Metal as a target already. Being that ios also uses metal, I assume they likely have a vested interest in supporting it there.

                1. 2

                  You’re clearly way more knowledgeable in this space than I and yeah MoltenVK looks like a thing. Maybe it’s all for the good, I dunno :)

                2. 3

                  They already do for iOS - Mac OS is trivial after that. It’s no problem for Unity or Epic. It does hurt the little guy with their own engine, however.

              2. 1

                It’s not going to stop working, they’re just marking it as no-longer a priority that may stop working in a future update. I can’t imagine anybody is going to be forced to update to whatever future version of MacOS does not include OGL by default. If it’s that important to the industry, people other than Apple will pick up the implementation work. Most professional tools already support Metal and Vulcan, and it seems pretty clear to me that on all platforms, the trend away from OGL is going to continue. Vendors of various rendering and scenegraph libraries can work with their customers to determine what backends they need to support.

                1. 2

                  Truthfully I’m kind of out of step with that end of things. I was just thinking in terms of all the open source I’ve seen through the years that wanted OpenGL on OSX.

                  Maybe all of it’s been ported to Vulcan or Metal? I dunno.

              3. 9

                They could’ve just build a OpenGL compatibility library on top of Metal right? Apple keeps playing the silo card…

                1. 3

                  I don’t have a source handy, but someone on Twitter had some clues that the iOS implementation already is layered on top of Metal. So I’m hoping they do a code dump and/or find a new steward.

                2. 5

                  Thankfully there’s MoltenVK, an implementation of the Vulkan API on top of Metal. Khronos has thankfully worked to get it open sourced for us! I’ve not used it before, so can’t claim it works as advertised, but if I was doing graphics work that’s where I’d head these days. Very sad that Apple continues to dig in its heels on this.

                  1. 5

                    It’s platform strategy. If Apple stays with OpenGL (or adopts Vulkan) they are at the mercy of Khronos, and Khronos may not do a good job (in the long run – in the short run Vulkan seems pretty good.)

                    Microsoft is never going to give up on Direct X, it grants incredible market control. $$$. OpenGL is owned by committee and can’t be relied on to be competitive (something the last 20 years of history demonstrated, and since Khronos controls Vulkan there’s a substantial possibility committee politics destroy it too in the long run.)

                    3D engines all require multiple rendering backends anyways (DX9/11/12, OpenGL ES 2, ES 3, ES 3.1, desktop GL) so the incremental cost of implementing another backend for Metal is low. The cognitive cost is also low because Metal/DX12/Vulkan are similar. So Metal is better (for Apple) than Vulkan or OpenGL because they get complete control. Complete control is where Apple likes to be, they have a history of delivering strongly when they have complete control. Although Apple’s values rarely align with the prosumer, they do a good job at fulfilling their own vision.

                    Really the main disadvantage of deprecating OpenGL on OSX is all the heckling from armchair quarterbacks, but let’s be honest, Apple DNGAF about the nerdygentsia’s opinion ;)

                    If you’re an indie or OSS dev either you’re not doing high end rendering and OpenGL remains fine, or you can just use MoltenVK/GL and call it a day, it’s not worth getting angry about IMHO.

                    1. 4

                      Can anyone help me understand why Metal was designed? Apple’s a heavy hitter in Khronos, right? So what was it that they felt like they couldn’t accomplish with OGL/OCL? Are there non-Mac targets that support Metal?

                      1. 6

                        OpenGL is a tired old API that is too high level for high performance graphics work. At the time when Metal was being developed folks were working on lower level APIs to expose the GPU more, like Mantle and DirectX 12, and Metal was Apple’s offering. I believe Mantle eventually evolved into Vulkan, but for some reason Apple is continuing to promote Metal. It’s a nicer API for Swift users, but that’s about it. I would have preferred that they’d make a safe API over Vulkan for Swift like Vulkano, they seem to be under some weird impression that they’ll be able to trap devs in their platform with their own, proprietary API. Or maybe they just can’t bear to give up all the sunk cost.

                        1. 2

                          they seem to be under some weird impression that they’ll be able to trap devs in their platform with their own, proprietary API

                          Is it not working quite well for Microsoft with DirectX?

                        2. 1

                          As I vaguely recall, it started on ios as a way to utilize their graphics chips faster and more efficiently (lower overhead).

                        3. 2

                          Now they’ll be even less in the standards.

                          Their graphical API Metal is already so against the standards that it exists MoltenVk, which is an emulation of Vulkan over Metal.

                          1. 1

                            So, all browsers now are using deprecated API to implement WebGL? And WebGL is not fringe API for demos, even Google Maps now uses it. Or Safari will have WebMetal?

                            And all this is just to bring stupid AAA interactive movies about masculine men with guns to Mac? They should rename “iMac” to “XMacDarkWarryorMaster” and add red LEDs then.

                            OpenGL is not API for games, not even for “less than AAA” games, not even 3D, it’s universal API for any graphics, everything from image editors to data plots. Making it “deprecated” because it has bad fit for Far Cry 6: Battle Royale? Strange strategy.

                            1. 1

                              What is the impact on not-that-old Mac games that are unlikely to be updated?