ATI Cards, clocks, 3D, crashes/corruption, and more
by
, 02-08-11 at 03:28 AM (6062 Views)
Background: I am a fan of Nvidia hardware and drivers in general, but in my gaming box, I went from having a single 9800GTX+ 512MB in 2008 to dual/SLI of them in 2009, back down to one in 2010 (I permanloaned one to a friend), and that friend ended up giving me an ATI HD 5750 1GB this year in return (apparently after RMAing his XFX 9800GT, they sent him this). I had been having problems in Arma2 with the infinite "Receiving" bug, which someone told me could be due to a texture memory problem, so I decide to try the 1GB ATI card to see how well it would work. Results have been mixed. Mostly because I now get ATI-specific crashes instead of Nvidia ones...You used to be able to hear the old GTS250 spin up when it went into 3D mode, but it didn't really give a lot of trouble even when it switched back and forth between speeds. ATI cards on the other hand...
The rest of my setup that might be relevant:
1x C2D E8400 (3ghz Penryn) stock speeds
2gb Crucial Ballistix PC6400 stock speeds @ 4-4-4-12-2T settings (WOULD NOT BUY AGAIN, Piece of shit with multiple RMAs, but all testing is obviously currently done with a passed memtest 4.00 )
EVGA nForce 750i FTW
XP 32bit (I like playing old games :-P
1x Asus VW246H (1920x1080) using DVI-D
Anywho, after reading some more posts on AMD fora and other sites google threw at me, I found that some combination of some cards with certain features (dual monitor, aero, windowed mode, dx10, UVD, alt-tabbing) can cause the card's power management to wedge, causing everything from vertical line artifacts, Gray/Black Screen of Death, black flickering, to crashes. Anecdotally, it seems to make sense (although I'm on XP, so I've mostly been looking at switching from idle to UVD to games (see below)).
On ATI HD cards, there are generally 3 speed stepping settings: idle (normal windows 2D), UVD (watching hardware-accelerated media), 3D optimal (full screen D3D/OpenGL). These power settings basically set the core clock and memory clock (and the BIOS will also define a voltage, although in CCC profiles it tends to keep everything at 1.1v). You can modify these either with CCC override profiles (the XML files in the %APPDATA%\ATI\ACE\Profiles directory) or onboard with a tool like rivatuner. On my 5750, with a single monitor, the default clocks are: 157/300 (idle), 400/900 (UVD), 750/1150 (3D). During normal workloads, the video BIOS should detect whether or not it needs to ramp up the clock, and if you keep CCC open you can see how the clock rates jump around while doing things like switching between a web browser without flash content, to one with flash content, or periodic driver polling (like if you start up gpu-z it will bump the clocks to full speed during the probe).
There are several particular workloads that may cause the speed-stepping to wedge.
0. Aero: This is "2D" but using OpenGL compositing. What does the card detect this particular workload as? Well, turning off aero seems to help certain people with instability...(If the card is as brain dead about speed stepping as I am measuring it, then it will continuously try to step between idle and 3D, causing problems (see windowed 3D case below).
1. Return to Idle (2D): In a dual monitor setup with a spanned desktop, there may not be enough clock at 157mhz to sync both CRTCs at idle, resulting in 2D corruption. I see 2D corruption every so often with just a single 1080p 24" screen after the card has been running at UVD clocks, so I've bumped the idle clock to 300/500, and I'll see if it helps.
2. Windowed 3D: This doesn't apply to BC2 specifically, but it applies to other games (in particular, Eve). If you run a windowed 3D app, the card may try to bounce between 2D and 3D clocks as your mouse focus switches, doing bad things(tm). Incidentally, I first noticed problems running FurMark in windowed mode. It stutters like crazy with stock settings. It may help to create an "always-max" profile in CCC (set all clock states to your default 3D clock [700/1150 on the HD 5750, other cards will be higher]) that you toggle before starting a 3D app in windowed mode. People have report bad things(tm) doing windowed 3D while web surfing, for example.
3. Return to 3D from 2D: This workload happens when: starting a fullscreen 3D app for the first time, or, when alt-tabbing back to a full-screen 3D app. All cards have to switch modes so a minor lag and a full screen redraw while things "catch up" is not an issue, but sometimes (many times) this can wedge the driver, depending on the app and the environment (i.e. is there a memory leak?).
Dual monitor environments will make this even more complicated as one screen might be in 2D mode and the other is doing 3D; throw in CrossFire and all bets are off.
It may help to just create a custom CCC profile that will set the card clocks to max and toggle it while doing anytihng 3D related (in terms of gaming); just remember to toggle it back to the enhanced idle mode off after quitting the game (or else you'll be generating a lot of heat and power bills).