The Hardware
I ordered a 2009 Refurbished Mac Pro with the following specs:
- Two 2.26GHz Quad-Core Intel Xeon "Nehalem" processors
- 6GB (6x1GB) of 1066MHz DDR3 ECC memory
- NVIDIA GeForce GT 120 with 512MB GDDR3 memory
- 640GB Serial ATA 3Gb/s 7200 rpm
- 18x SuperDrive (DVD±R DL/DVD±RW/CD-RW)
I bought a EVGA GeForce GTX 285 video card with the following spec:
- PCI Express 2.0
- 1GB GDDR3 memory
- Two dual-link DVI-I ports
- PCI Express 2.0
- 512MB GDDR5 memory
- One dual-link DVI-I port and one Mini Display Port.
When you go searching for information on video cards and WoW you will generally find people telling you what frame rate or fps they are getting. Often they will recite the frame rate they get in Dalaran and under the best possible conditions of just flying around the world. Unfortunately, this data is not particularly useful for comparing video cards. WoW is a very dynamic game. Different realms and areas have different populations of people on them at different times. Someone on a high population realm will get much lower frame rates in Dalaran than someone on a low population realm.
So my primary test for comparing the cards has been running the /timetest command and taking the flight path from Dalaran to Valgarde Point and from Valgarde Point back to Dalaran. The /timetest command will put on the screen a FPS display and lock the camera while you take the next flight path. After the flight path it will print to the default chat box the minimum, maximum and average fps over the course of the flight. During the flight path monsters, players and other units will not be displayed.
The advantage of this method is it provides a consistent test that doesn't vary by realm population or who happens to be in the area I'm flying through. The average results are very close to each other even on repeated runs.
For configuration I tested all the cards driving an 30" Apple Cinema HD Display at 2560 x 1600. Except where otherwise noted the video settings were set to Ultra with Windowed Mode turned off, and Multisampling set to "24-bit color 24-bit depth and 1x multisample".
No addons were installed for running these tests except as otherwise noted in the tests.
Testing was done with OS X 10.6.2 and WoW 3.3.2 Build 11403.
The Results
Dalaran to Valgarde Point
GT 120 23.38 fps
GTX 285 38.707 fps
HD 4870 40.208 fps
Valgarde Point to Dalaran
GT 120 19.863 fps
GTX 285 35.204
HD 4870 37.245
As you can see the HD 4870 edged out the GTX 285. Which is surprising since the GTX 285 should be the better of the two cards. It's not a huge amount but only a couple of extra frames per second on average. But given the GTX 285 being a tier above the HD 4870 and the extra graphics memory you'd expect the GTX 285 to do much better.
A lot of people out there speculate that the GTX 285's drivers need some work and this would seem to be the case based on this testing.
Windows Truths are Mac Myths or are they?
There are a couple of things that I've found people saying about video card setups and settings that I wanted to test.
Most notable of the "Windows Truths" is the mixing of video card brands in the same machine issue. It's the conventional wisdom that you shouldn't mix video cards of differing brands in the same machine. Apparently, Windows has issues doing this.
I've seen a lot of people say that they believe that this is also a problem on the Mac. However, in my testing, I've seen no problems running the GT 120 at the same time as the HD 4870.
The other "Windows Truth" that I wanted to test was if running in Windowed mode carries a performance penalty on the Mac. It's generally understood that on Windows running without Windowed mode turns off rendering of the desktop and other things and provides a performance increase. I did some testing with the GTX 285 and the HD 4870 to see if this was true. In my testing on the Mac, Windowed mode doesn't seem to have any significant performance impact in most cases.
Oddly the GTX 285 was the only setup that seemed to show a performance difference. Going from Dalaran to Valgarde Point I only got 31.971 fps and the opposite direction 29.794 fps as opposed to the 38.707 and 35.204 fps respectively I got in non-Windowed mode. Even still a 6-8 fps drop seems pretty minor. The HD 4870 saw no such frame drop, so it's possible that again some sort of driver issue is coming to play with the GTX 285's Windowed mode.
Multiple Displays
For all of the test results I've given so far I've only been running one 30" display attached to the machine. However, my typical setup has 2 of these beasts running. I always was under the impression that running the second display was a drain on the performance of WoW so I wanted to test this by comparing the results of running both displays off the same card versus running the display running WoW off the GTX 285 and the 2nd display off the GT 120. I couldn't run both displays off the HD 4870 since the HD 4870 only has one Dual Link DVI port. But I did test the HD 4870 running one display while using the GT 120 for the second display.
What I found was surprising. Running WoW on one display while running nothing but a simple desktop pattern on the second saw virtually no difference between running both cards off the GTX 285 and one off their own video cards. The difference was literally just 10ths of a fps from each other. However, with 2 displays you want to run both in windowed mode. The GTX 285 performance hit from doing this was present still regardless of running the 2 displays on the same card or not.
The HD 4870 on the other hand, performed just as well in windowed mode running one display while the GT 120 ran the other as it had when the GT 120 and the other display were not connected to the machine. Again the differences between the two was literally just 10ths of a fps. For in essence no effective difference.
Dalaran
Dalaran is an area that players often talk about WoW performance with. Primarily because large numbers of other players congregate in the area. As I noted before in my comments about testing methods the number of players will vary from realm to realm and even at any given moment based on what other players are doing. I looked at frame rates with all 3 cards I tested while looking around Dalaran. The one thing I can say is that due to the number of players the frame rates in Dalaran seem to be more CPU bound than they are limited by video cards. All 3 of the cards produced somewhere in the range of 15-20 fps for me varying by where I was looking and the number of players.
processAffinityMask
Since WoW is sometimes more CPU bound than GPU bound at times I've seen a lot of people suggest that plaing with processAffinityMask can improve their performance. According to this forum post on the subject WoW will try to use as many processors as it can as of 3.3.2 so playing with the processAffinityMask will not really do much. For that matter I'm really not clear if this CVAR is even used on the Mac.
I've seen users say that setting the CVAR to 255 drastically improved their performance so I decided to do some testing. I set the CVAR to 255 and ran my time test flying from Dalaran to Valgarde Point and then back again. I found no significant difference between having no processAffinityMask setting and setting it to 255 with the /timetest. But what about looking around Dalaran was their a noticeable difference in frame rates? Again I was still getting rates around 15-20 fps just like I was before. Looking at the Activity Monitor's CPU usage monitor I see that all 8 of my real cores are being used with small amounts of activity from time to time on my virtual cores. No other apps except WoW and the Activity Monitor are running.
This is not surprising since the forum post says that setting it should do nothing unless you want to restrict WoW to specific cores. So I decided I would try setting the mask to 1 which should restrict WoW to running on one core. After changing this value WoW still seems to be using all 8 of my cores. Running /timetest with this setting also produces nearly identical results. So I'm not convinced that this does anything at all on the Mac.
AddOns
So far all of my testing has been done with addons off. But we've been seeing results in Dalaran that suggest that the game is CPU bound more so than it is GPU bound. So what impact does my normal addon setup have on my frame rates? Running my normal addon setup I get about the same frame rates maybe a few fps less looking around Dalaran than I did without. However, the addons are mostly idle at this point anyway. Running the /timetest also should about 3 fps loss when running the HD 4870. Of course how much loss you get will vary with your addon setup and CPU. But I found this interesting nonetheless.
Conclusions
With the HD 4870 currently selling for $349.00 versus $449.95 for the GTX 285. The HD 4870 really is the better bang for the buck. It performs slightly better than the GTX 285 on the Mac.
The upside for the GTX 285 is that with the better supported Windows side drivers if you want to use BootCamp to run Windows games you will get the value out of the card. You won't gain much from the GTX 285 on the Mac side but it should be much better on Windows. The GTX 285 may also be preferred if you're interested in doing work with OpenCL/CUDA on the Mac, but I have done no testing to see how the GTX 285 performs in this respect.
Hopefully EVGA/nVidia will work on the drivers for the GTX 285. But for now HD 4870 is the best card for WoW on the Mac.
Outside of the video card, WoW does seem to be incredibly CPU bound and as such the better CPU you have the better it will perform in general. Particularly when you add things like addons to the mix.