We have discovered what we believe to be a bug in OS X Mavericks specifically on newer Macs. Apple started using Intel’s new Haswell processor in the MacBook Air in June, the iMac in September and the MacBook Pro in October. When you build for either Windows or Linux from OS X, any images you dragged into your project are converted to BMP format. The bug we discovered (which we have reported to Apple – RADAR case 15546907) results in a banding of the converted graphic.
Here’s a before and after example:
While this bug may be fixed by Apple in an update to OS X Mavericks, we have a workaround and a long term solution. The immediate workaround is to compile for Windows from an OS that is not OS X Mavericks running on a Haswell-based Mac. If you have Windows running on a virtual machine on your Mac, even if it’s Haswell-based, that will work. For the longer term, instead of converting to BMP, we are going to convert to PNG instead. This will solve the problem since it’s only an issue with BMPs. Another benefit is that PNGs are substantially smaller than BMPs. For example, with the example images above, the BMP is 1MB while the PNG of the same image at the same size is only 128K. We will likely make this change to PNGs in a release early next year.
In the meantime, for those of you with Haswell-based Macs that are compiling for Windows, you at least have a workaround. If Apple doesn’t fix the bug soon, we will have a permanent fix early next year.