Roughly three months have passed since Valve unleashed its Steam digital distribution service (along with a handful of its Source engine-powered games) onto Mac OS X. Following the initial disappointment of early performance results, we'd heard rumblings of Valve working closely with Apple engineers to eke some extra speed out of Snow Leopard's graphics drivers, which until now had never received much optimization for gaming.
With yesterday's release of the appropriately named Snow Leopard Graphics Update, we're beginning to see some encouraging results, while also learning a bit more about the partnership between these two companies. A lengthy post over at the official Steam blog goes into greater detail about the technical hurdles Valve and Apple have come across while trying to turn OS X into a proper gaming platform—and some of the techniques they used to overcome those challenges:
Apple has some very nice performance analysis tools that allow us to diagnose performance issues like the occlusion query stall described above. Using these tools, another area that we've seen the driver spending a significant amount of time is in code which validates floating-point parameters that we hand off to OpenGL to drive the logic in our GPU-side shader code. . . . We have been able to measure performance improvements in this area with the latest software update, but we are anticipating even more speedups in this area if Apple implements the uniform_buffer_object extension and GLSL 1.3 in a future update. With these additional features, we will be able to sidestep this particular CPU bottleneck, allowing us to win back a bunch of CPU time and, ultimately, performance.
In the past, I found Source performance on OS X good enough to avoid the trouble of Boot Camp, though I had to turn down most of the graphics options from their default settings to keep it playable. However, I didn't mind trading visual fidelity for the convenience of not needing to reboot to play a game, to dedicate a large amount of SSD space to a second operating system, and to spend time installing Windows or driver updates. I already have a PlayStation 3 that needs to be updated seemingly every time I turn it on. Unfortunately, graphics adjustments didn't always provide the performance increase I was expecting, suggesting that something in OS X's drivers was keeping the game CPU-limited. Yesterday's Graphics Update and the technical insight from Valve appeared to validate that hunch.
I quickly tested the Graphics Update with Team Fortress 2 on a mid-2010 15" MacBook Pro sporting a 2.66GHz Core i7, a GeForce GT 330M 512MB, 4GB of RAM, and a 160GB Intel X-25M G2 SSD. The graphics settings were left at the default OS X settings, as shown below, with the resolution set to the display's native 1680x1050. I recorded a timedemo of a 24-player match on cp_granary and compared the playback results before and after the Graphics Update. Just for kicks, I ran the same timedemo on a Boot Camp-ed Windows 7 partition with the latest Nvidia 258.96 WHQL drivers. The results are actually rather surprising.
While 40 frames per second might not seem like anything to get too terribly excited about, when you compare it to the 29 FPS from before the Graphics Update, it becomes clear that Valve and Apple are on to something here. That's roughly 38% quicker than Team Fortress 2 was running for Snow Leopard users a few days ago! I should also note that the gaming performance delta between Windows 7 and OS X (at least in Source-engine titles) appears to be closing dramatically, with the GeForce GT 330M hitting a similar ceiling in both operating systems. OS X users are closer to getting to blame Apple's poor GPU options, rather than poor drivers, for their gaming woes.
For what it's worth, the overall experience still seems a lot smoother on Windows 7, but without FRAPS for OS X, I haven't figured out a way to compare minimum framerates. That said, the Snow Leopard Graphics Update boost goes a long way for improving TF2 playability at stock settings.
For Mac users with lower-end GPUs like the GeForce 9400M or GeForce 320M, the Snow Leopard Graphics Update could make the difference between keeping a Boot Camp partition and going native. It's hard not to get excited about this large of a performance gain, especially when taken with encouraging words from Valve about more optimizations being on the way.
As for me, my game plan hasn't changed. I already played Team Fortress 2 in OS X, albeit with a lot of the graphical goodies turned down. This update just means that I can safely play the game without being embarrassed about the eye candy in my screenshots.