News for hackers. Stuff that matters.
Re:Apple introduces macOS Mojave by 0x0 on Monday June 04, 2018 @03:38PM (#17231442)
Wow, they are DEPRECATING OpenGL from both macOS and iOS: 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 :-/

Re:Apple introduces macOS Mojave by MrBingley on Monday June 04, 2018 @03:57PM (#17231671)
And 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.
Re:Apple introduces macOS Mojave by electricslpnsld on Monday June 04, 2018 @04:28PM (#17232066)
The deprecation of OpenCL is especially crappy given how heavily Apple were pushing OpenCL back in 2014 or so with the Mac Pros.
Re:Apple introduces macOS Mojave by pjmlp on Monday June 04, 2018 @05:27PM (#17232676)
Apple lost interest in OpenCL after learning Khronos wasn't steering it into the direction they wanted it to go.

For example, Metal compute shaders are C++14 and Khronos only adopted C++ in OpenCL after the beating they took from CUDA, which supported it since the beginning.

Re:Apple introduces macOS Mojave by coldtea on Monday June 04, 2018 @05:51PM (#17232917)
>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.

Well, some people refuse to use non-platform-native lowest-common-denominator libs, so there's that too...

Re:Apple introduces macOS Mojave by greggman on Monday June 04, 2018 @09:53PM (#17234351)
one possibility for cross platform gpu is webgpu. the people working on it seem to be planning to have a c or c++ level standalone library. behind the scenes it will be directx/metal/vulkan

Apple/Google/Microsoft/Mozilla and others are all participating

https://lists.w3.org/Archives/Public/public-gpu/

Re:Apple introduces macOS Mojave by randcraw on Monday June 04, 2018 @05:22PM (#17232615)
Does this imply Apple is planning to continue support for OpenGL informally/externally, the way that X Window support is through xQuartz, perhaps via an external Mesa-based library?

And maybe the same informal/external support model for OpenCL?

Performance will be diminished but not extinguished.

Re:Apple introduces macOS Mojave by thdoeunt34stnoe on Monday June 04, 2018 @06:58PM (#17233398)
FWIW, they've only deprecated it, meaning no new updates. They haven't removed it from the platform. Furthermore, desktop OpenGL seems like it's dead anyway, given that Vulkan has replaced it.
Re:Apple introduces macOS Mojave by Tehchops on Monday June 04, 2018 @04:05PM (#17231791)
Aren'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.

Re:Apple introduces macOS Mojave by Eridrus on Monday June 04, 2018 @04:16PM (#17231928)
People 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.

Re:Apple introduces macOS Mojave by jlarocco on Monday June 04, 2018 @06:05PM (#17233047)
Not 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.

Re:Apple introduces macOS Mojave by jonhendry18 on Monday June 04, 2018 @09:21PM (#17234203)
"At this point even Pixelmator and less well known alternatives use OpenCL, too."

Pixelmator, at least, is based on Core Image, which Apple has probably already moved from OpenCL to Metal.

Re:Apple introduces macOS Mojave by LolWolf on Monday June 04, 2018 @04:58PM (#17232387)
I 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.

Re:Apple introduces macOS Mojave by bitL on Monday June 04, 2018 @04:16PM (#17231926)
People used to buy expensive eGPUs for those workloads to keep them on macOS.
Re:Apple introduces macOS Mojave by mey on Monday June 04, 2018 @06:35PM (#17233263)
Look into either an existing engine to abstract it away or Vulkan.
Re:Apple introduces macOS Mojave by Eric_WVGG on Monday June 04, 2018 @04:19PM (#17231969)
This is just quibbling, but 1) you can write Metal code with Swift as well as Objective-C (and that's not even vendor-locked; I'm doing Swift in Linux right now), and 2) you can write C++ in Objective-C.

I know this isn't what you're really complaining about, though.

Re:Apple introduces macOS Mojave by saagarjha on Monday June 04, 2018 @04:33PM (#17232115)
> you can write C++ in Objective-C

You mean Objective-C++.

Re:Apple introduces macOS Mojave by TillE on Monday June 04, 2018 @05:40PM (#17232806)
The most common pattern I've seen with cross-platform stuff is a small Objective-C wrapper over MacOS APIs, which then gets called like C functions from pure C++ code.
Re:Apple introduces macOS Mojave by pjmlp on Monday June 04, 2018 @05:24PM (#17232648)
Somehow this is directly related to the failure of desktop Linux.

The only successful variants of it, actually do constrain devs with either Web or Java corporate frameworks, with a very tiny subset of native code allowed to take part into the whole game.

Re:Apple introduces macOS Mojave by cat199 on Monday June 04, 2018 @06:22PM (#17233168)
Yes, because GPU computing is mac/windows primarily, and in these cases, primarily for games?
Re:Apple introduces macOS Mojave by shurcooL on Monday June 04, 2018 @04:05PM (#17231786)
I 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.

Re:Apple introduces macOS Mojave by jzl on Monday June 04, 2018 @04:50PM (#17232301)
Agreed it would be nice if there were official Apple support, but FYI there's a project called MoltenVK that implements the Vulkan API on top of Metal: https://arstechnica.com/gadgets/2018/02/vulkan-is-coming-to-...
Re:Apple introduces macOS Mojave by yAak on Monday June 04, 2018 @05:07PM (#17232461)
Apparently Valve shipped a DOTA 2 update a few days ago that is using it:

https://twitter.com/Plagman2/status/1002324195135520768

https://www.phoronix.com/scan.php?page=news_item&px=Dota-2-I...

So that's pretty promising!

Re:Apple introduces macOS Mojave by bla2 on Monday June 04, 2018 @04:08PM (#17231834)
My guess is browsers will just implement WebGL on top of Metal and this will be transparent to web developers.
Re:Apple introduces macOS Mojave by skymt on Monday June 04, 2018 @04:18PM (#17231956)
There's precedent: Chrome and Firefox both implement WebGL on Windows with ANGLE, which translates OpenGL to Direct3D.

https://en.wikipedia.org/wiki/ANGLE_(software)

Re:Apple introduces macOS Mojave by paraboul on Monday June 04, 2018 @04:33PM (#17232112)
And it seems they are working on a more generic library : https://github.com/google/nxt-standalone
Re:Apple introduces macOS Mojave by skymt on Monday June 04, 2018 @04:50PM (#17232309)
Ah, 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.

Re:Apple introduces macOS Mojave by fulafel on Tuesday June 05, 2018 @01:01AM (#17235116)
And 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.
Re:Apple introduces macOS Mojave by greggman on Monday June 04, 2018 @09:55PM (#17234358)
Re:Apple introduces macOS Mojave by nomel on Monday June 04, 2018 @04:20PM (#17231973)
WebGL is a browser level API that does not require native driver support like OpenGL. They're related only in semantics.
Re:Apple introduces macOS Mojave by sparky_ on Monday June 04, 2018 @10:24PM (#17234470)
Mentioning this in a couple different places, but consider Molten (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.
Re:Apple introduces macOS Mojave by electricslpnsld on Monday June 04, 2018 @04:09PM (#17231841)
> 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.

Re:Apple introduces macOS Mojave by obl on Monday June 04, 2018 @04:11PM (#17231869)
I'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.
Re:Apple introduces macOS Mojave by DonHopkins on Monday June 04, 2018 @04:49PM (#17232287)
If they weren't already doing that just for the performance improvement itself.
Re:Apple introduces macOS Mojave by agumonkey on Monday June 04, 2018 @04:55PM (#17232362)
Apple will easily ease the transition. That would be way too stupid to kill partners that way.
Re:Apple introduces macOS Mojave by pjmlp on Monday June 04, 2018 @05:05PM (#17232453)
No, because contrary to HN beliefs about 3D APIs, in the real world most business already added Metal backends to their rendering engines.
Re:Apple introduces macOS Mojave by hellofunk on Monday June 04, 2018 @06:16PM (#17233124)
Exactly. Not sure why everyone thinks their favorite Mac apps are using OpenGL anyway. They probably moved to Metal a long time ago — it is much better.
Re:Apple introduces macOS Mojave by pfranz on Monday June 04, 2018 @11:43PM (#17234822)
I'm sure everyone's favorite /exclusive/ Mac apps are probably using Metal.

I'm guessing you haven't used apps like Maya, Nuke, or Houdini. They were all written in the mid-90's on IRIX machines and later ported to Linux, Windows, and OSX. Surprisingly, 3d performance isn't always big goal of their's. My guess is the core features don't sell new versions, so even though they have annual releases those things don't get much attention. They'll have drawing issues and transparency sorting problems for years. Same with audio bugs.

Their Mac support was spotty and irregular until the past 5-10 years.

Re:Apple introduces macOS Mojave by SCdF on Tuesday June 05, 2018 @03:32AM (#17235619)
Re:Apple introduces macOS Mojave by saagarjha on Monday June 04, 2018 @04:31PM (#17232096)
OpenGL has just been deprecated. It hasn’t been removed.
Re:Apple introduces macOS Mojave by yreg on Wednesday June 06, 2018 @03:15AM (#17244980)
It will be in a year.
Re:Apple introduces macOS Mojave by nsxwolf on Monday June 04, 2018 @05:25PM (#17232661)
Won't there just be OpenGL drivers as a separate download? Is this any different than when they removed Java?
Re:Apple introduces macOS Mojave by Lio on Monday June 04, 2018 @05:05PM (#17232452)
Does anyone know how this will effect Blender in the short term?
Re:Apple introduces macOS Mojave by eddieh on Monday June 04, 2018 @05:11PM (#17232494)
When Metal was introduced for the Mac they had the Modo devs at WWDC and they ported their code to Metal in like a week or two. Not really the apocalypse.
Re:Apple introduces macOS Mojave by vvanders on Monday June 04, 2018 @05:15PM (#17232529)
Wat.

Metal and OpenGL two completely different APIs, shading languages and probably a whole host of other things.

I've ported my fair share of things from fixed-function to programmable shader pipelines and you'd be effing naive if you think you can do that in a couple weeks on anything more than a toy demo.

Re:Apple introduces macOS Mojave by rys on Monday June 04, 2018 @05:31PM (#17232722)
I worked with a AAA gamedev recently who had written a Vulkan renderer for their game to demo quality level in 2 weeks. It all depends on existing level of abstraction for the rendering API and shading language (and to some extent assets), and how much performance and efficiency you’re happy leaving on the table.
Re:Apple introduces macOS Mojave by vvanders on Monday June 04, 2018 @05:37PM (#17232783)
> demo quality level in 2 weeks

Getting pixels on the screen and shipping something to end users are to very, very different things, 90/10 rule and all that.

Vulkan also has the benefit of multiple platforms supporting it so you're not doing all that work for a minority(which is what OSX is in the graphics space) platform.

Re:Apple introduces macOS Mojave by seba_dos1 on Monday June 04, 2018 @05:43PM (#17232828)
If you already had an architecture with replaceable renderers, especially with DirectX 12 one already written, adding Vulkan one will be a matter of just a few weeks. If you hadn't, it will be much tougher.
Re:Apple introduces macOS Mojave by eddieh on Monday June 04, 2018 @07:07PM (#17233446)
Well Modo isn’t a toy.
Re:Apple introduces macOS Mojave by seandougall on Tuesday June 05, 2018 @01:01AM (#17235115)
The question is, how many devs did they have working those two weeks (and what resources did Apple provide to help them)?

I develop an OpenGL-based video engine for a live media playback application, which is very nearly as simple an application of OpenGL as you can expect to find in the real world, and there's no way I could expect to port it to Metal in a week or two singlehandedly. Like others have mentioned, it's a completely different paradigm, not just a matter of changing around some function calls.

That said, I welcome this change with open arms (and secure in the knowledge that legacy code will continue to work for the foreseeable future). OpenGL is a fragmented, brittle, spaghetti-inducing pile of global state. Rewriting in Metal isn't anywhere near as small a project as Apple claims, but I'm perversely looking forward to it -- I'll be very happy to have OpenGL in my rearview mirror.

Re:Apple introduces macOS Mojave by vortico on Monday June 04, 2018 @05:44PM (#17232840)
Nice marketing campaign here a couple years ago. 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.

Re:Apple introduces macOS Mojave by exikyut on Monday June 04, 2018 @11:05PM (#17234661)
Oh this is hilarious.

You could put money on how long this page gets forgotten and left up.

Re:Apple introduces macOS Mojave by linuxlizard on Monday June 04, 2018 @05:52PM (#17232928)
Aw, crap. MacOS is deprecated!? How could you!?
Re:Apple introduces macOS Mojave by vortico on Monday June 04, 2018 @06:00PM (#17233008)
Yup, you will see a deprecation notice when booting MacOS now.
Re:Apple introduces macOS Mojave by jblow on Monday June 04, 2018 @04:37PM (#17232159)
Good 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.
Re:Apple introduces macOS Mojave by yulaow on Monday June 04, 2018 @04:40PM (#17232183)
It 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.

Re:Apple introduces macOS Mojave by obl on Monday June 04, 2018 @04:57PM (#17232373)
Sometimes 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.

Re:Apple introduces macOS Mojave by AnIdiotOnTheNet on Monday June 04, 2018 @06:22PM (#17233169)
It's ok man, we can just keep piling on more turtles.
Re:Apple introduces macOS Mojave by ecuzzillo on Friday June 08, 2018 @05:19PM (#17269786)
I do get the impression the new more-explicit APIs help somewhat with that, no?
Re:Apple introduces macOS Mojave by pjmlp on Monday June 04, 2018 @05:09PM (#17232480)
All 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.
Re:Apple introduces macOS Mojave by treeform on Monday June 04, 2018 @05:06PM (#17232459)
What do you think about them forcing you to use Swift or Objective-C for this? Forcing you to use languages that use ref counting and object oriented pointer tables that are traversed at runtime? How much of the gains does objc_msgSend eat up? I though you are against such things?

How ugly would the JAI code to need to be to interface with this?

I wish they had a simple Metal C API, but their new API comes with a bunch of Objective-C baggage.

Re:Apple introduces macOS Mojave by thdoeunt34stnoe on Monday June 04, 2018 @07:08PM (#17233450)
Have you actually used the API? When it comes to submitting geometry and textures (some of the biggest bottlenecks), it's exactly the same as in C. You pass a pointer to your buffer of bytes and they get copied to the GPU for you.
Re:Apple introduces macOS Mojave by astrange on Monday June 04, 2018 @07:57PM (#17233781)
When you're calling any library, that simple C call invariably goes somewhere else inside the library itself. For OpenGL this is because there's always hooks for introspection, or because the GPU driver wants to implement something themselves, etc. For many other libraries it's just because people don't feel like they've written "production quality code" unless it goes through a bunch of hoops and ends up in some method with five underscores in the name.

In Metal the Obj-C abstraction is part of the design and used to eliminate any other abstraction people would want to introduce. The objects you get back from the API are implemented straight in the GPU vendor code, and the debug tools can swap the methods out for extra validation, recording, etc.

Re:Apple introduces macOS Mojave by seandougall on Tuesday June 05, 2018 @01:27AM (#17235190)
Any overhead coming from objc_msgSend is minuscule compared to the gains from things like better serialization of GPU-bound tasks and not having to synchronize repeatedly with the CPU.

If you're worried about refcounting, use ARC (which you have to with Swift anyway). First, the compiler is very smart about optimizing away retain/release/autorelease calls whenever it can. Second, when those calls do have to be made, they're implemented using vtables, and never hit objc_msgSend() in the first place.

Re:Apple introduces macOS Mojave by pjmlp on Monday June 04, 2018 @05:32PM (#17232737)
I think it is about time industry relevant OS vendors start to move away from C, kudos to Apple.
Re:Apple introduces macOS Mojave by ChuckMcM on Monday June 04, 2018 @04:06PM (#17231804)
Pretty 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.
Re:Apple introduces macOS Mojave by overcast on Monday June 04, 2018 @04:29PM (#17232077)
How exactly did it not work well? Windows is THE gaming platform for PC.
Re:Apple introduces macOS Mojave by ChuckMcM on Monday June 04, 2018 @06:05PM (#17233044)
It 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.

Re:Apple introduces macOS Mojave by hellofunk on Monday June 04, 2018 @06:21PM (#17233162)
OpenGL is a real-time graphics API, not an offline render system used by renderfarms. I have never heard of movies or special effects rendered in OpenGL. The first major renderer was Renderman, the only game in town for years, and it has nothing to do with OpenGL.
Re:Apple introduces macOS Mojave by thdoeunt34stnoe on Monday June 04, 2018 @07:03PM (#17233426)
You are correct. However, many in-studio tools are written in OpenGL. These tools are used to model objects and layout lighting, scenes, etc. by artists. They are written in OpenGL, usually on Linux. (Source: I work with several people who formerly built these tools for well-known studios like DreamWorks and Sony.)
Re:Apple introduces macOS Mojave by hellofunk on Tuesday June 05, 2018 @03:57AM (#17235730)
Of course, but that’s not what we are discussing. The context for my comment was regarding offline rendering and render farms.
Re:Apple introduces macOS Mojave by untog on Monday June 04, 2018 @04:35PM (#17232134)
That's like saying roads are THE travel surface for cars.
Re:Apple introduces macOS Mojave by stdbrouw on Monday June 04, 2018 @04:38PM (#17232163)
... yes?
Re:Apple introduces macOS Mojave by rspeer on Monday June 04, 2018 @04:44PM (#17232232)
Not sure what you're saying is changing on the server -- people are going to go from not using OpenCL to not using Metal.

Everything is CUDA. Everything depends on the shitty unstable software designed by a hardware company (Nvidia). This sucks and I hope someone can disrupt it, but Apple has no influence in the field of GPU computing.

Re:Apple introduces macOS Mojave by threeseed on Monday June 04, 2018 @04:52PM (#17232325)
When did Apple ever have influence in the field of GPU computing.

And I work in data science and nobody is using their own laptops when you have AWS.

Re:Apple introduces macOS Mojave by rspeer on Monday June 04, 2018 @07:09PM (#17233462)
I didn't say they did. My claim is that Apple deprecating OpenCL is a straightforward and uninteresting thing; it's a company that has no influence on GPU computing getting out of the business of a technology that also has no influence on GPU computing.

I work in data science too, and who cares about laptops. Desktop computers with GPUs, SSDs, and a lot of RAM are what you need. You can thoroughly bling out the hardware and the entire computer will still cost less than your monthly AWS bill to access a GPU. (This is all getting pretty irrelevant to Apple, though, who doesn't make such computers.)

Re:Apple introduces macOS Mojave by moonbug on Monday June 04, 2018 @05:01PM (#17232415)
Whatever criticisms can justifiably be levelled against nvidia, having a bad software stack isn't one of them.
Re:Apple introduces macOS Mojave by rspeer on Monday June 04, 2018 @06:55PM (#17233369)
Most of the field of machine learning is irreproducible right now because you can't not use CUDA, but you can't promise that it will work the same on anyone else's computer, or that it will work six months from now.
Re:Apple introduces macOS Mojave by zerr on Monday June 04, 2018 @04:50PM (#17232296)
Actually, it worked well for MS - back in the day, most of the games in the industry were done in DirectX. And to be honest, DirectX/3D was the only option if you wanted to have Vulkan-like low-level access to GPU.
Re:Apple introduces macOS Mojave by threeseed on Monday June 04, 2018 @04:37PM (#17232160)
Apple isn't a large gaming platform and they aren't used as server farms.

So I can't imagine this is going to hurt at all.

Re:Apple introduces macOS Mojave by galad87 on Monday June 04, 2018 @03:42PM (#17231492)
The writing was on the wall since they stopped updating it (OpenGL) 5 years ago.
Re:Apple introduces macOS Mojave by 0x0 on Monday June 04, 2018 @03:44PM (#17231513)
True, 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...

Re:Apple introduces macOS Mojave by numbsafari on Monday June 04, 2018 @03:53PM (#17231617)
I 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.

Re:Apple introduces macOS Mojave by ryandrake on Monday June 04, 2018 @04:21PM (#17231992)
Yep, 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...?
Re:Apple introduces macOS Mojave by stuaxo on Monday June 04, 2018 @05:51PM (#17232921)
Years.

EDIT: As a follower of 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.

Re:Apple introduces macOS Mojave by ngrilly on Monday June 04, 2018 @03:50PM (#17231590)
I guess John Carmack is sad today (he advocated early for OpenGL on Mac).
Re:Apple introduces macOS Mojave by wsc981 on Monday June 04, 2018 @04:52PM (#17232329)
I 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.
Re:Apple introduces macOS Mojave by washadjeffmad on Monday June 04, 2018 @04:11PM (#17231871)
John Carmack probably knows the Apple of today is not the Apple of yesteryear.
Re:Apple introduces macOS Mojave by DonHopkins on Monday June 04, 2018 @04:26PM (#17232037)
If the Apple of today would just include a couple more buttons on their mice, John Carmack would probably be happier.
Re:Apple introduces macOS Mojave by vvanders on Monday June 04, 2018 @05:20PM (#17232597)
Say 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.

Re:Apple introduces macOS Mojave by dictum on Monday June 04, 2018 @04:21PM (#17231989)
So 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.

Re:Apple introduces macOS Mojave by atonse on Monday June 04, 2018 @04:00PM (#17231706)
I'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?
Re:Apple introduces macOS Mojave by obl on Monday June 04, 2018 @04:03PM (#17231762)
OpenGL 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.

Re:Apple introduces macOS Mojave by yulaow on Monday June 04, 2018 @04:28PM (#17232064)
What 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/

Re:Apple introduces macOS Mojave by matthewmacleod on Monday June 04, 2018 @04:05PM (#17231794)
There's at least one implementation that I'm aware of in MoltenGL (https://moltengl.com/moltengl/), though that's only ES.
Re:Apple introduces macOS Mojave by gnufied on Monday June 04, 2018 @04:41PM (#17232190)
There is also MoltenVK https://github.com/KhronosGroup/MoltenVK for Vulkan on metal...
Re:Apple introduces macOS Mojave by Reason077 on Monday June 04, 2018 @05:35PM (#17232766)
"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.

Re:Apple introduces macOS Mojave by cerberusss on Wednesday June 06, 2018 @04:12AM (#17245263)
Careful with that. A number of security fixes make it to El Cap, but I don't think all of them do.
Re:Apple introduces macOS Mojave by ryandrake on Monday June 04, 2018 @04:18PM (#17231959)
I 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.
Re:Apple introduces macOS Mojave by moosingin3space on Monday June 04, 2018 @05:35PM (#17232763)
If 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

[2]: https://github.com/KhronosGroup/MoltenVK

[3]: https://github.com/Chabloom/VulkanOnD3D12

Re:Apple introduces macOS Mojave by pjmlp on Monday June 04, 2018 @05:17PM (#17232558)
> “write once, run on all major platforms” graphics code.

This was never true for game consoles, regardless of urban myths regarding OpenGL support.

Re:Apple introduces macOS Mojave by ryandrake on Monday June 04, 2018 @05:28PM (#17232689)
Fine. All major desktop, laptop, and mobile platforms not including game consoles. Still, more portable than any other existing alternative.
Re:Apple introduces macOS Mojave by ggregoire on Monday June 04, 2018 @04:34PM (#17232126)
What does that mean for games like League of Legends running on OpenGL? (https://engineering.riotgames.com/news/trip-down-lol-graphic...)
Re:Apple introduces macOS Mojave by shurcooL on Monday June 04, 2018 @04:43PM (#17232223)
Riot 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.

Re:Apple introduces macOS Mojave by matthew-wegner on Monday June 04, 2018 @05:00PM (#17232409)
Certainly 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)

Re:Apple introduces macOS Mojave by s73v3r_ on Monday June 04, 2018 @04:58PM (#17232388)
The smaller scale ones are generally using an existing engine like Unity or Unreal, which handles Metal support.
Re:Apple introduces macOS Mojave by TillE on Monday June 04, 2018 @05:46PM (#17232861)
Generally, 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.
Re:Apple introduces macOS Mojave by jamesgeck0 on Monday June 04, 2018 @05:57PM (#17232974)
How 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.

Re:Apple introduces macOS Mojave by wsc981 on Monday June 04, 2018 @04:46PM (#17232254)
Perhaps 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/

Re:Apple introduces macOS Mojave by Angostura on Monday June 04, 2018 @04:56PM (#17232363)
I guess an eventual port to Metal, like WoW.
Re:Apple introduces macOS Mojave by pknopf on Monday June 04, 2018 @04:27PM (#17232057)
> Wow, they are DEPRECATING OpenGL from both macOS and iOS

How does this effect Qt iOS applications?

Re:Apple introduces macOS Mojave by pjmlp on Monday June 04, 2018 @05:10PM (#17232489)
It doesn't, because they are migrating to an universal 3D backend, away from a pure OpenGL one.
Re:Apple introduces macOS Mojave by pknopf on Tuesday June 05, 2018 @10:50AM (#17238168)
Do you have more info on this? When is it expected to be done?
Re:Apple introduces macOS Mojave by zerr on Monday June 04, 2018 @04:42PM (#17232210)
macOS apps as well...
Re:Apple introduces macOS Mojave by bitwize on Monday June 04, 2018 @04:36PM (#17232150)
OpenGL 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.
Re:Apple introduces macOS Mojave by zeroDivisible on Monday June 04, 2018 @04:03PM (#17231747)
What's the consensus on Metal? How does it compare to OpenGL?
Re:Apple introduces macOS Mojave by shurcooL on Monday June 04, 2018 @04:28PM (#17232069)
You 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.

Re:Apple introduces macOS Mojave by andybak on Monday June 04, 2018 @04:54PM (#17232344)
To 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)

Re:Apple introduces macOS Mojave by nteu0893nt4ue on Monday June 04, 2018 @07:44PM (#17233702)
So 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."
Re:Apple introduces macOS Mojave by ksec on Tuesday June 05, 2018 @03:11AM (#17235552)
I don't think that is quite accurate. But you will have to ask a professional game developer for better judgement. Comparatively speaking.

Vulkan, you need to know exactly what you are doing. There are little to no handhelding. You are trying to squeeze out every last 10% of performance in exchange for lots more development time. You need to write a hell a lot more code to do something what you previously thought were simple.

OpenGL is higher level that should be compared to Direct3D 10, not 11. As a matter of fact I will go about saying compare to Direct 3D 9. And unless you are a OpenGL zealot, any sane game developers would have told you Direct X 9 already exceed OpenGL in most way.

Metal is offering what most of Vulkan can do and making it even easier then OpenGL.

Honestly I don't get / understand why all the backlash. OpenGL is deprecated, and it simply means Apple won't be updating OpenGL anymore. Stop asking every god damn year. They have been shipping other deprecated library and API for years! OpenGL is developed in such a way that no one really cares. And designed by committees for maximum backward compatibility. And if you want your App on iOS, you will have to use Metal anyway.

Re:Apple introduces macOS Mojave by zeroDivisible on Monday June 04, 2018 @05:12PM (#17232505)
Thank you for explanation. I don't do any graphics programming, besides few toy projects with OpenGL, but my understanding was that one of it's benefits was portability (for a varying definition of "portability").

That's why I wasn't sure what Metal is offering instead.

Re:Apple introduces macOS Mojave by pjmlp on Monday June 04, 2018 @05:16PM (#17232544)
Except they aren't portable at all for game consoles.
Re:Apple introduces macOS Mojave by tpush on Monday June 04, 2018 @05:25PM (#17232652)
Most of the game devs I follow on Twitter expressed a positive opinion on Metal, particularly over Kronos' Vulkan and of course everyone(that actually has to develop with it) hates OpenGL.
Re:Apple introduces macOS Mojave by chc on Monday June 04, 2018 @04:29PM (#17232071)
To my understanding, the consensus is that it's, y'know, fine, but nothing particular to recommend it over Vulkan. The main problem people seem to have with it is that it feels unnecessary, like Apple being incompatible for the sake of being incompatible.
Re:Apple introduces macOS Mojave by nteu0893nt4ue on Monday June 04, 2018 @07:46PM (#17233710)
Didn't Apple try to work with Krohnos to make Vulkan, but they were taking so long, that Apple just gave up and made Metal and shipped it before Vulkan was finished?
Re:Apple introduces macOS Mojave by pjmlp on Monday June 04, 2018 @05:15PM (#17232524)
Much better.

A 3D modern API that acknowledges the time of pure C APIs is long gone, with C++14 as shading/compute language, providing math, 3D models, materials, fonts, textures support.

Whereas in OpenGL you are stuck with fishing for libraries, multiple execution paths depending on the extensions and bugs, compiling and linking shaders at runtime without library support, C style APIs and a plethora of deprecated APIs.

Re:Apple introduces macOS Mojave by ovao on Monday June 04, 2018 @04:33PM (#17232118)
Metal is a lower-level API, somewhat similar to Vulkan or Direct3D 12. OpenGL supports driver extensions that can be used to reduce overhead in a similar manner to Metal, but this is largely a moot point when it comes to OpenGL on macOS, as many such extensions are simply not available.
Re:Apple introduces macOS Mojave by taburet on Wednesday June 06, 2018 @09:08AM (#17246784)
They also sneakily deprecated the sub-pixel font rendering, so the "Use LCD font smoothing when available" option will be gone from the preferences.
Re:Apple introduces macOS Mojave by nikisweeting on Tuesday June 19, 2018 @09:27PM (#17351698)
More info on this for the interested: https://twitter.com/siracusa/status/1004143205078597633
Re:Apple introduces macOS Mojave by sparky_ on Monday June 04, 2018 @10:24PM (#17234471)
Mentioning this in a couple different places, but consider Molten (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.
Re:Apple introduces macOS Mojave by stevedekorte on Monday June 04, 2018 @05:21PM (#17232611)
Will this effect Safari (and other browsers) supporting WebGL on OSX/iOS?
Re:Apple introduces macOS Mojave by protomyth on Monday June 04, 2018 @04:17PM (#17231940)
Doesn't Core Image use the OpenGL Shading Language, so is that going too?
Re:Apple introduces macOS Mojave by pjmlp on Monday June 04, 2018 @05:18PM (#17232584)
That 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.

Re:Apple introduces macOS Mojave by martin1975 on Monday June 04, 2018 @07:10PM (#17233473)
the 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?
Re:Apple introduces macOS Mojave by briandear on Monday June 04, 2018 @09:06PM (#17234141)
You can add CD ROM, the diskette drive, SCSI, ADB, FireWire and the LaserWriter to that. How dare they!
Re:Apple introduces macOS Mojave by martin1975 on Monday June 04, 2018 @09:18PM (#17234195)
Notch 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.

Re:Apple introduces macOS Mojave by BugsJustFindMe on Monday June 04, 2018 @10:31PM (#17234497)
> 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.

Re:Apple introduces macOS Mojave by somethingwitty1 on Tuesday June 05, 2018 @04:05AM (#17235774)
It 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.
Re:Apple introduces macOS Mojave by BugsJustFindMe on Tuesday June 05, 2018 @07:37AM (#17236710)
Notched phones have gained screen space, not lost it. Without the notch, the new screen area around the notch would not be screen area at all.