10 June 2007

Video Card Woes

For a while now, I've been rather loathe to play any 3D games due to subtacular performance. Even my own game (EverQuest II) had become unfun and choppy. My home rig isn't that shabby: AMD x64 4000+, 2GB RAM, ATI X800 XT Platinum video card. So why the bad performance?

At first, I thought it was a problem with EQ2. I have all of the source code, but since I don't run Intel at home, VTune was out of the question. So I wrote my own simple sampling profiler (which works pretty well I might add) that basically lets me know where the main thread was spending all of its time. On a healthy system, this is typically in the CPU-bound vertex transformations for animations (side note: don't ask me why this isn't in a shader).

However, that's not what I was seeing. I was seeing the most time spent handing geometry to the card. After doing a little research, I discovered that this might be because the card is overheating and the drivers were decelerating the VPU. I downloaded the ATITool to have a look-see.

Sure enough, my VPU was reaching temps of up to 110 C (zomg!) playing EQ2 in full-screen mode. It was slightly better windowed, but still hotter than hades. The fan was visually observed to be spinning at 100%. I figured I might as well try out Mike Vande Ven Jr's solution before I go drop $500 or more on a new card.

I ripped the card out and used a generous amount of canned air to get all the caked-on dust off the card. There was plenty for a 3-year-old card. Then the heatsink had to come off. This was actually pretty easy: just pop out 3 phillips screws. The old thermal grease was definitely pretty nasty. It appeared to be more solid than it should be:

I used a plastic card to scrape away all of the old grease. Then I used Arctic Silver ArctiClean to remove the rest of the old stuff. It was amazing how much it cleaned up the heatsink and VPU. Unfortunately, I was too excited to take a picture, but here's an idea from a 9800. After I could see myself staring back from the VPU, it was time to apply the new thermal grease. I chose Arctic Silver 5 because it's what all the overclockers use. The instructions say .5-.75 of the size of a grain of rice, and then spread it around with the plastic card:

I threw the heatsink back on, careful to evenly tighten the screws that put the pressure on the VPU. Initial tests are already showing idle temps to be around 15 C lower, with load tests not even breaking 50 C (the idle point prior to the grease change). I'm having issues with a hard drive now, so I'll confirm results later when actually running a game.

Update: I ran around in EQ2 for a while and hit a max temp of 72 C with the fan only spinning at 67%. And this in full screen! Previously it would overheat the card to the point of shutdown. I'd say it worked!