Wednesday, October 15, 2008

for those who think high-performance 3d is easy

The new MacBook Pros ship with two graphics cards: the NVIDIA 9600M GT for games and high-performance tasks and the NVIDIA 9400M for power savings.  Seems pretty sweet, right?  Plug your laptop in and run with a great mobile GPU, unplug it and you've got long battery life.


But wait.  Switching cards isn't automagic.  It's not even just a change in preferences.

As this support page explains, you need to log out!

Think about that.  Nobody obsesses about user-experience like Apple.  Love 'em or hate 'em, every element of using an Apple product, from unboxing on, has been debated, argued, and considered.  Think Steve said "The best user-experience is to have to log out, ensuring that you often have accidentally left the laptop in high performance mode as you get on a cross-country flight.  Perfect!"

Unlikely.  So why didn't they?  Because an army of engineers at two very smart companies -- Apple and NVIDIA -- were unable to ensure switching cards wouldn't cause horrible lockups and system crashes without a full log out.  Switching on the fly would leave dynamic libraries incorrectly bound, state set incorrectly, or whatever underlying problem forced them into a suboptimal user-experience.

Hopefully as more laptops go to heterogeneous GPU setups these kinds will be worked out, but it's yet another reminder of how difficult it is to get high-performance 3d just right.

Even a decade after GPUs started going mainstream.

No comments: