Frame Pacing for CrossFire
AMD has finally released the 13.8 driver that introduces frame pacing for AMD CrossFire. Come see how our results have changed!
When the Radeon HD 7990 launched in April of this year, we had some not-so-great things to say about it. The HD 7990 depends on CrossFire technology to function and we had found quite a few problems with AMD's CrossFire technology over the last months of testing with our Frame Rating technology, the HD 7990 "had a hard time justifying its $1000 price tag." Right at launch, AMD gave us a taste of a new driver that they were hoping would fix the frame pacing and frame time variance issues seen in CrossFire, and it looked positive. The problem was that the driver wouldn't be available until summer.
As I said then: "But until that driver is perfected, is bug free and is presented to buyers as a made-for-primetime solution, I just cannot recommend an investment this large on the Radeon HD 7990."
Today could be a very big day for AMD – the release of the promised driver update that enables frame pacing on AMD 7000-series CrossFire configurations including the Radeon HD 7990 graphics cards with a pair of Tahiti GPUs.
It's not perfect yet and there are some things to keep an eye on. For example, this fix will not address Eyefinity configurations which includes multi-panel solutions and the new 4K 60 Hz displays that require a tiled display configuration. Also, we found some issues with more than two GPU CrossFire that we'll address in a later page too.
New Driver Details
Starting with 13.8 and moving forward, AMD plans to have the frame pacing fix integrated into all future drivers. The software team has implemented a software based frame pacing algorithm that simply monitors the time it takes for each GPU to render a frame, how long a frame is displayed on the screen and inserts delays into the present calls when necessary to prevent very tightly timed frame renders. This balances or "paces" the frame output to the screen without lowering the overall frame rate. The driver monitors this constantly in real-time and minor changes are made on a regular basis to keep the GPUs in check.
As you would expect, this algorithm is completely game engine independent and the games should be completely oblivious to all that is going on (other than the feedback from present calls, etc).
This fix is generic meaning it is not tied to any specific game and doesn't require profiles like CrossFire can from time to time. The current implementation will work with DX10 and DX11 based titles only with DX9 support being added later with another release. AMD claims this was simply a development time issue and since most modern GPU-bound titles are DX10/11 based they focused on that area first. In phase 2 of the frame pacing implementation AMD will add in DX9 and OpenGL support. AMD wouldn't give me a timeline for implementation though so we'll have to see how much pressure AMD continues with internally to get the job done.
Enabling Frame Pacing…by Default
Since that April release of the HD 7990 and today, I have had dozens of calls with AMD about their hardware, drivers and my stance on them. Even though I was told over and over again that I was wrong and that our results weren't really indicative of what end users were seeing, I stuck to our testing methods and my hands-on, real world testing experiences. When AMD promised this driver for us in the summer I was told that frame pacing would be an option you could enable in the driver but that it would be disabled by default. The reason was that they believed the old way of doing things had benefits that other users wouldn't want to give up.
Things have changed a bit.
Starting with the release of the Catalyst 13.8 beta driver and going forward, you will see a new option under the 3D settings menu called Frame Pacing. That option will be enabled by default. Why the sudden change? It would seem that after doing some more testing AMD finally agreed with us: there was no reason to NOT have it enabled! Leaving frame pacing disabled did not improve input latency and the offset of the problems of runt frames finally won over.
So other than a bit of pride and a feeling of "I told you so" floating around the office, what does it all mean for the gamer? What has changed in our experiences and metrics? That is what the rest of our story is going to deal with through a set of benchmarks and discussions.
Test Setup and What to Watch For
Testing Configuration
The specifications for our testing system haven't changed much.
Test System Setup | |
CPU | Intel Core i7-3960X Sandy Bridge-E |
Motherboard | ASUS P9X79 Deluxe |
Memory | Corsair Dominator DDR3-1600 16GB |
Hard Drive | OCZ Agility 4 256GB SSD |
Sound Card | On-board |
Graphics Card |
AMD Radeon HD 7990 6GB AMD Radeon HD 7970 3GB CrossFire NVIDIA GeForce GTX TITAN 6GB NVIDIA GeForce GTX 690 4GB |
Graphics Drivers |
AMD: 13.4, 13.8 (beta) NVIDIA: 320.xx |
Power Supply | Corsair AX1200i |
Operating System | Windows 8 Pro x64 |
What you should be watching for
-
Radeon HD 7990 13.4 vs HD 7990 13.8 – This is the biggest thing to check for and it will tell you how much improvement is made in the new 13.8 frame pacing driver. Look for more consistent frame times, thinner bands of color on those graphs.
- Radeon HD 7990 13.8 vs GeForce GTX 690 – AMD likes to make claims about the "fastest graphics card" with the HD 7990 but I have never agreed with them. Does this change things in favor of AMD?
Frame Rating: Our Testing Process
If you don't need the example graphs and explanations below, you can jump straight to the benchmark results now!!
If you aren't familiar with it, you should probably do a little research into our testing methodology as it is quite different than others you may see online. Rather than using FRAPS to measure frame rates or frame times, we are using an secondary PC to capture the output from the tested graphics card directly and then use post processing on the resulting video to determine frame rates, frame times, frame variance and much more.
This amount of data can be pretty confusing if you attempting to read it without proper background, but I strongly believe that the results we present paint a much more thorough picture of performance than other options. So please, read up on the full discussion about our Frame Rating methods before moving forward!!
While there are literally dozens of file created for each “run” of benchmarks, there are several resulting graphs that FCAT produces, as well as several more that we are generating with additional code of our own.
The PCPER FRAPS File
While the graphs above are produced by the default version of the scripts from NVIDIA, I have modified and added to them in a few ways to produce additional data for our readers. The first file shows a sub-set of the data from the RUN file above, the average frame rate over time as defined by FRAPS, though we are combining all of the GPUs we are comparing into a single graph. This will basically emulate the data we have been showing you for the past several years.
The PCPER Observed FPS File
This graph takes a different subset of data points and plots them similarly to the FRAPS file above, but this time we are look at the “observed” average frame rates, shown previously as the blue bars in the RUN file above. This takes out the dropped and runts frames, giving you the performance metrics that actually matter – how many frames are being shown to the gamer to improve the animation sequences.
As you’ll see in our full results on the coming pages, seeing a big difference between the FRAPS FPS graphic and the Observed FPS will indicate cases where it is likely the gamer is not getting the full benefit of the hardware investment in their PC.
The PLOT File
The primary file that is generated from the extracted data is a plot of calculated frame times including runts. The numbers here represent the amount of time that frames appear on the screen for the user, a “thinner” line across the time span represents frame times that are consistent and thus should produce the smoothest animation to the gamer. A “wider” line or one with a lot of peaks and valleys indicates a lot more variance and is likely caused by a lot of runts being displayed.
The RUN File
While the two graphs above show combined results for a set of cards being compared, the RUN file will show you the results from a single card on that particular result. It is in this graph that you can see interesting data about runts, drops, average frame rate and the actual frame rate of your gaming experience.
For tests that show no runts or drops, the data is pretty clean. This is the standard frame rate per second over a span of time graph that has become the standard for performance evaluation on graphics cards.
A test that does have runts and drops will look much different. The black bar labeled FRAPS indicates the average frame rate over time that traditional testing would show if you counted the drops and runts in the equation – as FRAPS FPS measurement does. Any area in red is a dropped frame – the wider the amount of red you see, the more colored bars from our overlay were missing in the captured video file, indicating the gamer never saw those frames in any form.
The wide yellow area is the representation of runts, the thin bands of color in our captured video, that we have determined do not add to the animation of the image on the screen. The larger the area of yellow the more often those runts are appearing.
Finally, the blue line is the measured FPS over each second after removing the runts and drops. We are going to be calling this metric the “observed frame rate” as it measures the actual speed of the animation that the gamer experiences.
The PERcentile File
Scott introduced the idea of frame time percentiles months ago but now that we have some different data using direct capture as opposed to FRAPS, the results might be even more telling. In this case, FCAT is showing percentiles not by frame time but instead by instantaneous FPS. This will tell you the minimum frame rate that will appear on the screen at any given percent of time during our benchmark run. The 50th percentile should be very close to the average total frame rate of the benchmark but as we creep closer to the 100% we see how the frame rate will be affected.
The closer this line is to being perfectly flat the better as that would mean we are running at a constant frame rate the entire time. A steep decline on the right hand side tells us that frame times are varying more and more frequently and might indicate potential stutter in the animation.
The PCPER Frame Time Variance File
Of all the data we are presenting, this is probably the one that needs the most discussion. In an attempt to create a new metric for gaming and graphics performance, I wanted to try to find a way to define stutter based on the data sets we had collected. As I mentioned earlier, we can define a single stutter as a variance level between t_game and t_display. This variance can be introduced in t_game, t_display, or on both levels. Since we can currently only reliably test the t_display rate, how can we create a definition of stutter that makes sense and that can be applied across multiple games and platforms?
We define a single frame variance as the difference between the current frame time and the previous frame time – how consistent the two frames presented to the gamer. However, as I found in my testing plotting the value of this frame variance is nearly a perfect match to the data presented by the minimum FPS (PER) file created by FCAT. To be more specific, stutter is only perceived when there is a break from the previous animation frame rates.
Our current running theory for a stutter evaluation is this: find the current frame time variance by comparing the current frame time to the running average of the frame times of the previous 20 frames. Then, by sorting these frame times and plotting them in a percentile form we can get an interesting look at potential stutter. Comparing the frame times to a running average rather than just to the previous frame should prevent potential problems from legitimate performance peaks or valleys found when moving from a highly compute intensive scene to a lower one.
While we are still trying to figure out if this is the best way to visualize stutter in a game, we have seen enough evidence in our game play testing and by comparing the above graphic to other data generated through our Frame rating system to be reasonably confident in our assertions. So much in fact that I am going to going this data the PCPER ISU, which beer fans will appreciate the acronym of International Stutter Units.
To compare these results you want to see a line that is as close the 0ms mark as possible indicating very little frame rate variance when compared to a running average of previous frames. There will be some inevitable incline as we reach the 90+ percentile but that is expected with any game play sequence that varies from scene to scene. What we do not want to see is a sharper line up that would indicate higher frame variance (ISU) and could be an indication that the game sees microstuttering and hitching problems.
Good work Ryan you nerd keep
Good work Ryan you nerd keep the pressure on them 😀
Does the new frame pacing
Does the new frame pacing setting apply to just the Radeon 7000 series parts or will owners of 6000 series (or perhaps older) cards also benefit? I ask as an interested dual 6970 user, and I haven’t really seen anyone talking about anything but 7000 series parts.
Frame Pacing will work on
Frame Pacing will work on 5000, 6000, and 7000 parts. I’m personally using it on my 2 CF 6950s with good results.
No before and after videos?
No before and after videos? No side by side comparisons with the competing solutions? 🙁 The data makes my head hurt
It can be pretty confusing,
It can be pretty confusing, but here’s my understanding of it!
Doing a before and after video would be incredibly difficult because video files are recorded at a set FPS. In a nutshell, think of a metronome ticking.
TICK-one-two-TICK-one-two-TICK-one-two-TICK-one-two-TICK-one-two.
That’s the ideal framerate, a frame at every tick of the metronome.
What was happening was:
TICK-TICK-one-two-three-four-five-TICK-TICK-TICK-one-two-TICK-one-TICK-one-two-three-four-TICK.
Ideally the graphs would show a flat line with no peaks in it, the further they deviate from that flat line, the further they are from that perfect tempo.
The best ‘before’ would be to
The best 'before' would be to check out ryans first piece on the subject.
yes…
There are some good
yes…
There are some good videos there. Check out the far cry 3 one.
> The data makes my head
> The data makes my head hurt.
It is no different than any form of exercise.
* Practice lifting (reading) smaller weight (difficulty) first.
* Do some workouts (skim the Article, and read the suggested backlinks that offer more info) to build up your strength.
* Go back and do more exercise, both when tired and not.
* Practice and take breaks.
That WILL make your Brain hurt, just like exercise makes your Muscles ache; same reason, the same benefit.
Your Brain will hurt less and less as the years pass, and you will be as fast as Bruce Lee (but not at Kung Fu unless you practice that in between reading Technical Materials).
Rob – http://www.youtube.com/user/LowLightVideos
Great work! Now when I get a
Great work! Now when I get a 2560 x 1440 panel I can think about getting a second 7950 😀
So just to be clear, when you
So just to be clear, when you say multi-monitor isn’t fixed, is that only eyefinity? I have two monitors, but only game on one at a time.
So long as eyefinity is
So long as eyefinity is disabled, you're good.
Well, not for a few minutes.
Well, not for a few minutes. 7-mile stage Sportspsychiatrist Dr Steve
Peters, the team participates in friendship visits in which they
meet individuals with disabilities. Strategically placed jets pump out air and suddenly it’s like riding
a bike to be more interested in youu as a person,
during his or her safety. Therefore, cyclists can suffer from Patellofemoral pain or Runner’s knee syndrome.
You exaggerate a little with
You exaggerate a little with the last Sleeping Dogs graphs. The important question is: can a gamer perceive a 5ms variance at below 25ms?? I think the answer is NO.
Sleeping Dogs feels just as smooth on the 7990 as on the 690.
Sounds good Dr. Anon
Sounds good Dr. Anon
Depends largely on the gamer.
Depends largely on the gamer.
And it’s also not just lag,
And it’s also not just lag, screen tearing, latency on input, all kinds of things are affected.
I just the the way the review
I just the the way the review reveals pretty much everything that AMD is still hiding on the new driver. Don’t get me wrong, I’m an APU user; I’m greatly affected by this issue myself… albeit in a small scale.
Great job as always Ryan! Make em bleed!
Hopefully not to long for 3
Hopefully not to long for 3 way and multi monitor support as that was what I was hoping for in the first place.
Good job either way Ryan!
Good job once again Ryan.
Good job once again Ryan. Very good news for Radeon users. Now to test 3- and 4-GPU configs to see if the benefits apply there as well…
Congratulations in proving
Congratulations in proving you had solid data on the issue and in making AMD see this was something they needed to address. Also, congratulations on this amazing in-depth analysis of the new driver. It’s really well laid-out and very thorough. Excellent work. This is the kind of stuff that keeps me coming back to see the content you produce.
now that we have a proper
now that we have a proper crossfire driver from AMD.
curious how well this works on AMD’s mobile side…
Specifically I have a laptop with an A10-4600m APU + 7670m discrete gpu (7660g+7670m)…
will this help my setup?
thanks
I have said it before and I
I have said it before and I say it again: This frame-pacing, frame-pacing, FCAT or whatever you want to call the methodology, was the biggest step in gaming and GPU industry since DirectX 9 came along. And Ryan deserves a lot of credit for picking up from what Tech Report’s has done and giving it an all new dimension, to the point AMD couldn’t ignore it anymore. THIS IS A MAJOR WIN FOR US, THE GAMING COMMUNITY.
I’m glad this is out but, I only wish this were here sooner, when I had my HD4870X2 back in 2008 or my 2x HD4890 in 2009 or my HD5970 in 2010. After 5 years, I was burnt out and move on to a single-GPU card and got the best one I could afford, a GTX780. We can’t have it all, I suppose.
This option does not show up
This option does not show up for the 7950 for some reason. I did a clean install of the driver and I don’t see this option at all for my Radeon 7950.
Do you have two 7950s in
Do you have two 7950s in Crossfire? – It is only a fix for crossfire configurations so I imagine it doesn’t show up in single card setups.
The 7950 is two GPU’s on one
The 7950 is two GPU’s on one board though. If it works for a single 7990 and 7970, then it should also work for the 7950 as it is also a dual GPU card.
The 7950 and 7970 are NOT
The 7950 and 7970 are NOT dual GPU cards the 7990 is basically two 7970s on the same PCB and is the only dual gpu card AMD sells.
Thanks! Totally my mistake.
Thanks! Totally my mistake. The name/numbering schemes for these cards confuse me.
I would really like some
I would really like some clarification on if this works with the 6900 series.
I have this installed, i see the “Frame Pacing” enabled in CCC.
Is this doing anything?
I guess the biggest question
I guess the biggest question is … does Crossfire look smoother to you now when you game?
7xxx only is what I have
7xxx only is what I have heard.
Easy way to test it to go to a benchmark and run it with it off. Pay attention to screen tearing on the background more so then fps and numbers. If you notice the jitter go away when you turn it on and run the same thing, then it works. If not… well… not.
This does make a big
This does make a big difference on my dual 6950s. One easy quick way to notice the difference is to use MSI Kombuster DK11 and turn frame pacing on and off. So that’s good, but really except for a few very recent games this fix isn’t all that great for me. I don’t really think crossfire or sli is a big deal for single screen resolutions. I’m glad AMD is addressing the issue, but it’s a very obvious problem, and it’s irritating some other review sites didn’t mention how obviously bad Eyefinity and Crossifre work with each other. Gaming across 3 monitors is really an awesome experience, and I imagine so is 4k.
I installed this and
I installed this and battlefield 3 seems to be running much smoother for me. There was always the feeling that something was off playing that game but now the whole experience just feels much smoother.
My settup is a i7 3820 currently at stock, with dual 6950 2gb’s.
Hopefully other’s with 6XXX setups can comment more on this though.
Does it help A series APUs
Does it help A series APUs like the A10 when running dual graphics? (i.e. 8650G+6670)
You may need dual 7xxx or
You may need dual 7xxx or better, but yes. dual anything is what this applies to.
Hey Ryan, good read.
I would
Hey Ryan, good read.
I would just like to point out that since you cannot play on tiled 4K monitors with any Nvidia GeForce card ( they do not support dual monitor surround) means that the 7990 is in fact the fastest solution for 60hz 4K, because The Titan, 780, 690 and any GeForce card for that matter cannot be used in dual monitor surround.
I believe that’s nothing more
I believe that’s nothing more than a driver update from Nvidia…
I believe he said 4K 30Hz was
I believe he said 4K 30Hz was supported, but 60Hz was NOT.
This is not true. Nvidia has
This is not true. Nvidia has a driver that supports tiled displays as of a couple weeks ago.
The fact that you cannot play
The fact that you cannot play at all on ANY Nvidia card using 60hz 4K monitors, means that the 7990 is in fact the fastest graphics card in 4K as well !
http://youtu.be/jLmzs_KLECA?t=11m13s
this is wrong. Please see my
this is wrong. Please see my comment above.
Any word on if this
Any word on if this supporting the last generation of amd cards? ie 6970/6990? Is it coming?
The driver was JUST released.
The driver was JUST released. Breathe man… breathe.
This does make a big
This does make a big difference on my dual 6950s. One easy quick way to notice the difference is to use MSI Kombuster DK11 and turn frame pacing on and off. So that’s good, but really except for a few very recent games this fix isn’t all that great for me. I don’t really think crossfire or sli is a big deal for single screen resolutions. I’m glad AMD is addressing the issue, but it’s a very obvious problem, and it’s irritating some other review sites didn’t mention how obviously bad Eyefinity and Crossifre work with each other. Gaming across 3 monitors is really an awesome experience, and I imagine so is 4k.
This does make a big
This does make a big difference on my dual 6950s. One easy quick way to notice the difference is to use MSI Kombuster DK11 and turn frame pacing on and off. So that’s good, but really except for a few very recent games this fix isn’t all that great for me. I don’t really think crossfire or sli is a big deal for single screen resolutions. I’m glad AMD is addressing the issue, but it’s a very obvious problem, and it’s irritating some other review sites didn’t mention how obviously bad Eyefinity and Crossifre work with each other. Gaming across 3 monitors is really an awesome experience, and I imagine so is 4k.
This driver is good for
This driver is good for everything from the 5000 series up or so I’m led to believe
Nice article! Only it lacks
Nice article! Only it lacks Bioshock Infinite wich i can say is much smoother now(with two 7950s here), but still not perfect or very acceptable and frame tearing is also there. Also i wonder if microstuttering and tearing on hight solid framerates are connected
Just bear in mind that
Just bear in mind that Bioshock Infinite’s engine has a stuttering problem all by itself regardless of what GPU you are using.
Tearing is a completely different and well understood issue that happens most commonly at above 60 FPS (or whatever the refresh rate of your monitor is). V-Sync is the fix for tearing, but it can add some input lag depending on how it is implemented.
Just bear in mind that
Just bear in mind that Bioshock Infinite’s engine has a stuttering problem all by itself regardless of what GPU you are using.
Tearing is a completely different and well understood issue that happens most commonly at above 60 FPS (or whatever the refresh rate of your monitor is). V-Sync is the fix for tearing, but it can add some input lag depending on how it is implemented.
Any chance that you can
Any chance that you can publish the raw scan line data?
The reason I ask is because it looks from the graphs that AMD might be using a threshold based algorithm that only kicks in when a certain amount of adjustment is required. This would result in the stepping you are seeing and I am fairly certain that with a bit of signal analysis and some custom software that I can determine what the likely threshold is if there is one.
I would love to! Send me an
I would love to! Send me an email!