The 1000fps rating is a practical way to quantify how your software will run on low end hardware. Considering most developer workstations have better hardware than most PC players, games developed for the PC end up performing worse for people who do not own, cannot afford, or do not want to invest in upper high or enthusiast grade hardware
Assume that the application you are developing qualifies the 1000fps rating in any expected combination of graphics settings and video modes. Then you can be confident in your code to perform decently on low end hardware. Otherwise, the lower your rating is, the worse the experience will be for those people who are less fortunate.
Prerequisites
- A development workstation which has better specifications than the average computer in the most recent Steam Hardware Survey.
-
A graphics application, which preferably you developed.
- Release mode, optimizations up to preference.
- No debugging tools or layers enabled.
- Unlocked frame rate.
- Vsync disabled.
- A demo scene which emulates reasonable usage or gameplay experience.
-
Clean operating system workspace.
- No applications should be contesting for CPU, GPU, PCIe, and disk bandwidth.
- No application other than the one under test should be in foreground, except any relevant tools which do not interfere with the test.
Test Method
- Run the application under test.
- Configure the application into a best performance state which does not degrade the usage/gameplay experience significantly.
- Load up the demo scene you prepared earlier.
- Begin collecting frame time information through your method of choice. Record all frame times. Preferably into a low overhead file type such as CSV.
- Use the application/play the game as intended.
- Finish data collection after 5 minutes of time.
Calculating the Results
Let the evaluation function \(F(x)\) be such that \[ F(x) = m\ln(x) + b \] where \( m = 1.0604\), \(b = -3.3237\) and \(\ln(x)\) is the natural logarithm of \(x\).
From your sample set, calculate the mean frame time \(\mu\) as well as the standard deviation of the sample set \(\sigma\). Let \(x_0 = \mu+2\sigma\) be the slow frame time. Further let \(Med\) be the median frame time. Use seconds as the frame time unit.
Then the raw median score \(Y = F(1/Med)\) and slow down score \(y = F(1/x_0)\). Incur additional score penalties from the following table, if the conditions satisfy.
Condition | Penalty |
---|---|
Application client area is less than 1920x1080. | 1pts |
The application has any human observable stutters during active gameplay. | 1pts |
Any audible audio glitches. | 1pts |
Application client area is less than 1280x720. | 5pts (disqualify) |
Finally assign a letter grade according to the table below:
Letter Grade | Minimum Score | Maximum Frame Time | Minimum FPS |
---|---|---|---|
A | 4 | 1.00 ms | 999 fps |
B | 3 | 2.57 ms | 389 fps |
C | 2 | 6.60 ms | 152 fps |
D | 1 | 16.95 ms | 59 fps |
F | -0.15 | 50.14 ms | 20 fps |
FF | - | rarely | next frame |
Need help? Use the report card generator below.