Thursday, June 10, 2010

Mac OS X Steam Performance: Half Life 2 Episode 2, Still Slower than Windows


Vacations are tough for me to come by. Planning around tradeshows is easy, but planning around unannounced product launches, new driver releases, bugs and unexpected discoveries is impossible.

Last year I threw a dart at the calendar and told myself I was taking 10 days off in May and thankfully, there wasn’t too much that was announced while I was gone.


I did miss one rather important thing: the launch of an OS X version of Steam. I actually contacted Valve ahead of time to see if they’d give me access to a pre-release version so I could do a performance article before I left. I got no response. After reading Ryan’s Mac OS X Portal Performance article when I got back, I understood why.



In the process of porting the Source engine to OS X a great deal of performance was lost. To Valve’s credit, games like Portal are more than playable at good looking settings on modern Macs. You’re just better off playing those games in Windows using Boot Camp.



Ryan’s original article used a Hackintosh to compare OS X and Windows performance. Now that 1) I’m back, and 2) Half Life 2 Episode 2 is out for the Mac, I can provide an updated comparison using another reference point between Steam on both OSes.



For this comparison I’m using two systems. The first is a Nehalem Mac Pro with an EVGA GeForce GTX 285 Mac Edition.

Testbed System Specifications

Nehalem Mac Pro (Mid 2009)

CPU 2 x 2.93GHz Quad-Core Nehalem Xeon Processors

Memory 6 x 1GB DDR3-1066

GPU EVGA GeForce GTX 285 Mac Edition (1GB GDDR3)

OS Mac OS X 10.6.3



The second is Apple’s new 2010 13-inch MacBook Pro with a GeForce 320M.

Testbed System Specifications

13-inch MacBook Pro (Early 2010)

CPU 2.4GHz Intel Core 2 Duo

Memory 2 x 2GB DDR3-1066

GPU NVIDIA GeForce 320M

OS Mac OS X 10.6.3



I’m running Boot Camp and a clean install of Windows 7 x64 on both Macs for the comparison. I’m using NVIDIA’s 197.45 drivers for the GTX 285 on the Mac Pro and the latest drivers under OS X. Steam was up to date as of 12:47AM this morning.



I’ll start with the 13-inch MacBook Pro:

Half Life 2 Episode 2 Performance

13-inch MacBook Pro (Early 2010) Mac OS X 10.6.3 Windows 7 x64

1280 x 800 44.2 fps 68.0 fps



At the panel’s native resolution of 1280 x 800 the 13-inch MacBook Pro is playable at high quality settings with no AA/aniso. Episode 2 runs smoothly on the portable Mac. Gaming, albeit dated, is possible under OS X.



Boot into Windows however and you get a 54% performance boost. The game goes from definitely playable to butter smooth. In other words, there’s a perceivable difference.



With the additional headroom of the CPU and GPU in the Mac Pro, I ran our benchmark at higher quality settings and at more resolutions. Under OS X you only get 2X and 4X MSAA options compared to NVIDIA’s plethora of AA modes under Windows, so I stuck with 4X MSAA for this comparison. Anisotropic filtering (16X) was enabled and all settings were as high as possible.



OS X HL2ep2 Settings



Multicore rendering is an option under Windows that isn’t adjustable under Steam for OS X, and despite the setting being greyed out as Enabled it doesn't appear to be enabled under OS X. In our benchmark with multicore rendering disabled both versions of the game eat up around 1.5 out of the 8 cores in the Mac Pro. Enabling multicore rendering in Windows bumps the average up to 2.4 cores, but drops performance at higher resolutions. I’ve provided both sets of results in the graph below so you can see what happens:



The Windows performance advantage with multicore rendering disabled ranges from 62% all the way up to 103%. Even at its worst, the GTX 285 under OS X is fast enough to make 2560 x 1600 playable, but it is noticeably slower than under Windows.



With multicore rendering enabled CPU bound performance goes up around 18%, but we see a drop at more GPU limited resolutions.