• Competitor rules

    Please remember that any mention of competitors, hinting at competitors or offering to provide details of competitors will result in an account suspension. The full rules can be found under the 'Terms and Rules' link in the bottom right corner of your screen. Just don't mention competitors in any way, shape or form and you'll be OK.

Mantle Benchmark Thread

Getting on with the app.
Here are the results I get with LtMatts CSV file:

Frame Count: 7724
Minimum FPS: 38.432
Maximum FPS: 98.912
Average FPS: 69.9149

Haven't written any code to remove spikes as yet.
Can someone do a test with Matts data in Excel for comparison.
 
Hi Cambo,

using the long version i get the following

Max 98.9
Avg 68.9
MIn 38.4

So its looking good...

Which to be honest are very near my results for dx11 on the first page so think you have it cracked

Cheers, looks pretty close.

Anybody go any suggestions as to where I could upload it when ready?

Also, here is the source code if anybody is interested (C++).
Code:
#include <fstream>
#include <string>
#include <cerrno>
#include <iostream>
#include <sstream>
#include <limits>

std::string get_file_contents(const char *filename)
{
  std::ifstream in(filename, std::ios::in | std::ios::binary);
  if (in)
  {
    std::string contents;
    in.seekg(0, std::ios::end);
    contents.resize(in.tellg());
    in.seekg(0, std::ios::beg);
    in.read(&contents[0], contents.size());
    in.close();
    return(contents);
  }
  throw(errno);
}

void parse_csvs(const std::string& csvs)
{
    std::stringstream strm( csvs );
    // discard the first line, which is column headers;
    std::string line;
    if (!getline( strm, line ))
    {
        std::cout << "Error parsing file." << std::endl;
        return;
    }
    unsigned frame_count = 0;
    double min_fps = std::numeric_limits<double>::max();
    double max_fps = 0.0;
    double fps_accum = 0.0;
    while ( getline( strm, line ) )
    {
        ++frame_count;
        double fps = 1000.0 / atof( line.c_str() );
        fps_accum += fps;
        if ( fps < min_fps )
            min_fps = fps;
        if ( fps > max_fps )
            max_fps = fps;
    }
    if ( frame_count == 0 )
    {
        std::cout << "Error: no frames read." << std::endl;
        return;
    }
    std::cout << "\n" << "Frame Count: " << frame_count << "\n";
    std::cout << "Minimum FPS: " << min_fps << "\n";
    std::cout << "Maximum FPS: " << max_fps << "\n";
    std::cout << "Average FPS: " << fps_accum / frame_count << std::endl;

    
}

int main( int argc, char* argv[] )
{
    // usage: bf4parse <filename>
    // check number of arguments.should be 2 (progname filename)
    if ( argc != 2 )
    {
        std::cout << "Usage: bf4parse <filename>" << std::endl;
        return 1;
    }
    std::string csvs;
    try {
        csvs = get_file_contents( argv[1] );
    }
    catch( ... ) {
        std::cout << "Error reading file. errno: " << errno << std::endl;
    }

    parse_csvs( csvs );
    return 0;
}

Any change suggestions welcome.
Will release a version with just min fps, max fps average fps and frame count to start with.

Then later, a new version which graphs the whole run and outputs to an image file.
 
like it, not sure on an upload site Matt maybe able to help with that,

Did another run using the on/off in level and got the following on DX11, same settings as before

Max 98.4
Avg 57.4
Min 28.5

Which seems better! doing the on/off in level throws out the risk of missing a loading section when you taking out numbers using the other method
 
4670k @4.6ghz
7990 @stock

I did the run on the "Ultra" setting at 2560x1440. Here are my results.

Min: 11.09
Max: 78.62
Avg: 58.34

This is using Mantle. I had one hefty spike which put my min down to 11 fps, but overall it was pretty stable, considering my card is about as unoptimised as it gets for Mantle (being 7000 series and crossfire).

I will run Directx version in a bit and update you how that goes.

***UPDATE***

Done the run with Directx and it's actually faster, but the minimum was up a little.

Min: 8.81
Max: 115.21
Avg: 75.77

I guess there is a fair bit of work needed to optimise my card for this.
 
Last edited:
Just done the mantle run twice to check back the results (yep they are good) and they where within a 0.1 of each other on both runs, so happy its within error margin. Also re ran the DX11 numbers to get a good error margin.

This was done by restarting the level once it loaded to avoid the cut scene & then turning on the bench data right at the level start so no need to cut data out to allow for the load...then turning off once i got to the boat as per the video LtMatt put up, also double checked crossfire was working for both dx11 & mantle

Ultra preset 4xaa @1080p motion blur off FOV @90
i5 3570k @ 4.2 (h100i) water cooling
crossfire Tri-x 290's (stock 1000)

Mantle
Max 199
Avg 129.6
min 20.7

DX11
Max 122.4
Avg 66.2
Min 25.3

That's 95.7% improvement on the avg
 
Link to the app here guys (203.5KB):
http://www.sendspace.com/file/c7qmr3

Probably easiest to place the .exe in the same folder as the CSV file.
Then open a console window in said folder and type:
bf4parse <filename>

e.g.
bf4parse FrameTimeLog001.csv

Let me know if you have any problems guys.

How do you open a console window?

Ah ignore me i got it working. Many thanks dude, this is a very handy tool. I will add it to the OP and credit you accordingly.

Ok so i have two results.

[email protected]
1X 290 975/1250
1440P Ultra Preset+x4AA
13.12 WHQL

DX11
MIN:30.4
AVG:44.8
MAX:63.4

2X 290 975/1250
DX11
MIN:38.4
AVG:69.9
MAX:98.9
 
After seeing the results with 2560x1440, I decided to see what happens at 1920x1080. Things came a lot closer, but following a similar path.

1920x1080 @ "Ultra"

Mantle:

Min: 35.84
Max: 123.46
Avg: 80.24

Directx:

Min: 42.02
Max: 127.55
Avg: 82.75
 
Yep many thanks. Maybe we should ask people to include a screenshot of the tool when posting scores like so.
Could do Matt, or right click on command window and choose "select all" from the menu.Right click again and choose "copy", then paste in to a post.

I suppose a screenshot would be better "proof" though.:D
 
I'm working on another short benchmarking sequence that we can all follow in the test range. Its just to see how much a tank gun explosion causes fps to drop. I'll stick a video of it up on youtube shortly so we can have two different benchmark scenes to compare.

[email protected]
1x290 975/1250
1440P Ultra Preset + x4 AA
14.1 Beta

Mantle

MIN:41.5
AVG:59.3


DX11

MIN:36.1
AVG:55.5


RJASO0w.jpg
 
I'm working on another short benchmarking sequence that we can all follow in the test range. Its just to see how much a tank gun explosion causes fps to drop. I'll stick a video of it up on youtube shortly so we can have two different benchmark scenes to compare.

[email protected]
1x290 975/1250
1440P Ultra Preset + x4 AA
14.1 Beta

Mantle

MIN:41.5
AVG:59.3


DX11

MIN:36.1
AVG:55.5


RJASO0w.jpg

Here it is. I won't bother adding this one to the OP really, its too short. Just one for fun. Recording starts and stops when i enter the console commands.


 
This is a great thread. Thank you LtMatt (and everyone here). I'm tracking it and will send the link to my team on Friday of this week (just want to give everyone here the opportunity to post your findings).
 
Back
Top Bottom