Deprecation of OpenGL and OpenCL
developer.apple.com
developer.apple.com
I could understand if they were deprecating it in favor of Vulkan. That would be in-line with Apple's history of aggressively pushing forward new standards. But by no means do they have the clout to coerce developers into their own bespoke graphics API that doesn't work anywhere else. All they'll accomplish is further killing off the already-small presence they have in the gaming space.
In fact, they couldn't get their act together, keep with current versions, and as a result titles like Elite Dangerous were being shut down anyway. Reason: OpenGL stuck on an old version without support of compute shaders.
https://forums.frontier.co.uk/showthread.php/424243-Importan...
Embrace. Extend. Then extinguish.
Just Replace. Extinguish.
On PC: Maybe by number of games, but not by the number of players.
(I count Fortnite as an outlier because it's technically not built on a third-party engine)
There's LoL, Dota 2 and Overwatch using their custom engines with huge numbers of players but... What else? CS:GO?
more people than ever do.
What's the "etc"? Are there any other engines in that set?
Go back in time six years ago. What were Apple’s choices?
(1) continue to live with the deficiencies of OpenGL. Remember that, over time, it had come to fail at one of its primary purposes which was to provide efficient access to GPU hardware. Further, sticking with OpenGL would be to accept the leadership of a group that had allowed its flagship standard to falter.
(2) They could marshal their resources and create the better API that the Khronos Group wouldn’t/couldn’t.
They really had no choice. Note that Vulkan wasn’t announced until after Metal was released.
The gripes in this are should really be leveled at the Khronos group, which fumbled their stewardship of OpenGL and, with it, the chance to lead open GPU APIs.
The entire point of Mantle was to be a proof of concept that could be reworked into cross platform API (which became Vulkan), there was plenty of work already being done by Khronos in 2014 (and Apple knew this). And they just went out and released Metal anyway.
I also blame Microsoft for the same thing, early parts of the DX12 docs were taken word for word out of the Mantle docs, that's how similar they are. But Microsoft at least had couple decades of having a competing API, but Apple went out to create a new one for some reason.
It started as an AMD/Frostbyte proprietary API.
https://community.amd.com/community/gaming/blog/2015/05/12/o...
AMD was basically in the same position when they started Mantle (at about the same time, no less.).
They chose differently. Now we have Vulkan. No thanks to Apple.
I'm not sure they should have spun around and dropped Metal for Vulkan once it became available, or slow down the pace of progress til the rest of the market caught up. Doesn't make sense.
Also Apple is perhaps the largest GPU manufacturer in the world, with 200-250M GPUs shipped in 2017. That is 4-5X of Nvidia! Also Apple is investing highly in AI from tools to devices to GPUs, being able to customize may have tremendous value.
It is highly possible that Apple sees owning their interface stack as a means to keep their software-hardware warchest a couple years ahead of the competition. Which in mobile has been paying off of the last 5 years, as they constantly have crushed all others by 2-3X.
What developers will do is go out of thier way to support iOS and supporting the Mac is just a side benefit. Just like almost every printer company supports the Mac as a byproduct of wanting to support iOS.
This may sound crazy, but remember there are billions of iOS devices out there in the world, and I don't think X boxes plus windows game machines count in the billions.
Its true Apple hasn't won the hard core gamer market, but they are no longer the niche player that had to cater to windows users.
There should do, albeit not for gaming but most of the office software is Windows with DirectX support. You won't be playing on, though.
Oh wait, you can't.
GL should always work for the simple case, but instead you need to rewrite to avoid bugs in its many layers. And once you have Vulkan/Metal, industry-specific wrappers are better than the impossible to debug procedural GL junk.
But it's also more difficult for the lay programmer to use as well.
Granted, this may also be true for OpenGL.
One of the reasons this has been so feasible has been the fact that the engine (MOAI) uses GL ES to manage the framebuffer itself - giving the same look and feel on all platforms the host runs. This has been, honestly, revolutionary in terms of building a single app that runs everywhere.
This now becomes more complicated because the engine has to be modified for Apple platforms to use Metal, and represents another fork/splinter in the unity of the host itself.
I wonder if their decision to use a non-standard graphics API is due to them wanting to make this style of development a lot more difficult in the future - i.e. are Apple passively antagonizing the cross-platform framework builders in order to establish an outlier condition for their platforms? The cynic in me says yes, of course this is what they are doing ..
In the AAA game space you mean. Else, in the casual gaming space, iOS is perhaps the most popular platform -- and the new integration effort means all those games will be able to run on macOS as well soon.
They work fine for me -- both as implementation and as gameplay.
>Almost all of them are built around exploiting weaknesses in the human psyche to convince people to spend money and become addicted.
I think you confused casual gaming with Zynga or something. I was referring to smaller, non-AAA megatitles. Could be anything from a platform game, to Angry Birds, Monument Valley, Threes, Letterpress, racing games, RPGs and so on...
The point is that the kind of games that thrive on the app store tend to be exploitative and low quality. Desktop gaming isn't immune from that, but it's a dramatically better platform.
Also a lot went wrong when Apple opened up for ads and in game purchases.
But not every game are gambling. Fortnite seems to be doing great. And that shouldn't be a pay to win game.
The games that grow out of the app store ecosystem are games like Candy Crush, Clash of Clans, Clash Royale, etc. I'm not saying good games don't exist on the platform, I'm saying the platform is conducive to low quality games. Almost all of the great games on the app store did not grow out of the platform.
There are plenty great games. It help to source them from a gaming community you trust.
I guess that explains why they are on Apple devices in the first place.
And even in cases where they are available, for example Macbook Pros, the cost difference involved in stepping up from an integrated GPU to an entry-level dedicated card is greater than the cost of buying an Xbox or PlayStation.
That of course depends on the definition of "gaming space".
The classical desktop gaming space, Apple was never a player in it. They simply don't care about it. Hence why they treated OpenGL on macOS the way they did.
But: Apple is arguably the biggest player in the mobile gaming space. That's what they care about. So instead of spending a large amount of money to attract a low number of AAA desktop titles to their OS they just tap into the vast (game-)developer base that they already have in iOS and make it easy for them to deploy and sell their games on macOS too [1].
The move to deprecate OpenGL and OpenCL in favor of Metal makes total sense in that regard.
[1] https://techcrunch.com/2018/06/04/apple-is-bringing-the-best...
I would very much prefer games to use Metal on macOS (Starcraft2 is much smoother on the same hardware)
https://developer.android.com/about/dashboards/
And good luck finding a Vulkan version beyond 1.0, with extensions that work properly across all mobile devices.
http://vulkan.gpuinfo.org/vulkansupport.php#android_devices
You get a spectrum all the way from 1.0.0 up to 1.0.66, with Vulkan 1.1 promised for Android P devices only.
To be fair, the overwhelming majority of game shops develop on engines, and leave the engines to deal with the platforms. Unreal Engine, Unity, etc, support Metal, among others.
I’ve witnessed plenty of last minute builds be saved by a Unity game dev on a Mac just flipping their renderer settings.
Microsoft could not care less about OpenGL on Windows. However, it works just fine.
You know why? As soon as you install your video card drivers, your OpenGL implementation is no longer from Microsoft. It comes from AMD, NVidia or Intel, with all needed optimizations for their hardware.
Apple insisted in not allowing this and doing the OpenGL implementation themselves (which was always crappy and outdated).
Had they allowed the GPU vendors the ability to provide their own implementation, this would have been a non issue.
(Many toolkits, like Qt and Cocos2d, also use ANGLE on Windows for OpenGL functionality)
The same is true for plenty of other “Pro” apps on Windows.
https://knowledge.autodesk.com/support/3ds-max/learn-explore...
The real question is why would a GPU vendor go through the expense of creating and supporting such an implementation when Apple doesn't even make a computer with slots that you can install their video cards into?
If producing an OpenGL implementation doesn't provide a competitive advantage for selling their products, why would they bother?
Because it is a fact that Apple develops their own drivers. Also, when did you last download a driver update from NVidia for your Mac?
https://arstechnica.com/gadgets/2018/02/vulkan-is-coming-to-...
Article is about Vulkan, but briefly mention Apple's own outdated OpenGL stack.
http://renderingpipeline.com/2012/04/sad-state-of-opengl-on-...
From 2012. Which means it is still accurate, given how out of date drivers are.
There are more references, you can look it up.
> The real question is why would a GPU vendor go through the expense of creating and supporting such an implementation when Apple doesn't even make a computer with slots that you can install their video cards into?
They still have GPUs, which can be Intel, AMD or NVidia depending on year and model. Just because they are soldered on, doesn't mean they don't need drivers.
EDIT: Some more research seems to indicate that there are drivers developed by NVidia for the NVidia Quadro GPU line.
In case you missed the news, only DirectX is supported on UWP and store apps.
To the point that Microsoft has their own port of Angle.
https://docs.microsoft.com/en-us/windows/uwp/gaming/compare-...
https://github.com/Microsoft/angle
So unless they change their mind, say goodbye to ICD drivers on Windows as well.
I run Windows at home, but wouldn't if it went Store-only. For me, an open platform is the only thing Windows had going for it.
Legacy software, blah, blah, blah. No legacy software runs forever, and least of all on Apple platforms. Who cares.
(Of course that does not mean that the OS needs built in OpenGL support. If you can convince an old game to use some kind of OpenGL-Metal compatibility wrapper without needing access to the game's source code or support from the original developer, that's fine with me as well.)
People in FOSS friendly circles really don't get the games development culture, IP management or the contracting business related to ports.
Requiring developers to use an API locked to a particular platform feels pretty hostile to me. Doesn't matter if that API isn't perfect, or even far from it.
* Being deprecated does not mean that things will suddenly stop working. It will take a few more releases of macOS before this can be removed.
* Next to MoltenVK there is MoltenGL, which is an implementation of OpenGL ES 2.0 that runs on (edit) Metal [1]. That indicates it's at least feasible to wrap OpenGL applications in the future if necessary.
Furthermore, Apple wil drop support for all Macs that don't support Vulkan in this release of macOS [2]. Ouch, what a waste.
[1]: https://moltengl.com/moltengl/
[2]: https://9to5mac.com/2018/06/04/macos-10-14-mojave-supported-... (anything from before 2012 does not support Vulkan)
You would be correct, but not on OSX.
So like DirectX?
Plenty of big 3D/CAD/etc players? In lots of creative areas, the Mac dominates still (despite stories about people moving to Windows nobody's going anywhere, where nobody = quite few creatives overall).
Besides, with Metal they'll target iOS as well, and that's a huge platform, and where most of the profits are for mobile.
[1]: https://msdn.microsoft.com/en-us/library/windows/desktop/ff8...
Which AFAIK they’re free to do on MacOS as well, they just don’t seem to bother since Apple was doing that work for them
The difference is that OpenGL is designed to be easy for humans. glBegin(GL_TRIANGLES); glVertex3f(x, y, z)...; glEnd(); you can't beat that. The issue is that it hard for the driver to optimize.
That's where Metal and Vulkan come into play. These are low level APIs, sacrificing user friendliness for a greater control over the hardware. It is designed for 3D engines, not for application developers.
Look into what it takes to write the minimum viable OpenGL program, written using non-deprecated routines, that puts a textured triangle on the screen. It sucks. On top of that, OpenGL is slow and gives you no way to create programs with smooth performance -- for example, it will randomly recompile shaders behind your back while you are trying to have a smooth frame rate.
1990s-style OpenGL was good for the time. In 2018, OpenGL is a pile of poop.
What? I've written commercial games with opengl on osx/ios and my experience doesn't show that at all.
That's fine for a "hello triangle" program, but quickly becomes ridiculous for anything approaching a serious engine. There's a reason that glDrawArrays() has been around since 1995 (and part of the core specification since 1997).
http://nehe.gamedev.net/tutorial/creating_an_opengl_window_(...
I wonder how much of this stuff is deprecated now.
https://store.steampowered.com/news/37575/
If game developers -- and game engine developers -- targeting OpenGL now are in the process of moving to target Vulkan, and if MoltenVK ends up offering better performance on macOS than Apple's legendarily anemic OpenGL stack, isn't this likely to be better in the long run despite the short-term pain?
There's also the problem that a large chunk of OpenGL learning materials out there are hopelessly outdated, and IMO actively detrimental to learning modern graphics techniques. Judging from the types of questions I see around various forums, it seems to be VERY hard for newcomers to distinguish between "bad" and "good" OpenGL tutorials. In general, there's too much cruft for learners to focus in on the stuff that is actually part of "good OpenGL".
If this is the case, it's only because there is much more material and tutorials written. Not because OpenGL is simpler or better.
I know because I watch noobs stumble with OpenGL all the time over at ##opengl in freenode. It usually takes them a week or two to get a triangle on screen, and they're super confused about semi-opaque concepts such as "vertex array objects" (they're well documented in the OpenGL wiki, but reading documentation seems to be out of fashion).
It would certainly help (them) if they had a good knowledge about 3d graphics in general before stumbling into OpenGL. But if they had, they'd be able to do it using Vulkan or Metal with no great difficulty. OpenGL isn't at all better here.
OpenGL is not deprecated, releases slowed down since there isn't really much new stuff to add, but 4.6 was released just last year after Vulkan.
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.
https://github.com/KhronosGroup/WebGLNext-Proposals/tree/mas...
Apple has so little to gain over Vulkan by developing its own API but so much to lose by not adopting Vulkan (gaming companies may actually prefer developing games on the cross-platform Vulkan to target macOS/iOS devices, too, at the same time, instead of using DirectX).
https://github.com/KhronosGroup/WebGLNext-Proposals/pull/11#...
However, there's no real writeup of what the API will end up remotely looking like right now, so it's too early to speculate. WebGPU's original prototype used Metal's shading language for instance (since the prototype came from WebKit), but any real standard probably will probably change things up.
I believe the webgpu-servo folks have, in the mean time, begun working on lower level components/libraries to target Vulkan/DX12/Metal, for use by systems like WebGPU. Sort of like ANGLE by the Chrome team, but for newer GFX APIs.
TL;DR absolutely nothing is fleshed out at all yet and it seems plenty will probably change
Maybe Nadella will push for Vulkan support on Xbox, or maybe Xbox will die off, who knows. Unless one of those happens, DirectX is not going away. As soon as consoles come into the equation, you are stuck writing a PAL (or using an existing engine that already has one) because they use proprietary APIs and that's unlikely to change.
It's not ideal, but that's the reality. Apple is following the idiotic status quo, but it's not fair to single them out for it (that being said, at least Microsoft supports Vulkan and OGL on one of their platforms - but the 3rd-party driver developers are mostly responsible for the great support).
Same applies to Photoshop and other relevant 2D and video editing professional tooling.
Professional game studios always favored hardware specific APIs that allows them to extract all the juice up to the last drop.
For example, OpenGL ES 1.0 + Cg on the PS3 was an adoption failure, with everyone adopting the PS3 specific APIs.
If I wanted the best possible speed, latest features ect. I would write multiple back ends in things like CUDA.
I choose OpenCL because I can develop code on my Macbook pro, and run that on a computer with a discrete GPU on a different operating system, and have a fair amount of confidence that it would work.
:/
That was the promise, but it never became reality. When writing kernels for real-world applications, OpenCL breaks down in numerous ways. The result is usually neither stable, nor portable, nor fast and a pain to work with. There was never OpenCL support for 3rd party developers on iOS.
You say you are writing OpenCL kernels on a MBP and they are portable, maybe you got lucky? Lots of comments I see on the deprecation on OpenCL seem to come from people who like the idea of having OpenCL (and its promises, which are awesome), but never had the awful experience of actually working with it.
I remember the open letter from the Blender developers on the sad state of OpenCL support on Mac (http://preta3d.com/os-x-users-unite/) from 2015. Some GPU vendors (AMD, Intel and Qualcomm) continued to put resources to better OpenCL support over the last couple years, but maybe too little, too late? It seems at least Apple had already given up on OpenCL by the time of this letter (and moved their resources completely to Metal), as nothing new has happened for OpenCL since then.
I'd prefer if we had a working OpenCL on many platforms. As we don't, especially not on Apple platforms, the step of deprecating it is regrettable, but at least honest.
It would be great to find out later that Apple had reached out to the Blender dev team with a strategy on how to move to either Metal or a Vulcan/Metal adaptor.
Personally I was thinking about getting an eGPU just for Blender use. It would be a shame to have to leave macOS just to run Blender.
I'm not an OpenCL programmer by trade, but I have dabbled in it (Wrote an AES decrypter in OpenCL) and I have never found this proposition to be true.
Apple loved HTML5 when they had to kill Flash and get web developers to support mobile, but then as soon as it became a threat to the App Store, Safari's compliance came to a screeching halt and now Safari is in last place, even behind Microsoft's browsers, in HTML5 support.
OpenGL was useful when it was a way to potentially lure people away from Windows, but as soon as Apple had the clout to not care about it and force develops onto its proprietary API, that's what happened.
I almost prefer old-Microsoft's honesty about wanting to kill FOSS, rather than this blatant acknowledgement of FOSS as a tool to be ripped off to improve one's ecosystem dominance and then promptly thrown aside. Makes you wonder what's going to happen if and when Apple no longer needs Clang/LLVM, or, hell, Unix.
Well, to be honest, Apple has always been quite consistent here. They created their own ecosystem and made interoperability with other systems as difficult as possible, at software and hardware level. So this announcement is quite in line with that.
So there will be little "forcing" into their proprietary APIs - the few 3D developers that actually tried to support Mac will kill the platform off because nobody is going to rewrite major piece of software to use Mac-only Metal. Too much effort for little to no benefit.
Basically Apple just killed off any 3D support they may have hoped for on Mac. Including any hopes on anything VR related (so much Oculus/Vive fans hoping for seeing a Mac support - it is now even less likely than Linux one ...).
There is a 3rdparty port of Vulkan and I am sure there will be 3rdparty OpenGL drivers (e.g. Mesa) but nobody is going build a CAD system on top of that, IMO. Without official vendor support it is just too risky.
RE: HTML5 - Apple simply made a mistake. Jobs famously said that they don't want to support native apps because bad apps could bring down cellphone towers.
MacOS gaming is not only not dead it’s flourishing rapidly. Take a trip to Steam shop. You will find a massive amount of games are made for MacOS and the numbers are growing rapidly since Apple lost interest into OpenGL. But then MacOS has reached a 10% of the desktop market making it much harder to ignore than in the past when it barely reached 3%. With iOS dominating mobile revenue , Appple is the undisputed king of gaming for over a decade now.
But, don't those engines use OpenGL on the backend? They need some sort of interface to the GPU, and AFAIK, OpenGL is it for both Mac OS and Linux.
Edit: Yes, at least Unity does. I can't find an authoritative source on Unreal.
https://forum.unity.com/threads/opengl-core-backend-default-...
Edit2: Found Unreal info...they switched to Metal in 4.14. So, you're OK if you develop games for Mac with Unreal.
I guess it's plausible that Unity will do the same going forward.
A well designed graphics engine never ties itself to a platform however popular that platform may be. Whether that platform may be a OS , a graphics API or any kind of SDK.
At least Unreal is neither a game engine nor a graphics engine , its an entire ecosystem of tools , APIs. Unreal even extends C++ to facilitate for GC and some rudimentary reflective abilities.
So there are a ton of things go on, from low level to very high level.
Overall MacOS develpers have been very quick into embracing Metal for new projects and so did Unreal. Which is no big suprise because Metal gives access to both MacOS and iOS which is a variant/fork of MacOS.
Of course bootcamp is not the only solution, there is also wine like solution and vm solution but Bootcamp is by far the most popular for gaming.
Another reason to stick with bootcamp is that games may offer a MacOS support but are not quick to fix bugs and resolve issues usually becayse they develop on windows and use crossplatform APIs to port to MacOS using Windows and not MacOS devs which can cause all sort of issues that can take time to resolve.
If you're Pixelmator or Apple's own Final Cut team, sure, use Metal. For anyone else that wants to make a living, supporting multiple platforms is a given, so you won't pay the slightest attention to this deprecation notice.
Actually, most game developers do that. Pretty much every game (even ones with a custom, "non-AAA" engine) will have some kind of abstraction layer for dealing with graphics API's. Writing an additional backend for Metal is not a monumental undertaking -- it's a tiny fraction of the overall code you will end up writing. Also game consoles, for the most part, use their own graphics API's which are not portable to desktop PC's.
I'm sure the Mac version of these tools aren't used by any studio with more than 5 people, but independent contractors, small studios, and individuals working at home really benefit (or else they wouldn't have bothered to port and maintain up until now).
On the other hand, they definitely made it harder for developers to create a new game engine.
However, where it will have major effect is availability of any professional software. Such as CAD. Mac has always been a pain in the ... platform to support because of their weird "Unix but not quite" ways of doing things and now there will be no justification to support it anymore, especially in the OSS sphere. E.g. I fully expect things like KiCAD (and also the commercial Eagle which has Mac support) PCB CAD to disappear from Mac as soon as OpenGL is removed. Nobody has resources to rewrite such software to use Apple-specific Metal. Another such project is OpenSceneGraph, a large building block for 3D visualization and simulation applications.
[1] https://m.facebook.com/permalink.php?story_fbid=214641282559... [2] https://news.ycombinator.com/item?id=17066846
As one of the creators of Direct X at Microsoft commented when Metal was first announced, "Why help Android siphon off their game developers by propping up OpenGL?"
https://web.archive.org/web/20140606055700/http://www.alexst...
Maybe the forced Metal usage (however shitty it is to remove support for an open standard) will increase macOS ports of games.
But in reality, 50% games will still be a wine bottle
Apple always removes stuff which looks untimely or just plain stupid (headphone jacks, optical drives, USB/Firewire ports, optical in & out, rosetta, APIs, etc).
Always the same outrage has happened, but things normalize then. People, companies adapt, hell does not freeze over, company doesn't go bankrupt.
I feel that maintaining OpenGL & OpenCL felt like a burden to Apple. We all know that Apple likes to control everything from hardware to user interface, and GPU drivers are one of the most notoriously complex, overprotected part of the software stack. In the OpenCL world compilers and other stuff (I don't remember the terms clearly, sorry) also gets in, and makes everything much more complex.
Maybe this move will help them to slim the drivers to the basic "hardware-software" interface level and build metal and related technologies to their own term on top of this relatively simple interface.
I have a feeling that metal can be directly translated bidirectionally and relatively cheaply to OpenGL (and maybe Vulkan and OpenCL too), so at the end things don't become extremely complex for everyone.
Apple doesn't feel that backwards compatibility is strictly necessary unless things can be translated and made to work with relatively good performance.
As a Linux and Mac user for 10+ years, these are my observations. They may be wrong, technically incomplete or else. Feel free to discuss, debunk, or downvote.
But that doesn't mean we took the best path. There is always an alternative future if x hadn't happened at all. If x hadn't happened, we might be in a better place, rather than accepting it and doing the best we can.
Of course. I didn't mean to say that Apple is designing the best possible future or making the best possible decisions. I'd rather have a future where these technologies are supported as first class citizens by everyone, and I can just cross compile this stuff with virtually no porting or optimization effort, however unfortunately this is not the world we live in right now.
As I said, mine is an observation rather than taking one side.
E.g. for WebGL purposes, all web browsers on Windows emulate OpenGL on top of Microsoft DirectX.
They did, when they adopted OpenGL and OpenCL. Years ago.
Apparently they've decided that those have outlived their usefulness.
Yes, and this was so much against their DNA that it required the chutzpah of a Carmack to get the Apple's CEO to implement the decision.
Apple is and has always been a strict leech on open ecosystems.
They try to build closed proprietary stuff first to lock you to the platform, and when what they build is bested by OpenSource, embrace it and move on to the next opportunity.
They did the exact same thing with BSD: grab a beautiful piece of OpenSource tech, bolt on a metric ton of proprietary closed source tech on top of it, and call the whole thing open source to get love and applause from the OSS crowd.
Techies are essentially a gullible bunch.
Nobody has USB-C stuff everything. Every owner is using a collection of dongles and it is absolutely stupid.
The OLED bar is also stupid.
I just hope my 2015 macbook never gets obsolete because I dislike the newer ones... and yes, I owned one, and I sold t after 2 weeks and got my 2015 back
Who’s going to start working on an OpenGL to Metal wrapper?
Way back in 2006, in CS175, we implemented almost all of the core 1.5 pipeline in C++. Software OpenGL implementations may not be the fastest, but they’re more or less trivial (quaternions, trapezoid-based triangle engine, painters algorithm, z-buffering, texture mapping, bump-mapping, lighting and various shading models), and therefore accelerate-able with CPU and GPGPU SIMD ops.
Also there is no harm in learning to write modular graphics engines with multiple backends, hobbits get to learn how professionals do it.
Finally, if it is just a hobby, then what hobbyists can do best to improve productivity is to use whatever their OS offers out of the box.
Would it be possible for this driver to add OpenGL/OpenCL and Vulkan support to macOS like it is done on Windows? (Or am I completely misunderstanding how this works)
If you have Apple desktop, a laptop, a phone, connected accounts, apps and associated data, maybe a watch or a TV you are fully within the Apple ecosystem. You cannot leave without it costing you major hassle and stress. This might cause surface inconvenience but it's not going to be enough to push anyone out from that ecosystem. Apple has their users where it wants them, and the users are happy.
The precise wording they use seems to indicate a view of dark themed sets as being less colorful. High contrast themes and visibility aiding limitations in theme color use have their places; so too do themes based around darker, more night time, friendly colors. Thinking of a system as having only one true theme, or of light/dark as being full / visually impaired themes is a dangerously limiting misconception.
Also currently Metal and Accelerate are completely unsuitable replacement to OpenCL for Deep Learning ... Not that deep learning on OpenCL was a thing yet but I was adding support to it in my own framework.
Parallel Ports
Floppy Drives
CD/DVD Drives
Older USB, Firewire ports
Network ports
They were the first to remove all this stuff, and everyone was shocked. Now they are doing this with an API. Both Apple and Microsoft have long ago created much more modern, highly performant graphics technologies over what OpenGL offers, and serious vendors support platform-specific APIs most of the time. If it takes Apple to do this and say to the world "wake up, OpenGL sucks," I view that as progress.
Despite, I don't think your OpenGL app will fail to run on Mac any time soon. I suspect it's years away before they actually remove it entirely.
But they do not.
- https://github.com/ROCm-Developer-Tools/HIP - https://github.com/RadeonOpenCompute/ROCm
"CUDA/HC Portable with HIP", "Microsoft C++AMP", "Apple/Khronos OpenCL": https://github.com/ROCm-Developer-Tools/HIP/blob/roc-1.8.x/d...
Should be okay for now.
Can't believe I'll actually have to switch to windows to develop my OpenGL/WebGL games.
Asking because I am not familiar with these libraries.
(as of high sierra python 2.7, bash 3.2, ....)
New thing: DARK THEME, YES, OMG :(
Is apple holding the future back???? Where is the innovation?
They should take a page from Microsoft and adopt an open, cross-platform technology like DirectX.
The First Moribundity was the period in the 1990s when Apple was coasting on the DTP and Photoshop advantage over Windows they had, reducing the features of their desktops and not innovating. Schindler, a smart but ineffective leader, was replaced by Gil Amelio, a star in his prior field but unable to get Apple headed in the right direction. It took Jobs' return to right the ship that time.
The emphasis on thin but less functional and less serviceable laptops, the dropping of OpenGL, the cruft piling on top of OS X to no new net benefit for users, and their coasting on the desktop market all point to this IMHO.
Apple is all about mobile phones, the Apple Watch and air pods right now. The MacBook is barely a blip on their product radar.
My personal impression is that while pre-built PCs are mostly sold to businesses, there is a strong growing trend since a few years to build your own PC from parts. I really do observe that if mobility is not an issue, people now tend to move away from laptops towards self-built PCs (or often rather: let a good friend build one). I don't want to go into the details what advantages these have over laptops, but just mention customizability with respect to requirements (e.g. very silent, very high-power, ...) and repairability.
A small (but only small) contributing factor is that laptops do not have sufficient power for VR, so you really need a stationary PC for VR.
The strongest "dampening factors" with respect to this trend are the growing prices of GPUs, because lots of cryptocurrency miners (in the last years in particular Ethereum) hoard them (but it is my impression that this will somewhat ebb away as soon as attractive ASICs for Ethereum get released) and the growing prices of RAM lately. On the other hand the release of Ryzen made building of PCs with either very high-performance or very good cost-benefit ratio feasible.
A lot of early pcs were kits people built, and I remember pc gaming in the '90s and '00s was also heavily focused on custom built machines.
Cryptocurrency mining has kept the enthusiast hardware market afloat, I have a feeling...
[0]: www.geizhals.eu
Examples:
1070: https://geizhals.eu/?phist=1456548
1070 TI: https://geizhals.eu/?phist=1717563
1080: https://geizhals.eu/?phist=1449277
1080 TI: https://geizhals.eu/?phist=1587606
They tend to refresh in line with corporate cycles, i.e. 18 month to 3 years, from what I see.
You may call me Captain Obvious now. :)
There could be a number of factors that would hurt them, like margin compression, reaching market saturation, etc. All the ailments that Business Schools will warn you about...
However, they (IMHO) have become arrogant and out of touch with their users. VISION is their problem.
They need the MacBooks and desktop Macs to be seen as very desirable, in order to project the "creative people buy Apple" halo over the rest of their products.
come on steve, reinvent death please
Their B.S. is getting out of hand. List of gripes:
1. Heavy handed regulation of app store: This needs intervention from regulatory authorities. Apple has successfully inserted itself between the consumer and producer of apps. It plays kingmaker, and very clearly promotes internal apps to the competition (recent ban of the Steam app is a prime example). It's only legal recourse stems from being ~17% of the mobile hardware market, but from a paid-app developer's perspective, not being on the app-store is a definitive death-knell. It's a clear monopoly in the 'paid-app' space, and others are arguing a monopoly classification on other grounds [1][2]
2. Unreasonable restrictions placed on approved apps - like disallowing non-webkit based browser engines. Restricting API access though user security isn't compromised (dlopen, webgl-2, opencl, vulkan, etc). Restrictions designed to choke-hold potential competitors & restrict user choice
3. Forced licensing of hardware parts for accessory makers (look up the Apple MFI program)
4. Purposeful non-conformance towards industry standards (like OpenGl, Vulkan, WebGl, many, many holes in open-wen compliance). This non-conformance is steeped in monopolistic, unfair-trade-practices psychology to maintain absolute, unfair control over any potential competition.
I hope France fucks them for purposefully slowing down older iPhones/iPads. And hope the FTC, EU regulatory authorities pay heed to app-developers (and consumers) getting shafted by a beast of a corporation.
[1]: http://www.businessinsider.com/apple-monopoly-ubs-steven-mil...
[2]: https://www.pcworld.com/article/3157551/mobile/apple-must-fa...
2. Again, you can use Chrome on a Mac. The App Store is not stopping anyone from using anything, it’s just facilitating certain cases. Microsoft installs its apps on your machine without asking you (and has an App Store). Don’t even get me started on Nintendo. Seriously, you’re complaining about the least worst (commercial) player in this space.
3. Clutching at straws here. No one cares.
4. You mean like OpenGL, and two other OpenGL things. Again, Microsoft DirectX is what?
5. Apple intentionally slows devices down to prevent random shutdowns from peak power draw when the battery has aged. This is a good thing, well implemented, but poorly explained. Apple has paid a PR penalty for its lack of transparency, and having them suffer regulatory punishment for this seems harsh.
Ok, I get it, you hate Apple. But unless you avoid all commercial vendors I don’t think you’re going to find someone that satisfies your peculiarly quixotic requirements.
Of course Apple doing it to force web developers to keep supporting Safari since no one can simply expect iOS users to install Chrome, but it's also benefit open web greatly since it's preserve status quo that we have more than just one browser engine. The day Apple stop doing it would be the day web developers going to abandon support for Firefox too.
Apple has crippled the mobile web since iOS reinvented the category. How many years before the file upload widget worked?
Unfortunately Google has abysmal power over web right now and I cant count how many times I see them cripple experience for Firefox. Now they even outright saying that new Adwords interface only work in Chrome. And AMP only prove how little we can trust Google.
Steam link is weird, but I thought I read somewhere that they would have had to pay Apple 30% of in-app sales.
But long story short is that I am paying them to curate the apps.
Valve tried to explicitly disable purchases through app, but Apple still refused it even if it's would only do streaming.
2. What ?
3. MFi? The greatest invention ever. Now I am assured every single MFi Lightning cable is of quality and decent, instead of the crap USB-C has true into.
4. Industry standards of what? May be Playstation, Nintendo , or Xbox should all forced to be using OpenGL?
Yes apple should be fined for slowing down iPhone. Absolutely! But this. calling of B.S ... is just ... wow .....
And if you don't like or even hate Apple to bits, You can always buy an Android phone. Oneplus, Samsung, and the Vizo are all fairly good in Hardware spec. You have a choice.
Stop developing for Apple products. Stop buying Apple products. Tell everyone you know not to buy Apple products. If enough people protest, they will eventually be forced to change.
If you think Android is really open, think again. Without Google Play Services and Play Store you are basically hosed.
Just don't give Apple any more money until they change.
Er...
So yes, Vulkan is kind of the universal graphics API now.
Nowadays Unreal Engine fill the role very well and can sit on top of any platform easily. Popularity wise , together with Unity have completely destroyed both Metal and OpenGL. Vulkan , stands no chance too. Unreal Engine is also open source and very easy to extend because of Blueprints. Unlike OpenGL , is not a C API trying to shoehorn itself into a C++ dominated world.
I have to use OpenGL 3.3 and I am amazed how badly designed it is. A brief look into Vulkan made even less sense.
I don’t agree with everything Apple does but killing Flash and OpenGL is two of my favorites. My only complain is that they have not done it as aggressively as they did with Flash. If they manage to kill JavaScript and HTML/CSS abominations I will become a hardcore Apple fan.
Unity and Unreal engines are both built on top of APIs such as OpenGL and Direct3D