11 ms·
Wow, they are DEPRECATING OpenGL from both macOS and iOS: https://developer.apple.com/macos/whats-new/ https://developer.apple.com/macos/whats-new/ This is in
by 0x0 8y ago
Wow, they are DEPRECATING OpenGL from both macOS and iOS: https://developer.apple.com/macos/whats-new/ https://developer.apple.com/macos/whats-new/
This is in addition to last year's announcement that "macOS High Sierra is the last version of macOS to run 32bit apps without compromise"
I wonder if we will soon see a new lineage of Macbooks fitted with Apple-specific arm64 chips.
The most scary thought is if UIKit-on-macOS starts requiring Developer ID entitlements and need to be installed via the app store, with fairplay DRM encryption of binaries and everything.
Edit: Also, r.i.p. my old macbook air 2011 :-/
- galad87 8y agoThe writing was on the wall since they stopped updating it (OpenGL) 5 years ago.
- 0x0 8y agoTrue, but it'd be a shame to lose out on the library of legacy software and games. Edit: and XQuartz (X11) with OpenGL comes in handy once in a while too...
- numbsafari 8y agoI mean... it looks like there's at least one commercial option for OpenGL on Metal (MoltenGL). Also, it seems to me that the better option in the long run for legacy game support is to just run a VM for the highest degree of compatibility.
- ryandrake 8y agoYep, I bet the MoltenGL guys are throwing a major party right now. I wonder what kind of effort it would be to hook up Mesa to a Metal backend...?
- stuaxo 8y agoYears. EDIT: As a follower of https://mesamatrix.net/ https://mesamatrix.net/ I don't think it would be unreasonable to say about 3 years to get something that kind of works, five for something semi reasonable, and 8 for something at modern open gl level.
- ngrilly 8y agoI guess John Carmack is sad today (he advocated early for OpenGL on Mac).
- washadjeffmad 8y agoJohn Carmack probably knows the Apple of today is not the Apple of yesteryear.
- DonHopkins 8y agoIf the Apple of today would just include a couple more buttons on their mice, John Carmack would probably be happier.
- wsc981 8y agoI am not sure. In the past Carmack stated that DirectX at some point became a much better API compared to OpenGL. He also once stated (admittedly when talking about id Software, after he left the company) that he's not really a sentimental person.
- MrBingley 8y agoAnd OpenCL too. This is terrible. I was thinking about adding GPU support to a numerical simulator I am working on, and I was planning to have nice cross-platform support with OpenCL. Whelp, that's no longer the case. My code is in C++, and I refuse to use proprietary, vendor-locked, Objective-C-only Metal. If people want GPU support, they'll just have to use Linux, which doesn't artificially constrain you with corporate frameworks.
- Tehchops 8y agoAren't most people running those kinds of workloads doing so on Linux already? Doesn't seem cost-effective at scale to run on beefy Apple machines.
- bitL 8y agoPeople used to buy expensive eGPUs for those workloads to keep them on macOS.
- Eridrus 8y agoPeople just getting into a field like to run code on their personal machines. This can be quite relevant when your code gets a 50X speedup from running on GPU. This is sort of like saying "people only do web serving workloads on Linux, we don't need web servers to run on Apple machines" to me.
- LolWolf 8y agoI mean, if you're already running decent code or already have extremely good tooling where small examples can be easily sent to other machines. Additionally, debugging code running on other machines is also a huge pain in the ass vs. being able to step through it directly, locally. Almost all of my (and my lab's) time is spent tinkering with small numerical examples before sending it off to one of the lab machines to run overnight, and using the GPU on the MBP through OpenCL is a huge advantage.
- jlarocco 8y agoNot necessarily. Many media editing apps use OpenCL to speed up processing. I know Capture One uses OpenCL, and I think Adobe's Lightroom and Photoshop use it also. At this point even Pixelmator and less well known alternatives use OpenCL, too. Sadly, most companies won't have any choice but to port their app to Apple's proprietary APIs. It's really a net loss for consumers because most of these devs have better things to spend their time on than Apple breaking compatibility on a whim.
- atonse 8y agoI'm curious about this – does it really matter? How important is it that the Operating System has OpenGL? Can't individual apps just static link to (and ship) their own versions of OpenGL?
- obl 8y agoOpenGL is just an API, the underlying features are provided by the graphic driver. You can't ship with your own OpenGL, that would mean shipping with your own amd/nvidia/intel driver (and the associated kernel module, etc). A reasonable alternative would be to implement OpenGL on top of Metal for compatibility but this is a lot of work.
- matthewmacleod 8y agoThere's at least one implementation that I'm aware of in MoltenGL (https://moltengl.com/moltengl/ https://moltengl.com/moltengl/), though that's only ES.
- gnufied 8y agoThere is also MoltenVK https://github.com/KhronosGroup/MoltenVK https://github.com/KhronosGroup/MoltenVK for Vulkan on metal...
- yulaow 8y agoWhat is gonna happen to games and apps which were using OpenGL since today then? They will stop working in the new macOS version? edit, ups just read it: 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. [0] [0]https://developer.apple.com/macos/whats-new/ https://developer.apple.com/macos/whats-new/
- zeroDivisible 8y agoWhat's the consensus on Metal? How does it compare to OpenGL?
- shurcooL 8y agoYou can’t compare them directly, they’re very different categories of graphics APIs. Metal belongs to the category of “modern low-level graphics API” (which also includes Vulkan and Direct3D 12), while OpenGL is an older higher-level graphics API (which also includes Direct3D 11 and previous). The low-level graphics APIs like Metal and Vulkan allow for much better performance, but they are much harder to use and require more work from the developer (hence, they’re usually used only by game engine makers). Higher-level graphics APIs like OpenGL are less efficient and have lower peak performance, but are easier to use for individual projects and have the benefit of having existing functional code (no need to rewrite a working project). Also, OpenGL (and its mobile and web variants OpenGL ES and WebGL) are very portable (macOS, Linux, Windows, iOS, Android, both and native and in browsers), while Metal is macOS/iOS-only.
- andybak 8y agoTo be fair - OpenGL was fairly horrible to use directly. It sat in an awkward middle area between "low level enough to be efficient" and "high level enough to be productive". Maybe I'm biased - every time I looked at OpenGl code I shuddered and ran away to a higher level framework (I'm excluding shader code from this - that's concise enough for me not to mind getting that close to the metal)
- nteu0893nt4ue 8y agoSo much this! I've been writing OpenGL code on a daily basis for the past 10 years, and I hate it. It works like an API designed in the 1970s. It uses none of the modern features of languages, easily allowing you to pass incorrect data to a function, and giving you almost no clue what, if anything, went wrong. Just look on StackOverflow some time at how many questions are basically, "My previously working OpenGL program is now rendering nothing but a black screen. What went wrong?" And then compare the huge number of different causes. There's no reason they couldn't have improved it along the way, keeping backwards compatibility, and just adding more informative error codes and better use of language features. But they didn't. My feeling is "Don't let the door hit you on the way out."
- shurcooL 8y agoI would be a lot more okay with this if Apple supported Vulkan, the more portable comparable API, rather than just the macOS/iOS-only Metal. I also wonder what means for WebGL and its future. Right now, WebGL works in browsers on macOS, Linux, Windows, iOS, Android, which is incredible. There is no equivalent. Sure, Apple has started working on WebGPU, but that’s not yet ready nor is it guaranteed to gain Linux, Windows, Android support.
- bla2 8y agoMy guess is browsers will just implement WebGL on top of Metal and this will be transparent to web developers.
- skymt 8y agoThere's precedent: Chrome and Firefox both implement WebGL on Windows with ANGLE, which translates OpenGL to Direct3D. https://en.wikipedia.org/wiki/ANGLE_(software) https://en.wikipedia.org/wiki/ANGLE_(software)
- paraboul 8y agoAnd it seems they are working on a more generic library : https://github.com/google/nxt-standalone https://github.com/google/nxt-standalone
- skymt 8y agoAh, and NXT has a Metal backend! Very cool. It's important to note that NXT isn't necessarily a replacement for ANGLE. It's an experimental replacement for WebGL as a whole, with a different API. There still needs to be a way to run WebGL programs on Mac if this deprecation leads to removal a few versions down the line.
- fulafel 8y agoAnd not strictly a replacement either, WebGL would not go away. The successor to WebGL is still so far away that there will probably be some versions after WebGL 2.0.
- ChuckMcM 8y agoPretty ballsy, it didn't work well for Microsoft when they said "Use DirectX or die" I doubt it will work well for Apple. This is especially true for OpenCL (also deprecated) which nobody on big Linux server farms with GPUs is going to be using "Metal on Linux" for their code.
- overcast 8y agoHow exactly did it not work well? Windows is THE gaming platform for PC.
- untog 8y agoThat's like saying roads are THE travel surface for cars.
- stdbrouw 8y ago... yes?
- deleted 8y ago[deleted]
- ChuckMcM 8y agoIt kept a lot of commercial software off the Windows platform and left it on Workstations like SGI and DEC had. The movie houses that were rendering movies were using OpenGL on their renderfarms and its lack of availability on Windows kept windows off those desktops. The key being that if you've got a technology that works on both server farms for production and workstations for development, you support that so that your OS is a viable candidate for the developer workstation. I don't see a Metal port coming to Linux in any reasonable way any time soon, and I don't see researchers giving up OpenCL or even OpenGL any time soon, so it just means that Apple is going to forego that business. With the recent github purchase it gives the oddly dissonant experience of having Microsoft being the 'developer friendly' OS company and the MacOS being the 'developer hostile' OS company. Where, and this is important, support for cross platform tools determines hostility or support. I would not argue that Apple is not the best development environment for the Apple platform, or Windows for the Windows platform.
- electricslpnsld 8y ago> DEPRECATING OpenGL Wow, does this mean Maya, Houdini, and basically every 3D package out there will no longer run on macOS? If so that seriously sucks for 3D pros.
- obl 8y agoI'm guessing it's not the end of the world for Autodesk to add a metal backend to maya. Some smaller teams might very well choose to let go of mac though.
- DonHopkins 8y agoIf they weren't already doing that just for the performance improvement itself.
- agumonkey 8y agoApple will easily ease the transition. That would be way too stupid to kill partners that way.
- deleted 8y ago[deleted]
- saagarjha 8y agoOpenGL has just been deprecated. It hasn’t been removed.
- yreg 8y agoIt will be in a year.
- Lio 8y agoDoes anyone know how this will effect Blender in the short term?
- pjmlp 8y agoNo, because contrary to HN beliefs about 3D APIs, in the real world most business already added Metal backends to their rendering engines.
- protomyth 8y agoDoesn't Core Image use the OpenGL Shading Language, so is that going too?
- pjmlp 8y agoThat was gone last year, check WWDC 2017 Metal 2 related sessions. When it was introduced, the Core frameworks were updated to use Metal instead, with OpenGL left for backwards compatibility mode.
- ryandrake 8y agoI guess we will be saying our last goodbye to “write once, run on all major platforms” graphics code. Does this mean that the only choices now are 1. Fork your graphics code into two separate implementations or 2. Go up the stack and use a cross-platform “game” engine like Unity? I suppose 3. Stop supporting macOS is another (sad) option.
- pjmlp 8y ago> “write once, run on all major platforms” graphics code. This was never true for game consoles, regardless of urban myths regarding OpenGL support.
- ryandrake 8y agoFine. All major desktop, laptop, and mobile platforms not including game consoles. Still, more portable than any other existing alternative.
- moosingin3space 8y agoIf you're programming in Rust, you can just use `gfx-rs`'s HAL[1]. This is designed to be a Vulkan-like API that works on top of Vulkan, Metal, D3D12, or OpenGL. If you aren't in Rust, just use Vulkan. There are high-performance wrappers for it in various stages of development, such as MoltenVK[2] for macOS and iOS, and VulkanOnD3D12[3] for UWP. Non-UWP Windows, Linux, and Android should support Vulkan natively through their GPU drivers. [1]: https://github.com/gfx-rs/gfx https://github.com/gfx-rs/gfx [2]: https://github.com/KhronosGroup/MoltenVK https://github.com/KhronosGroup/MoltenVK [3]: https://github.com/Chabloom/VulkanOnD3D12 https://github.com/Chabloom/VulkanOnD3D12
- dictum 8y agoSo that's how they weed out the still good 2011 Macs... I can't say I'll be protesting by not buying a new Mac because I'm already devoid of any desire to do so.
- pknopf 8y ago> Wow, they are DEPRECATING OpenGL from both macOS and iOS How does this effect Qt iOS applications?
- ggregoire 8y agoWhat does that mean for games like League of Legends running on OpenGL? (https://engineering.riotgames.com/news/trip-down-lol-graphics-pipeline https://engineering.riotgames.com/news/trip-down-lol-graphic...)
- shurcooL 8y agoRiot probably has enough resources to pay its developers to target Metal on macOS by the time OpenGL is removed (some number of years from now). It’s the smaller scale developers and projects that might not have have such ability.
- s73v3r_ 8y agoThe smaller scale ones are generally using an existing engine like Unity or Unreal, which handles Metal support.
- TillE 8y agoGenerally, yes. Certainly not all. The likes of SFML and SDL2 and libgdx have zero support for Metal, although SDL2 did recently add support for Vulkan.
- jamesgeck0 8y agoHow far back did Unity/Unreal transparently handle Metal support? I suspect some developers won't have the resources to update games running on older versions of those engines. Games made by developers who've gone out of business are probably just going to stop working in a few versions of MacOS.
- matthew-wegner 8y agoCertainly has enough resources. Their 2015 revenue estimate was $1.6 billion. 2,500 employees in 2017. (Not intending to nitpick--just pointing out that Riot is a LOT bigger than many folks realize)
- wsc981 8y agoPerhaps they could use some middleware like MoltenGL [0]. That way they might still be able to write against an OpenGL API (which allows for code re-use), while supporting Metal under the hood. It does seem this particular tech might be more suited for mobile platforms, unless OpenGL ES is also used these days on the PC / Mac platforms. --- [0]: https://moltengl.com/moltengl/ https://moltengl.com/moltengl/
- bitwize 8y agoOpenGL is a pain in the ass to use, Metal does what OpenGL does so much better, and with the Vulkan Metal wrapper you can still write cross-platform apps/libs. So nothing of value was lost.
- jblow 8y agoGood riddance. OpenGL has been an awful API for many years now. The drivers are way too complicated, and applications don’t have enough control to deliver smooth performance. All OpenGL does now is let you kind of mediocrily put things on the screen.
- yulaow 8y agoIt would be a good riddance IF there was another universal API (Vulkan) and they would adopt it in substitution. The fact they want to force game developers to use instead Metal is... ridiculous, especially considering the extremely low macos marketshare, particularly outside US.
- obl 8y agoSometimes at work I daydream about this alternate reality where we let go of the idea of an universal API on top GPUs and just let vendors publish some ISA and hardware-specific libs/drivers/docs. I'm sure people would figure out nice (and less nice) abstract libraries on their own just as well. It's so frustrating to read what the GPU is actually capable of (for example in the intel PRMs) and to know that there is absolutely no way to get the driver's compiler to do the right thing in a reliable way. I mean imagine if icc was the only x86 compiler.
- AnIdiotOnTheNet 8y agoIt's ok man, we can just keep piling on more turtles.
- ecuzzillo 8y agoI do get the impression the new more-explicit APIs help somewhat with that, no?
- pjmlp 8y agoAll game engines that matter already support Metal, plus writing platform specific APIs is something that professional game developers are used to do since Atari 2600.
- vvanders 8y agoSay what you will of Microsoft they still understood how important backwards compatibility was and didn't do the same to OpenGL back when they were pushing D3D hard. I really hate to see such a focus on a platform lock-in API when viable alternatives(Vulkan) are available.
- stevedekorte 8y agoWill this effect Safari (and other browsers) supporting WebGL on OSX/iOS?
- Reason077 8y ago"Also, r.i.p. my old macbook air 2011 :-/" macOS performance was already getting so poor on 2010/2011 MacBook Airs, so I think this is the right move. I recently downgraded my old 2GB 2010 MacBook Air back to 10.11 El Capitan and it runs much, much better than it did on High Sierra.
- cerberusss 8y agoCareful with that. A number of security fixes make it to El Cap, but I don't think all of them do.
- vortico 8y agoNice marketing campaign here a couple years ago. https://developer.apple.com/opencl/ https://developer.apple.com/opencl/ Make up your fucking minds. Developers aren't hamsters. I now declare MacOS to be deprecated, if that's how it's going to be.
- linuxlizard 8y agoAw, crap. MacOS is deprecated!? How could you!?
- vortico 8y agoYup, you will see a deprecation notice when booting MacOS now.
- deleted 8y ago[deleted]
- exikyut 8y agoOh this is hilarious. You could put money on how long this page gets forgotten and left up.
- martin1975 8y agothe notch...no 3.5mm aux...no OpenGL... the hits just keep on coming. Is this what passes for "invention" today? What's next, deprecating USB?
- briandear 8y agoYou can add CD ROM, the diskette drive, SCSI, ADB, FireWire and the LaserWriter to that. How dare they!
- martin1975 8y agoNotch decreases function and is aesthetically displeasing. 3.5 mm = 1) there is no way a wireless medium will ever have better throughput than a wired medium over a superb DAC - ever, 2) dongle, 3) extra battery worry now for BT. OpenGL, I will grant you that one, since both Metal and/or Vulkan are a vast improvement on OpenGL.
- BugsJustFindMe 8y ago> Notch decreases function I know that some people like to say this, but it's pretty clearly wrong, and it makes you look unobservant when you repeat it. It takes about five seconds and two phones to demonstrate this. The standard top section on every phone, Android and iOS alike, is a dedicated status section with little system icons with wide gaps of unused blank space between them. Every phone, every time. A notched phone just puts the camera directly between those icons instead of putting unused pixels there. It doesn't take a genius to see that un-notched phones have both larger top bezels and more pixels wasted in the status area. The notch doesn't cut into the screen. The screen extends up around the camera and puts the status icons on the horns. > and is aesthetically displeasing All of the tens of people I know who have notched phones say they love it and don't notice the notch. So, maybe to you, but it seems like the market is speaking.
- somethingwitty1 8y agoIt might benefit you to look at a 3rd phone. Because my top notification bar is always full. So no, they are not clearly wrong. Or better yet, maybe it just comes down to individual preference!? I personally never thought I'd see someone trying to justify the loss of screen space as a "win". But here we are. And also, the market is still out on it. Until the majority of phones are doing a notch, the market hasn't spoken. Apple hasn't been the leader in smartphone sales in many years now. They aren't even #2 anymore.
- deleted 8y ago[deleted]
- sparky_ 8y agoMentioning this in a couple different places, but consider Molten (https://moltengl.com/ https://moltengl.com/) for this use case; it's a third party but very high quality reimplementation of Vulkan and OpenGL ES atop Metal. In other words, an easy way to adopt Metal without actually porting your app.
- taburet 8y agoThey also sneakily deprecated the sub-pixel font rendering, so the "Use LCD font smoothing when available" option will be gone from the preferences.
- nikisweeting 8y agoMore info on this for the interested: https://twitter.com/siracusa/status/1004143205078597633 https://twitter.com/siracusa/status/1004143205078597633