Review Index:
Feedback

Frame Rating Dissected: Full Details on Capture-based Graphics Performance Testing

How Games Work

 

Because of the complexity and sheer amount of data we have gathered using our Frame Rating performance methodology, we are breaking it up into several articles that each feature different GPU comparisons.  Here is the schedule:

 

Introduction

The process of testing games and graphics has been evolving even longer than I have been a part of the industry: 14+ years at this point. That transformation in benchmarking has been accelerating for the last 12 months. Typical benchmarks test some hardware against some software and look at the average frame rate which can be achieved. While access to frame time has been around for nearly the full life of FRAPS, it took an article from Scott Wasson at the Tech Report to really get the ball moving and investigate how each frame contributes to the actual user experience. I immediately began research into testing actual performance perceived by the user, including the "microstutter" reported by many in PC gaming, and pondered how we might be able to test for this criteria even more accurately.

The result of that research is being fully unveiled today in what we are calling Frame Rating – a completely new way of measuring and validating gaming performance.

The release of this story for me is like the final stop on a journey that has lasted nearly a complete calendar year.  I began to release bits and pieces of this methodology starting on January 3rd with a video and short article that described our capture hardware and the benefits that directly capturing the output from a graphics card would bring to GPU evaluation.  After returning from CES later in January, I posted another short video and article that showcased some of the captured video and stepping through a recorded file frame by frame to show readers how capture could help us detect and measure stutter and frame time variance. 

View Full Size

Finally, during the launch of the NVIDIA GeForce GTX Titan graphics card, I released the first results from our Frame Rating system and discussed how certain card combinations, in this case CrossFire against SLI, could drastically differ in perceived frame rates and performance while giving very similar average frame rates.  This article got a lot more attention than the previous entries and that was expected – this method doesn’t attempt to dismiss other testing options but it is going to be pretty disruptive.  I think the remainder of this article will prove that. 

Today we are finally giving you all the details on Frame Rating; how we do it, what we learned and how you should interpret the results that we are providing.  I warn you up front though that this is not an easy discussion and while I am doing my best to explain things completely, there are going to be more questions going forward and I want to see them all!  There is still much to do regarding graphics performance testing, even after Frame Rating becomes more common. We feel that the continued dialogue with readers, game developers and hardware designers is necessary to get it right.

Below is our full video that features the Frame Rating process, some example results and some discussion on what it all means going forward.  I encourage everyone to watch it but you will definitely need the written portion here to fully understand this transition in testing methods.  Subscribe to your YouTube channel if you haven't already!

Continue reading our analysis of the new Frame Rating performance testing methodology!!

How Games Work

Before we dive into why I feel that our new Frame Rating testing method is the best for the gamer, there is some necessary background information that you must understand.  While we all play games on a near daily basis, most of us don’t fully grasp the complexity and detail that goes into producing an image that makes its way from code a developer writes to the pixels on your monitor.  The below diagram attempts to simplify the entire process from the game engine to the display.

View Full Size

In the image above we have defined a few important variables based on time that will help us explain graphics anomalies.  The first is t_game and it refers the internal time that the game engine is using to keep track of its internal simulations and interactions.  This is where processes like the physics simulations, user interface, artificial intelligence and more are handled.  Different game engines keep time in different ways, but they usually fall into two categories: fixed or variable time steps.  In a fixed time method the game engine cycles the environment in its internal simulation on a regular, fixed iteration.  This is more predictable but it also forces other systems to sync up to it (drivers, GPU rendering) which may cause some issues.  The variable time step method allows a lot more flexibility, but it can be more complicated for developers to maintain a fluid feeling simulation because of simply not knowing when the next simulation update will take place. 

Following that is t_present, the point at which the game engine and graphics card communicate to say that they are ready to pass information for the next frame to be rendered and displayed.  What is important about this time location is that this is where FRAPS gets its time stamps and data and also where the overlay that we use for our Frame Rating method is inserted.  What you should notice right away though is that there is quite a bit more work that occurs AFTER the t_present command is sent and before the user actually sees any result.  This in particular is where capture method’s advantages stem from.  

After DirectX calls the game engine to recieve its time, the graphics driver gets its hands on it for the first time.  The driver maps the DX calls to its own specific hardware and then starts the rendering process on a GPU.  Once the frame is rendered, we will define another variable, t_render, which is reported when the image is ready to be sent to a display.  Finally, t_display will be defined as the time in which data from the frame is on the display, whether that be a complete frame (Vsync enabled for example) or a partial frame. 

You can likely already see where the differences between FRAPS data measurement and Frame Rating measurement start to develop.  Using capture hardware and analysis tools that we’ll detail later, we are recording the output from the graphics card directly as if it were a monitor.  We are essentially measuring frames at the t_display level rather than the t_present point, giving us data that has been filtered through the entire game engine, DirectX, driver, rendering and display process. 

It is also useful to discuss stutter and how it relates to these time definitions.  Despite some readers opinions, stutter in game play is related to the smoothness of animation and not hard wired to low frame rate.  If you have a steady frame rate of 25 FPS you can still have an enjoyable experience (as evident by the 24 FPS movies we all watch at the theater).  Instead, we should view stutter as a variance level between t_game and t_display; if the total display time runs at 50ms (20 FPS) you won’t have stuttering in animation (in most cases) but if total display time shifts between 20ms and 50ms you definitely will.

In our second video on Frame Rating, we looked at a capture from Dishonored in a frame by frame analysis and saw a rather large stutter.  I think a better term for that is a hitch, a large single frame rate issue that isn’t indicative of a microstutter smoothness problem.  Using the above variables, a hitch would be a single large instance of t_game – t_display.  As you’ll see in our results analysis pages (including games like Skyrim) this happens fairly often, even in some games that are smooth otherwise. 

Our 2nd video on Frame Rating from a couple months ago...

There is also a completely different discussion on the advantages and differences of capturing data from FRAPS versus capturing data with our Frame Rating methodology.  I believe that the advantages of hardware capture outweigh the concerns currently, but in reality the data that FRAPS generates isn’t that important, it just happens to be the closest data point to another metric we would love to know more about: game time. 

Game time is the internal game clock that the software engine uses to keep track of the physical world.  This clock could be based on a fixed time span for each tick or it could be variable or timed off of another source (like the OS or GPU driver).  An Intel GPU engineer, Andrew Lauritzen, recently made a great post over on the Beyond3D.com forums about game time, back pressure on the game pipeline and much more.  Here is a short portion of that post, but I would encourage everyone to read the entirety completely:

1) Smooth motion is achieved by having a consistent throughput of frames all the way from the game to the display.

2) Games measure the throughput of the pipeline via timing the back-pressure on the submission queue. The number they use to update their simulations is effectively what FRAPS measures as well.

3) A spike anywhere in the pipeline will cause the game to adjust the simulation time, which is pretty much guaranteed to produce jittery output. This is true even if frame delivery to the display (i.e. rendering pipeline output) remains buffered and consistent. i.e. it is never okay to see spikey output in frame latency graphs.

4) The converse is actually not true: seeing smooth FRAPS numbers does not guarantee you will see smooth display, as the pipeline could be producing output to the display at jittery intervals even if the input is consistent. This is far less likely though since GPUs typically do relatively simple, predictable work.

Clearly the best case for evaluating overall gaming performance will be to have access to the internal game and measure it in comparison the output from Frame Rating, the actual frames on your display.  Differences there could be analyzed to find exact bottlenecks in the pipeline from game code to display.  The problem is no game engine developers allow access to the information currently and the number of different engines in use today makes it difficult for even the likes of NVIDIA and AMD to gather data reliably.  There is opportunity for change here if an API were to exist (in DirectX for example) that would give all game engines reliable time iterations that we would then have access to.

 

NVIDIA's Involvement

You may notice that there is a lot of “my” and “our” in this story while also seeing similar results from other websites being released today.  While we have done more than a year’s worth of the testing and development on our own tools to help expedite a lot of this time consuming testing, some of the code base and applications were developed with NVIDIA and thus were distributed to other editors recently.

NVIDIA was responsible for developing the color overlay that sits between the game and DirectX (in the same location of the pipeline as FRAPS essentially) as well as the software extractor that reads the captured video file to generate raw information about the lengths of those bars in an XLS file.  Obviously, NVIDIA has a lot to gain from this particular testing methodology: its SLI technology looks much better than AMD’s CrossFire when viewed in this light, highlighting the advantages that SLI’s hardware frame metering bring to the table. 

The next question from our readers should then be: are there questions about the programs used for this purpose?  After having access to the source code and applications for more than 12 months I can only say that I have parsed through it all innumerable times and I have found nothing that NVIDIA has done that is disingenuous.  Even better, we are going to be sharing all of our code from the Perl-based parsing scripts (that generate the data in the graphs you’ll see later from the source XLS file) as well as a couple of examples of the output XLS files. 

Not only do we NEED to have these tools vetted by other editors, but we also depend on the community to keep us on our toes as well.  When we originally talked with NVIDIA about this project the mindset from the beginning was merely to get the ball rolling and let the open source community and enthusiast gamers look at every aspect of the performance measurement.  That is still the goal – with only one minor exception: NVIDIA doesn’t want the source code of the overlay to leak out simply because of some potential patent/liability concerns.  Instead, we are hoping to have ANOTHER application built to act as the overlay; it may be something that Beepa and the FRAPS team can help us with.

March 28, 2013 | 07:20 AM - Posted by Beany (not verified)

I agree. I have 2x 6970 and the Crossfire results here are just embarrassing for AMD. It clearly don't work well and i've noticed myself with certain games, because you don't need graphs and stuff, as often you can see it with your own eyes. It's just BAD.

I used to build hundreds of PC's with both Nvidia and AMD, and from that experience i also noticed that 1) NV's drivers are generally better and less problematic and 2) Crossfire don't work as well as SLI.

The only reason i use AMD is for image quality. Not 3D/gaming stuff but general image output on the desktop. Colours and whites look better and more intense with AMD cards on my high-end monitors (but without being saturated), and no amount of tweaking on NV hardware will get this stuff to look as good. I've tried it with multiply different monitors and AMD just looks better. NV hardware is washed out in comparison. Most people wont be able to tell the difference and you need a good IPS diplay to properly notice but it's always bothered me because i'm a graphics designer and image quality freak. If NV sort this out i'll switch to them instantly.

March 28, 2013 | 07:20 AM - Posted by Beany (not verified)

I agree. I have 2x 6970 and the Crossfire results here are just embarrassing for AMD. It clearly don't work well and i've noticed myself with certain games, because you don't need graphs and stuff, as often you can see it with your own eyes. It's just BAD.

I used to build hundreds of PC's with both Nvidia and AMD, and from that experience i also noticed that 1) NV's drivers are generally better and less problematic and 2) Crossfire don't work as well as SLI.

The only reason i use AMD is for image quality. Not 3D/gaming stuff but general image output on the desktop. Colours and whites look better and more intense with AMD cards on my high-end monitors (but without being saturated), and no amount of tweaking on NV hardware will get this stuff to look as good. I've tried it with multiply different monitors and AMD just looks better. NV hardware is washed out in comparison. Most people wont be able to tell the difference and you need a good IPS diplay to properly notice but it's always bothered me because i'm a graphics designer and image quality freak. If NV sort this out i'll switch to them instantly.

March 28, 2013 | 05:24 PM - Posted by Anonymous (not verified)

Dont know if you read the patch notes for Radeon, But they stated that they have improved crysis 3 and more performance with their latest releases AND that they are working on GREATLY increasing CROSSFIRE performance. Keep an eye open PCPER!

March 28, 2013 | 08:35 PM - Posted by Anonymous (not verified)

lol - it's just amazing isn't it. We'll have the same excuse the politicians always give us...

" "Tired of dropping frames instead of opponents? Find a CrossFire™-certified graphics configuration that’s right for you."

" We had no idea!!!! "

I want to know how many YEARS this has been going on.

These tools need to be used on 3870 Cf on up - 4850 4870 5850 5860 6850 6870 6950 6970 and so on....

So for many years we have been fed a complete freaking lie across the board, and from every "scientific unbiased tester website"....
Just wow. If there are conspiracy theorists here, you missed this one, because right now full blown conspiracy (if amd seemed it knew what it was and is doing) would be the conclusion. (instead amd marketing lies and incompetence and pure luck at the massive cover up over many years looks correct)

I also have to say, PALMFACE !

This also SHAMES EVERY REVIEW SITE OUT THERE. lol How stupid they have been - they should have spent far less time attacking nVidia looking and hunting for every tiny chink in their armor they could dream up and squared off at AMD since these COMPLAINTS about Crossfire have been present since DAY ONE.

Just think, all those reviewers, all those tests, all those years, and complete obliviousness till now... and a CONSTANT HAMMERING on people like me who tried in vain to point out the CF issues.
"it's your imagination"
"you're crazy"
"nVidia shill"
"paid operative"
"I don't see anything wrong ! "

Just W O W.

March 29, 2013 | 05:59 AM - Posted by John Doe (not verified)

You're a moron and have some real issues.

I ran that HD 2900 CF setup up to 200 HZ and haven't had a SINGLE frametime issue with it.

I was playing Cube on it at 160 HZ on a Diamondtron SB2070 and it didn't skip a SINGLE beat.

March 29, 2013 | 12:01 PM - Posted by Anonymous (not verified)

LOL - a single example, untested, swears the amd fanboy, on an obsolete hd2900 said to be the most terrible hd flagship even by amd fanboys, and one game, from the historical mind of the fanboy....

R O F L - and you call me names.

No, we need the entire lineup of amd tested for the YEARS their scam has existed.

I feel a MASSIVE VINDICATION coming.

BTW - hold onto your undies feller, AS THIS SOFTWARE FCAT WITH THE COLOR BANDS IS BEING RELEASED TO THE PUBLIC FIRST ON MSI AFTERBURNER ON MONDAY AND THEN ON EVGA PRESICION X LATER IN THE WEEK !

ROFL - The truth is coming amd fan. NOTHING will stop it now.

March 29, 2013 | 03:31 PM - Posted by John Doe (not verified)

Indeed.

I bought those 2900's because they were fucking cheap as hell because I bought them SECOND HAND and had a couple of PULSE Digital PWM's and 512-bit bus with a ton of memory bandwidth and HDCP onboard.

How many words in that text did you had to Google?

April 2, 2013 | 09:15 PM - Posted by Anonymous (not verified)

Hey I, that's ME, I loved the HD2900, but all the amd fanboys were crying, it lost miserably to the nVidia flagship.
Have a good friend who got a Sapphire hd2900 "pro" version, but it wasn't the pro, as I recall it had an unlisted weird and in between 320 shaders with the 256 bus.
He had EXTENSIVE trouble with it - I spent countless hours hammering out the bugs in every board he ever ran it in - a Dell dimension 4700 for instance kept it locked at 500mhz core and 600mhz memory.
He hammered the crap out of it for years, he broke it three times, I resurrected it three times, then finally against advice he kept the pink rubbery foam strip off the VRMs upon reassembly after cleaning - he was told NOT to but insisted it was just a cushion and not needed - that freaking cooked it for good -
I didn't hate the HD2900 but every amd fanboy did, and said so, it was a crushing blow to their egos, as nVidia stomped it on performance.

March 29, 2013 | 03:50 PM - Posted by Anonymous (not verified)

yet another fan boy, this time on the nvidia side. (paid?)
i wish you all disappeared.

March 29, 2013 | 03:52 PM - Posted by John Doe (not verified)

I've never been paid by anybody in my entire life to speak garbage about a product.

You have absolutely no idea who I am, which just goes to show how much of an ignorant idiot you are.

Have a nice and a long life.

April 3, 2013 | 11:17 PM - Posted by Anonymous (not verified)

He was replying to me, please be able to follow the threading insets.

Now you were calling whom an idiot ? Uhh, nevermind.

April 10, 2013 | 06:21 PM - Posted by John Doe (not verified)

The more you speak to yourself, the more of a retard you'll realise you are.

March 29, 2013 | 03:51 PM - Posted by Anonymous (not verified)

Well it could just as well be "lazy" game developers not bothering to optimize for AMD and just going with nVidia and then just accepting the faults that comes when using AMD and just hoping no one notices??

March 29, 2013 | 03:51 PM - Posted by Anonymous (not verified)

Well it could just as well be "lazy" game developers not bothering to optimize for AMD and just going with nVidia and then just accepting the faults that comes when using AMD and just hoping no one notices?

March 29, 2013 | 04:05 PM - Posted by John Doe (not verified)

Yes.

April 3, 2013 | 11:15 PM - Posted by Anonymous (not verified)

lol

It happens on many AMD Gaming Evolved games that have direct amd/developer input fella.

Nice try but you obviously are clueless and a total amd fan.

March 27, 2013 | 10:50 AM - Posted by JonasMX (not verified)

My only concern is that in my country are a bunch of people don't care about this kind of stuff. They think is too boring and the readers don't care.

We are years behind what you are trying to demostrate and bring to light, but definitly I'll follow you like an example.

Thanks for you hard work

March 27, 2013 | 11:12 AM - Posted by Anonymous (not verified)

Hi Ryan
I was wondering if you could also post the RUN graphs for the 680 sli. I didn't get a clear picture from the article if the 680 sli also dropped any frames, had any runt frames or totally avoided those behaviors.

March 27, 2013 | 11:25 AM - Posted by Ryan Shrout

I'll do that now!

March 28, 2013 | 08:42 PM - Posted by Anonymous (not verified)

No drops no runts for nVidia 680 SLI - NONE

LOL

That's why they were left out... like no news is good news.

I feel so good about myself, so many years, so many attacks on me by so many raging amd lovers.
I sooooo want to see them cover their heads in shame and admit how treasonous they were.
Yes treasonous liars. (lol whatever couldn't think of the word)
I suspect heck would freeze over first.

Oh look at that the river styx has ice skaters on it.

March 27, 2013 | 11:32 AM - Posted by Eriol (not verified)

Great job on the article! This is how GPUs should be benched in the future.

What I would also like to see is how the input latencies are affected by things like vsync or nvidia frame metering. Also, digging deeper into how frame rate limits can help alleviate the stutter issues would be welcome. I found that back when I was testing 6950cf that a 3rd party fps limiter was the best solution combating micro stutter.

In the end CF is just not worth it atm, regardless of vsync or fps limiters. AMD has a lot of work to do to get CF sorted out. I doubt a new driver 2-3 months down the line will be the end of it, but hopefully they're good to go when the next gen arrives.

March 27, 2013 | 07:22 PM - Posted by Ryan Shrout

Input latency testing is my next target!

March 27, 2013 | 11:47 AM - Posted by JLM (not verified)

Great work and great review/article!

I do wish you guys had included the effects of a framerate limiter in addition to vsync, though... I've actually had a better experience using a framerate limiter through Afterburner on 7970 CF than I do with vsync; it seems to almost always remove stutter completely while also preserving the scaling.

March 27, 2013 | 07:30 PM - Posted by Ryan Shrout

I'll definitely be giving that shot!

March 27, 2013 | 12:20 PM - Posted by Anonymous (not verified)

What about older Nvidia cards?
What about Crossfire 6970s?

We played a bit of Natural Selection 2 the other day..meh..silly bunny jumpy game..imbalanced..go Marine..
Anyway..

Crossfire enabled 72 FPS
Crossfire disabled 64 FPS
What a ripoff!

Then we tried it on 2 GTX 580s same room and systems and almost the same results..

Multi GPU setups are just a ripoff unless you get Exactly DOUBLE for performance.

March 27, 2013 | 01:35 PM - Posted by John Doe (not verified)

Scaling depends on A TON of factors. GPU's, drivers, applications so on and so forth.

You need to understand the basics of these things before you throw out such pointless and silly statements.

If you want to compare scalability, first compare a pair of single cards in FurMark. Then SLi/CF them and compare again.

March 29, 2013 | 03:07 AM - Posted by Anonymous (not verified)

CF is failing in half the games across the board, and has been for some time.
TPU for instance is an example where he mentions it if you don't believe me.
That's the other big laugh, shouldn't have been recommended for a long time now.

Maybe AMD will actually do something now, I doubt it though, I suspect apologetics, misdirection, and lies.

March 27, 2013 | 02:26 PM - Posted by Noah Taylor (not verified)

What is or isn't a ripoff is completely subjective and will never be an agreed upon issue. However, you can get a great experience moving to multi gpu setups that isn't necessarily double performance. Hi resolution gaming especially, at 2560x most single cards can't quite get you to >40fps avg with everything turned up in most modern games and what we will see in the next year. If i can get 15 more fps at that resolution it really DOES make all the difference.

However, if I buy 2 graphics cards because AMD says that framerate is how i should rate their cards, and their are frames being counted that detract from the quality of the experience, and essentially bloat their test scores up to 300% over what is actually being displayed, then not only have we been deceived, but AMD has really scammed you, since the extra card is actually detracting from the experience in many ways.

March 27, 2013 | 02:34 PM - Posted by John Doe (not verified)

Moral of the story, get this before it goes out of stock.

http://www.newegg.com/Product/Product.aspx?Item=N82E16814187196

It's a card of limited availibity and is one hell of a damn good, limited custom design.

I'm eagerly waiting for mine to be shipped.

Heh.

March 29, 2013 | 03:58 PM - Posted by Anonymous (not verified)

2GB is not enough for 1080p this days.

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Lines and paragraphs break automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote><p><br>
  • Web page addresses and e-mail addresses turn into links automatically.

More information about formatting options

By submitting this form, you accept the Mollom privacy policy.