Frame Rating Performance Testing Setup
Testing Configuration
For this test we used two different platforms. AMD Mantle supposedly sees more advantages with more CPU-bound systems so we have added in testing with the AMD A10-7850K APU in addition to our standard, high-end Core i7-3960X system.
Test System Setup | |
CPU | Intel Core i7-3960X Sandy Bridge-E AMD A10-7850K Kaveri |
Motherboard | ASUS P9X79 Deluxe ASUS A88X Pro |
Memory | Corsair Dominator DDR3-1600 16GB |
Hard Drive | OCZ Agility 4 256GB SSD |
Sound Card | On-board |
Graphics Card | AMD Radeon R9 290X |
Graphics Drivers | AMD: 14.4 Beta |
Power Supply | Corsair AX1200i |
Operating System | Windows 8 Pro x64 |
What you should be watching for
- Single GPU D3D11 vs Mantle – With both processors, the i7-3960X and A10-7850K, how does the performance differ between the two APIs when using a single Radeon R9 290X?
- CrossFire D3D11 vs Mantle – Once we enable multi-GPU support, how does each platform see scaling? How smooth and well paced are the frames in CrossFire?
If you don't need the example graphs and explanations below, you can jump straight to the benchmark results now!!
Frame Rating: Our Testing Process
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.
If you don't need the example graphs and explanations below, you can jump straight to the benchmark results now!!
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.
I wouldn’t say that at
I wouldn’t say that at 2560X1440 Mantle results (3960X) “scale up within range of the DirectX 11 CrossFire scaling”. It is more like they stay flat and all other results just go down. The fps are almost identical with the results at 1080p.
And I really don’t see why the conclusion that the results under Mantle are “less than desirable”. The whole thing about frame rating, the reason, I guess, why all this fuss was ever started, was because smoothness is more desirable than frames per second. Has something change here suddenly? I believe not, but I see uncertainty. Maybe now that things are getting better we are starting to ask for more?
Other than that thanks again for all these articles(the fuss lol) that benefit all of us.
Smoothness is definitely the
Smoothness is definitely the key, but you CAN have smooth frame rates and increased frame rates at the same time. We've seen it done correctly in DX11 for quite some time.
Well, this all explains that
Well, this all explains that while I get much higher FPS in Thief while using mantle, it just doesn’t ‘feel’ very smooth.
Thanks for the article.
Was
Thanks for the article.
Was this testing done after the March 31, 2014 patch? I only ask because it lists specific Mantle frame pacing updates.
Patch notes here:
http://battlelog.battlefield.com/bf4/forum/threadview/2955065227487387474
Yep, we ran all these tests
Yep, we ran all these tests yesterday!
The Multiplayer results look
The Multiplayer results look weird; if I’m reading this right, at 1080p, the Crossfired DX11 solution is the slowest. Looks slightly better at 1440p, but that’s likely only because the single cards are bottlenecked. This looks like a driver issue to me, as there’s no reason CFX should be doing that badly in DX11.
I meant AMD results; not
I meant AMD results; not MP.
Also worth noting AMD’s poor D3d performance in Thief, especially when compared to Mantle.
I don’t want to say AMD is intentionally reducing the performance of their D3D driver, but some of these results sure make it LOOK that way.
It does look that way,
It does look that way, indeed.
Yea I noticed that in theif
Yea I noticed that in theif as well, AMD blog that had graph’s that shows difference on their card from DX11 to mantle yes helped they cards but how a 290x only avg’s 55fps I think was what they said. My 780 (no not ti card)was hitting almost 70fps avg using same settings. If it ends up coming to Light AMD was dumbing down DX11 performance on games with mantle to make mantle look better, could be nasty PR nightmare. Likely since game is a mantle game they don’t want to focus on optimizing the game for dx when it competes with their own proprietary api and make results look less compelling.
other difference is I have a 4770k not 4670k, but results should be to much different.
http://community.amd.com/servlet/JiveServlet/showImage/38-2668-2822/290X_4670K.png
Great catch.
Great catch.
It’s not true though, 290x
It’s not true though, 290x easily averages over 60 in DX.
Perhaps you’re quoting data from the older drivers, or kids with incredibly broken ‘enthusiast’ setups.
well it seems like a
well it seems like a pointless wast of resources, to spend time optimizing for dx, while they can focus on mantle, if it was me i would do the same.
Why fix SLI frame pacing when
Why fix SLI frame pacing when you can just launch G-Sync.
Nvidia never had SLI frame
Nvidia never had SLI frame pacing problems, Nvidia fixed that problem back at start with Hardware on the cards to do it. frame pacing was all AMD’s problem.
Of course they have frame
Of course they have frame pacing problems! Look at the SLI frametimes! A complete mess!
Mantle is an almost perfectly flat line, NVidia cannot achieve that with dx.
Why fix SLI frame pacing when
Why fix SLI frame pacing when you can just launch G-Sync.
Because G-Sync is not free of
Because G-Sync is not free of charge. It is expensive and only in few(are there more than one?) monitors.
Because Mantle will be
Because Mantle will be obsolete since DX12 does the same thing, runs on more platforms (Windows + Windows Phone + XB1), and runs on more cards (NVIDIA + AMD + Qualcomm). And then when NVIDIA’s cards are 20+ FPS faster, I’m sure AMD will be sorry they didn’t fix their D3D driver up.
Except, Mantle will run on
Except, Mantle will run on every console, the steam box and anything that can run a Linux distribution. As well as Android.
nVidia had frame pacing
nVidia had frame pacing sorted way back in 2008. AMD in 2014 have finally got it sorted for their user base. G-Sync is completely different to Mantle and can’t be compared.
Not only sorted out, but
Not only sorted out, but without any extra APIs. Shows who can develop drivers and who can’t and has to forced developers (often crappy themselves) to do job of driver vendor…
NVidia did not have frame
NVidia did not have frame pacing “sorted” in 2008. They have been aware of the issues and working to solve them with a slow, steady improvement, however it’s not completely perfect even today.
I watched a really long video with Tom Peterson at PCPER (90 minutes?) and frame pacing was discussed quite a bit, including SLI frame pacing.
In particular, Frame Rate Metering was discussed and he said they will continue to improve it every generation in both hardware and software.
(I also wonder if GTX750Ti cards don’t have SLI in part because new Frame Rate Metering might not be finalized for Maxwell cards.)
Why would the author
Why would the author benchmark on older 14.2 Mantle drivers? There is clearly something wrong here with crossfire scaling. I get a massive boost only 7970GHZ Crosfire and 3930K.
Actually, that was a typo. We
Actually, that was a typo. We used Catalyst 14.4 beta drivers we got in house on the 31st.
Thanks for the clarification.
Thanks for the clarification. 14.4 is not released yet. I thought you would make it clear if you were using a pre-release driver. Also those kind of things customarily require an NDA. Amazed AMD allowed you to post benchmarks.
Ryan, have you messed with
Ryan, have you messed with this setting “RenderDevice.FramePacingMethod” at all?
The default setting 2 is cutting my fps in half on my 7990 its crazy, what setting did you use for the benchmarks here?
“Smoothness is definitely the
“Smoothness is definitely the key, but you CAN have smooth frame rates and increased frame rates at the same time. We’ve seen it done correctly in DX11 for quite some time”
Cool…I`m still rockin` a AMD 5850/C2Q and it works fine.
It was one of the first DX11 cards got it to play Dirt 2 !
Still is fun to play.
Using 14.2 beta 1.3 with
Using 14.2 beta 1.3 with crossfire 290’s on bf4 and mantle is the smoothest gaming i’ve seen in years and this is the first time in the last 10 years or so that i’ve owned non nvidia gpu’s. Seems like a lot of the testing i read on different sites somehow never relates to my experiences and i’m having trouble understanding why this is. The dual gpu scaling is very impressive with upto 100% scaling and i can honestly say, i could not be more pleased with the 290’s.