Saturday, February 23, 2008

Fixes for nasty MacBook Leopard Bug In Blender 2.45

UPDATE: The hack here stopped working during a subsequent OS X update, either 10.5.4 or later. A more recent post points to a custom build of Blender 2.47 that works very well on my Intel MacBook.

OS X Leopard is stupendously great in just about every respect (okay, it's a little buggy here and there), but one giant major suck has been the performance of Blender 2.45 on an Intel MacBook (especially with the Intel 950 chip). With the OS upgrade, Blender's interface became horribly slow and boggy. After a bit of usage Blender would start to really grind more and more as it spent more and more time doing garbage collection. It wasn't unusable, exactly, but just kind of crappily poky and weird.

Some folks on the Interweb tracked down the problem to a memory leak of some sort in Apple's openGL driver, or in Blender's use of it. It appeared that Apple might have done something funny in their update. No one had a solution.

I just yesterday (02/22/08) was a post on BlenderNation giving a couple of workaround solutions: one by some funky tweaking through OpenGL Profiler (you'll need Developer Tools installed), and the other by downloading someone's custom build.

The problem appears to be with double buffering gobbling up too many resources, and Blender's use of openGL for the UI. Presumably this will be fixed in the upcoming 2.46 (which looks very good, btw).

I tried the profiler workaround and it WORKS. Whoa. Thank my blessed lucky stars.

I've cleaned and posted up the instructions here, just to help spread the word:

  • Download and install the latest XCode, which includes Apple's developer tools.
  • Start /Developer/Applications/Graphics Tools/OpenGL Profiler
  • Click +. Find your Blender application.
  • Open Launch Settings at bottom of the screen. below and check "Use custom pixel format"
  • Click the Edit... button. In the "Custom Pixel Format" click Attributes.
  • Double-click kCGLPFADoubleBuffer
  • Go back to main window. Make sure Blender is selected in the application pane.
  • Click the Launch button.
The only downside is that the profiler doesn't save all settings between invocations. It remembers that you were using Blender, but loses the custom pixel format stuff. Feh. This is kind of a drag, but if you're using a piece of open source 3d software, you probably have the fortitude to deal with that sort of thing.


Anonymous said...

thanks, it helped me a lot. now I can work much easier with Bledner. I couldn't stand that bug...

you know probably wings 3d. I really like this program. I found that I can't work on vertices (they're invisible). working on edges and faces looks fine. the only way to fix it is to debug the program to my computer. do you know how to do this?it would help me a lot.

ps.i've macbook 2.2 with x3100 graph. card

t said...

Hey! Most excellent. I was really glad to see improved responsiveness. I'm hoping that they put a fix for the issue into 2.46.

I've been using Wings3D a bunch under leopard on my MacBook and it's worked well for me. I had to grab a recent download of it, though. I remember reading that the main author of the program has recently started serious work on it it again, so we may start seeing some good improvements.

Anonymous said...

Yes, but do you have GMA950 graph. card or X3100?
I think is't card failure. Beside do you know how to return to oryginal preferences?is there any hidden file? cause every time I download newer version of Wings I still have past settings. Thank you for your patience.

t said...

My MacBook is version 2.1, and has a GMA 950, indeed. I'm running leopard and Wings3D 0.99.00a.

I found my prefs file at:

/Users/[userid]/Library/Preferences/Wings 3D Preferences.txt

It is indeed the live preferences file. You might have a preference set incorrectly. There are a bunch of preferences which control visibility of elements in wings. I can't think of them off the top of my head.

Try dumping the prefs file and see if that helps.

Anonymous said...

Yes, I changed some preferences (show_edges,false} and now I can see vertices, but can't edges. It's not so bad. With lights on is OK. I can get use to. Could you paste your version of preferences? I want to compare with mine. I want to make more changes, but don't know how and what.
Thank You,

Anonymous said...

I followed the steps described but it only causes Blender to crash immediately on launch. :-(

t said...

Take a look at for an up-to-date way to run Blender on Intel MacBooks.