Single page Print

Frame-pacing driver aims to revive the Radeon HD 7990

Can a driver tweak prevent microstuttering?

When the Radeon HD 7990 first hit the market back in April, it didn't get the sort of reception one might expect for a graphics card that could easily claim to be the world's fastest. The trouble it encountered had been brewing for quite a while, as PC gamers became increasingly aware of a problem known as microstuttering that plagues multi-GPU configurations like AMD's CrossFire and Nvidia's SLI.

The problem has to do with the fact that frames are rendered in interleaved fashion between the two GPUs. That division of labor ought to work well, at least in theory, but the GPUs can go out of sync, dispatching and delivering frames at uneven intervals. In the worst cases, the two GPUs might dispatch or deliver frames at practically the same time. The second frame doesn't really offer any visual benefit when that happens, although its presence will inflate FPS averages.

Since the 7990 is a CrossFire-on-a-stick product with two GPUs lurking under its expansive cooler, it's prone to microstuttering problems just like a pair of video cards would be.

Although we've been stalking this problem for a couple of years, we were ready to pinpoint it when the 7990 arrived. We conducted a deep investigation, capturing each frame of animation produced by the card and converting them into detailed, frame-by-frame benchmark results and slow-motion videos. We concluded that two Radeon GPUs were often no better than one, visually speaking—and that AMD's thousand-dollar Radeon HD 7990 wasn't really any better for gaming than a much cheaper video card with a single GPU.

There was a ray of hope, though. Our results showed that Nvidia had largely mitigated the worst effects of microstuttering in SLI using a feature called frame metering. Frame metering is what it sounds like: the timing of frame delivery to the display is modified so that new frames are displayed at more even intervals. Generally speaking, this trick works, producing perceptibly smoother animation. AMD supplied us with a prototype driver to use with the 7990 with a similar feature called frame pacing, and we found that it seemed to work pretty well, too. Trouble was, the prototype was based on an older branch of AMD's driver code, and it was in no state to be distributed to 7990 owners.

Now, at the start of August, has AMD finally released a beta driver with frame pacing to the public. You can grab the Catalyst 13.8 beta here from AMD's website. This driver comes from the current code branch and adds a few other new features, including application profiles for OpenGL-based programs, full support for OpenGL 4.3, and a 3-8% improvement in Metro: Last Light performance. We've been playing with an early build of this driver for several days, and we've captured some detailed, frame-by-frame results to illustrate what it does.

This first beta driver does have some limitations. Frame pacing only works with games that use DirectX 10 and 11. AMD tells us DirectX 9 support is coming later, but the company isn't yet willing to say when that will be.

Also, frame pacing support is limited to resolutions of 2560x1600 and below. Those with 4K monitors—who might be, you know, pretty likely Radeon HD 7990 buyers—will have to wait. Frame pacing at 4K resolutions is "in the works," but we don't know when to expect that, either.

We haven't yet had time to try it, but frame pacing should work with cards other than the Radeon HD 7990—and not just the Radeon HD 7000 series, either. The Radeon HD 6000 series should benefit from frame pacing, and even older cards might, too. AMD couldn't give us a generational cutoff point for frame pacing support. Maybe that pair of Radeon X850 XT cards I've been saving will be rejuvenated!

Speaking of things we don't know, AMD didn't have any interest in telling us exactly how its frame pacing mechanism works. We expect that it adds a small amount of latency at some point in the frame delivery process in order keep frame-to-frame display intervals fairly consistent. Beyond that, we don't have specifics about how this goal is achieved. We do know that frame pacing doesn't require per-game profiles. Generally, just turn it on, and it works.

In another bit of happy news, frame pacing is enabled by default for CrossFire setups in the Catalyst 13.8 beta. Users may disable it if they choose via the Catalyst Control Center setting shown above. Earlier this year, after we'd pinpointed the microstuttering problem using FCAT, AMD told us frame pacing would be an option, but not the default, because frame pacing can add a very small amount of lag to the user input-visual response loop. Once we saw how poorly the 7990 performed without metering and how effective the prototype driver was, we lobbied AMD to change its policy. Surely most users would benefit from the smoother animation with frame pacing enabled. Fortunately, it looks like AMD eventually agreed with that assessment.

I'm also pleased to report that I didn't perceive any increases in input lag with frame pacing enabled via the Catalyst 13.8 beta. As for the rest of the experience, well, let's have a look.

The results on the following pages were collected using the same setup as in our original Radeon HD 7990 review. The only exception is that we tested the Radeon HD 7990 with the Catalyst 13.8 beta, both with and without frame pacing enabled. We're comparing against older drivers for the GeForce cards (and for the Radeon HD 7970), so be aware that they may have a bit of a handicap. However, our primary focus will be on the 7990 and frame pacing.