I recently upgraded to a new MacBook (white, early 2008), and overall the transition has been very smooth, the first few weeks going without a hitch. Then about three weeks after purchasing the machine, all my OpenGL-based programs started to crash, completely at random. Some programs would run fine, others would crash immediately, and the rest would run for somewhere between 30 seconds and 10 minutes before crashing. Crash 3-4 programs in a row, and the whole machine would freeze up, requiring a force restart to recover.
After a week spent digging in vain through my code, hoping to find a problem that only surfaced on an integrated GPU, I decided it must be either driver or hardware. Much experimentation showed that the crash only occurred in applications that sourced OpenGL vertex data from both vertex arrays and vertex buffer objects during the same frame, and I was able to build a small, reproducible test case. Two overnight diagnostic sessions at the Apple store had yielded precisely nothing, but on my third trip, the test case convinced them that the Intel integrated X3100 graphics card was at fault, and they decided to replace the motherboard.
After a quick three day turnaround, I fired up the spanking new motherboard, only to discover that the problem still remained. *sigh*
Next stop was to file a bug report with Apple, armed with the knowledge that this bug only affects my machine, and wasn’t caused by the hardware. I sent them crash reports, test case, detailed explanations, and judging by experience, I will probably receive a form email sometime next year along the lines of “engineering believes your issue has been fixed in OS X 10.6 Snow Leopard, which is available for $129”.
A few days ago, I happened to be replacing the internal hard drive, with a larger, faster drive (320GB, 7200 rpm seagate – positively flies). After installing the OS to the new drive, I decided to try out test case – before running software update. Guess what, no crash.
Turns out the bug must have been introduced in the 10.5.5 update, as it isn’t present in the version of 10.5.4 which shipped with my machine. This information has also been filed with the bug report, so if we are extremely optimistic, we can expect a fix in the next version.
Anyway, to cut a long story somewhat short, if you have a Mac with the Intel GMA X3100 graphics part, don’t install the 10.5.5 update, and if you have upgraded and are suffering crashes, downgrade back to 10.5.4.
If you want to test your own machine, you can download opengl_test.zip (~12KB, includes program and source). Run the enclosed executable for somewhere around 30 seconds, and if you are running 10.5.5 on an X3100 GPU, it will crash. Please post back a comment with your result.