OpenGL driver woes.

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.

Advertisements

15 comments

  1. YEP,

    AS YOU SAID, THE OPENGL TEST ENDS WITH A
    FAULT…

    APPLE SERIOUSLY NEED TO FIX THIS FAST!

    THANKS FOR THE INFO. SAVED ME MORE HOURS
    OF FRUITLESS WEB SEARCHING!

    D

  2. Apple emailed me last night to say that my bug report regards the same issue as an earlier bug, and that engineering is looking for a solution.

    With a little luck, a patch will make it into the 10.5.6 update, currently seeded to developers.

  3. I have a late 2007 Macbook with an Intel GMA X3100 GPU. I tried your test app and the result: a crash after a few seconds.

    I have another issue with the Macbook. I can’t run Blender at all. Blender crashes after a few seconds to a few minutes of usage. It feels like it works a bit better after a fresh boot.

    I’ve searched forums for a solution to the Blender problem and it seems (looking at blog comments and forum posts around the web) like bug reports have been sent to Apple but they have not gotten things to work. The problem is apparently Intel’s suck-ass drivers but for some reason they have not acted to fix the problem.

    I feel that this is gross customer neglect from Apple and/or Intel.

    -Riku

  4. Right, Blender doesn’t run at all on X3100 MacBooks.
    As far as I can tell, this same issue causes the crashes, but Blender’s code base is large enough that I haven’t been able to confirm that.
    The current version of Blender also uses single-buffered drawing, which appears to be badly supported by the drivers. There is a copy of the newer SVN version of Blender compiled with preliminary support for double-buffered drawing, but despite running better, the crashes still remain.

  5. Pingback: X3100 OpenGL Driver - Seemingly fixed « swiftcoding

  6. Turns out snow leopard fixes open gl problems and now I am able to run blender on a white macbook with x3100 graphics no problem. It only costed $29 by the way.

    • I am still waiting for snow leopard and ordered it already. but if it really does fix the OpenGL problems…I am sort of sceptical still…it’d just be awesome!!! Thanks for your posts. I have had trouble for such a long time and talked to Ton about this problem and many more people but haven’t found your website until yet. Very good as it describes precisely my problem.

    • Hi Spencer!
      Wooha! I’m waiting for Snow Leo in Poland! Right now i have to use my old PC to work with Blender (one core means 2x slower rendering), which (even patched) crashes under Leopard. The price is also good. I hope there will be no big problems with Snow Leopard on my macbook.

    • Snow Leopard does seem to fix the OpenGL problems with the X3100 – the opengl test doesn’t crash at all, and Blender seems to work stably now as well (ie. no more nightmare “lot’s of coloured triangles and – whoops, crashed your machine” faults).

  7. I stumbled onto your OpenGL test because my X3100 equipped hackintosh Inspiron 1525 running 10.6.2 seemed to be having some OpenGL problems. My xBench score for OpenGL was about 17 or 18, and all the rest of my scores were around 100 or above. I’ve had some experience with xBench, and knew that this OpenGL score appeared to be really low, and the test itself was visibly too slow. Your test seems to run fine, but when the test window is active it spins about 54x per minute, but if the window is in background it slows to 24x per minute. I don’t know for certain, but I think there is something really wrong with the speed of my OpenGL functionality, but all other tests, such as OpenGL Viewer seem to indicate that the hardware drivers are all functional, so I’m not certain what the problem is that has my xBench score so low?


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s