OS X Mavericks 10.9.1 and ATI GPUs – Big Problem (Fixed by OS X 10.9.2)

Important Update: Apple’s OS X Mavericks 10.9.2 update (released the last week of February 2014)  fixes this problem for the 2011 ATI GPUs found in many 2011 Macs. Also the new 2013 Mac Pro was apparently never affected by this problem and works correctly on both 10.9.1 and 10.9.2.

Customers on 2011 and 2012 Macs that have ATI GPUs should update their Macs to 10.9.2.

———————————————————–

My biggest fear as a product developer using the OpenCL platform is that Apple would introduce a serious OpenCL platform bug that would break my product and make it unusable. (Fractal Architect is not a newcomer to OpenCL and has made OpenCL rendering available in Fractal Architect 2 since early 2012.)

That has recently happened with the very recent 10.9.1 OS X update for Mavericks but only on Macs that have ATI GPUs in them (which a lot of people have). Macs with OS X Mountain Lion and Lion do not have this OpenCL platform bug. Macs having Nvidia GPUs are not affected. Macs having Intel GPUS are affected but less severely (this compile issued appeared for them in 10.9.0).

It does not make the app unusable, but it does prevent you from using the GPU for OpenCL accelerated rendering.

Important: Rendering on the CPU still works correctly on these Macs with ATI GPUs.

What is this OpenCL Platform Bug ??

The OpenCL platform must build the actual executable machine code that runs on the OpenCL CPU/GPU devices. It does this by compiling the app’s OpenCL source code..

On Mountain Lion, this compile step for this app took about 1 second when targeting the CPU and about 2 – 5 seconds when targeting the GPU. On 10.9.1, the compile time for CPU is unchanged and the compile time for GPU is drastically increased to over 2 minutes or even slower !!

The Apple OpenCL platform is apparently using a watchdog timer to make sure that an OpenCL compile does not take longer than 2 minutes and 20 seconds. If a compile takes longer, the OpenCL platform aborts the compile and a crash occurs inside the OpenCL platform call clBuildProgram().

There are 2 closely related OpenCL platform bugs:

  1. OpenCL compiles for GPUs are now taking several minutes where as before in OS X they were taking several seconds
  2. Watchdog timer’s timeout setting needs to be increased.

What I have done about this bug

  1. I have filed an error report with Apple and have made a Technical support request so that Apple is fully aware of the problem and how it prevents 3rd party programs from using OpenCL.
  2. I am making changes to the app in an attempt to workaround this bug. I don’t know yet if this will work.
  3. I am being truthful to you readers and am not trying to hide this bug. I will report news updates on this situation as Apple permits. (I am a contractually bound Independent Software Developer.)
  4. I will be rewording the App Store product description later today to inform potential buyers of the situation.

If you are a Customer and your Mac is affected by this bug

From Apple’s Mac App Store FAQ:

What is the Mac App Store refund policy?

If you experience a technical issue with an app, first contact the developer of the app for assistance. Their support contact information can be found on the app’s page in the Mac App Store. If that does not resolve the issue, contact Mac App Store Customer Support.

Historical Perspective

This is not the first time that Apple’s OpenCL platform has had serious bugs. When the first Retina Macbook Pros were released in June 2012, the OpenCL drivers for that Mac model were  initially released in a broken state. Apple’s commitment to their products’ quality showed as they fixed the problem quickly. The current state of the Nvidia drivers is extremely stable and fast and I have no known issues concerning them.