BF4 Integrates FCAT Overlay Support
Frostbite has integrated an FCAT style overlay in BF4 and we use it to test Mantle performance the way we know how.
Back in September AMD publicly announced Mantle, a new lower level API meant to offer more performance for gamers and more control for developers fed up with the restrictions of DirectX. Without diving too much into the politics of the release, the fact that Battlefield 4 developer DICE was integrating Mantle into the Frostbite engine for Battlefield was a huge proof point for the technology. Even though the release was a bit later than AMD had promised us, coming at the end of January 2014, one of the biggest PC games on the market today had integrated a proprietary AMD API.
When I did my first performance preview of BF4 with Mantle on February 1st, the results were mixed but we had other issues to deal with. First and foremost, our primary graphics testing methodology, called Frame Rating, wasn't able to be integrated due to the change of API. Instead we were forced to use an in-game frame rate counter built by DICE which worked fine, but didn't give us the fine grain data we really wanted to put the platform to the test. It worked, but we wanted more. Today we are happy to announce we have full support for our Frame Rating and FCAT testing with BF4 running under Mantle.
A History of Frame Rating
In late 2012 and throughout 2013, testing graphics cards became a much more complicated beast. Terms like frame pacing, stutter, jitter and runts were not in the vocabulary of most enthusiasts but became an important part of the story just about one year ago. Though complicated to fully explain, the basics are pretty simple.
Rather than using software on the machine being tested to measure performance, our Frame Rating system uses a combination of local software and external capture hardware. On the local system with the hardware being evaluated we run a small piece of software called an overlay that draws small colored bars on the left hand side of the game screen that change successively with each frame rendered by the game. Using a secondary system, we capture the output from the graphics card directly, intercepting it from the display output, in real-time in an uncompressed form. With that video file captured, we then analyze it frame by frame, measuring the length of each of those colored bars, how long they are on the screen, how consistently they are displayed. This allows us to find the average frame rate but also to find how smoothly the frames are presented, if there are dropped frames and if there are jitter or stutter issues.
The first hurdle for this testing process is that software overlay. NVIDIA helped develop that with its FCAT release and they have made progressive optimization and improvements to it over time. However, it only supports DirectX. When I started our Mantle testing it became apparent that the overlay options we had (from NVIDIA, from others) would not work, as I had originally expected and expressed concern to AMD. To be clear, I have asked AMD in the past to build a universal Mantle API overlay option, but they haven't indicated must interest in the matter. Luckily, there was another option for us to pursue.
FCAT Options in Battlefield 4
I met Johan Andersson, Technical Director at DICE, several years ago but got some significant time to talk with him during the AMD Hawaii product announcement event. Then, at the NVIDIA G-Sync technology reveal in Montreal, I ran into him again and our discussion focused around performance testing under Mantle. As a perfectionist around gaming performance, he obviously knew the benefits of a smooth and consistent frame rate, and agreed that testing methodologies like Frame Rating were pivotal to putting a renewed focus on that topic.
I asked him if it were possible to offer an integrated overlay in Battlefield 4, or any Mantle game for that matter. It was. It is. Now it's here.
PerfOverlay.DrawFCAT 1
That's it; that's the command you can run from the console to enable an FCAT / Frame Rating style overlay in Battlefield 4 after this week's application update. It works when rendering in Direct3D and in Mantle and enables us to get an apples-to-apples performance comparison between the two APIs. It also gives us the ability to measure CrossFire performance and pacing capability that we have NOT been able to do previously in Mantle.
Both AMD and Johan Andersson have told me that Mantle-based multi-GPU support in Battlefield 4 is still in its early phases, and Johan told me directly that "frame pacing isn't perfected." We'll take the results we show here today with tepid enthusiasm as both parties are promising improvements in the not too distant future. Today's story is meant to demonstrate that Frame Rating / FCAT testing is now possible with BF4 in Mantle and help pave the way for improvements going forward.
It would be advantageous to see other developers integrate similar features in Mantle games. Or better yet for AMD to develop a universal model.
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.