Are OpenGL and OpenCL supported on Apple silicon?

OpenGL is deprecated for new development, and Apple's docs no longer even acknowledge the existence of OpenCL. However, many legacy MacOS apps contain modules written in those languages, and they have been building with Xcode and running on Intel Macs just fine.

I need to know if they are also tacitly supported on M1 Macs, and if so, whether there is a known kill date.

Replies

Hi,

OpenGL is deprecated since years now : macOS Mojave (2018), but no kill date is known. But yeah, it works on M1 (natively for arm64 apps or via Rosetta for x86 apps with some performances drawbacks).

I can't assure that it the same for OpenCL.

Note that "new" app technologies (like Catalyst for example) does not work with Open GL.

Thanks, Mukizium.

I know that the OpenGL implementation for MacOS has been stagnant for years, nevertheless it has provided a convenient way for me and many others to build simple portable apps without re-coding in Apple's proprietary languages (or MS DirectX, which would be far worse). Even for the subset they have implemented, Apple has not always respected the standard, nevertheless the workarounds have been quite bearable.

Apparently OpenCL is not dead yet either. I know a guy whose multiplatform app, that uses OpenCL for heavy computations, seems to be running fine on M1 Macs. He even told me Apple's implementation is less buggy than nVidia's. It is odd that Apple, the actual creator of OpenCL, should not even mention it once on their main or developer websites. Scared to appear old-fashioned, I guess.

Obligatory "OpenGL and OpenCL were deprecated in macOS 10.14 and may be removed in the future, please use Metal"

Yes, OpenGL and OpenCL still run on Apple Silicon for now.

  • Would be nice to get more clarity on that from Apple. The "may be removed in the future" is, however, good encouragement to ditch Apple for my own work. It was a decent ride coming from IRIX, but I have zero desire to target any proprietary API from anyone ever.

Add a Comment

I am using OpenCL with success on M1, however there is an interesting issue which is that (unless rosetta is used), it appears there is no way to target the CPU. My application uses OpenCL heavily, and normally targets the CPU for some operations and the GPU for others. This pattern does appear to be broken on M1, from what I can tell. If anyone has an explanation of what is going on here I'd love to hear it.

This is really disappointing. What the hell is Metal? IBM, AMD, Intel, and NVidia use OpenCL... I agree with the poster who said that Apple helped develop the OpenCL standard and now seems to have dropped it without any real notice to developers or explanation why.