>> Wednesday, August 3, 2011

UPDATE: Certain versions of Mac OS do support OpenCL 1.1, but there's no official announcement. To determine if your system supports 1.1, I recommend that you compile and run the code listed here.

The book is nearly finished, but one reviewer had a significant concern: a handful of my code examples didn't compile on his Mac OS system. But my code wasn't the problem; the problem is that Mac OS doesn't support OpenCL 1.1.

What's odd about this is that Apple was the driving force behind OpenCL 1.0. As I understand it, they told their device vendors to come up with a non-proprietary toolset for accessing high-performance devices like CPUs and GPUs. In response, Nvidia, AMD, and IBM put their heads together and wrote the first draft of the OpenCL spec. But now, over a year after the release of OpenCL 1.1, Mac OS doesn't support the new standard. And I haven't found any plan to support OpenCL 1.1 in future releases.

The same goes for OpenGL, which is a far greater concern than OpenCL. OpenGL 4.1 was released in July 2010, but according to this table, Apple's latest operating system supports nothing higher than version 3.2. In other words, Apple's hardware is capable of high-performance rendering but the OS won't allow modern rendering applications to execute.

Very frustrating. One of the selling points of OpenGL/OpenCL over Microsoft technologies is that they're cross-platform. But if Apple isn't willing to support modern versions of these tools, cross-platform means Windows and Linux only.

So here's my plan regarding the book's example code. I'll release a separate archive for Mac OS users, and the code won't be any different than it is for GNU users. But I'll remove every project that requires OpenCL 1.1 and OpenGL. This may upset Mac users, but there's nothing I can do.