The Spreadsheet
How to participate
I need these important figures to include your machine on this benchmark.
- The name of your computer. If you have not named your computer, I will probably name your entry something like [username]'s Dell laptop for disambiguation. (You really should name your computer, though. It's fun.)
- The FPS readout from four runs of timedemo demo1. The other figures are not needed.
- The screen resolution in width/height, and the color depth in bits-per-pixel. If it's software mode, this is more than likely going to be 8 BPP; on hardware-rendered ports, this can vary a bit more. Please also specify if this is software or hardware rendering, as that will affect your machine's Performance Index.
- The name of your Quake port, and its release version number.
- The make and model of your computer or device. If it's a custom build from parts, I can either fill that out as "Custom" or specify the make/model of your motherboard.
- The rough year that your device was built. I can make guesses at this, or even leave it blank if there's just not enough info to tell.
- The CPU or main processor of your device.
- How fast the CPU is, in MHz or GHz. On more recent computers (especially laptops) you may see two values in the specs; I'll take the faster of the two unless you know it isn't using it.
- The amount of RAM installed on your device. Yes, I mean the amount of memory available to use by a program, not the amount of storage space.
- The name and version of the operating system. You don't have to give me all the details; I don't think I necessarily need the build number and kernel version unless you're sure that's important.
- The model of GPU or video hardware installed on the device. If these results are from software rendering, this may not be necessary. This is also where you'd specify which version of the driver you're using, especially if you're running on a non-Windows OS where these things can significantly affect performance (e.g. Nvidia vs Nouveau).
- If you'd like me to credit you in the Comment field, please let me know the name you'd like to be credited under.
With all of this information in hand, feel free to contact me on Discord at wildweasel486, or by email at wild dot weasel at gmail dot com, and be prepared for me to ask follow-up questions about your submission.
Performance Index?
I was inspired partially by the Forza Motorsport games here; Performance Index (or P.I.) is an abstract measurement of a given computer's overall Quake performance, taking into account the frame rate, screen resolution, and whether a graphics accelerator was involved. P.I. is calculated with the following formula:
Or, as I've written it out in the spreadsheet formula, =SQRT((J3*K3*(L3/8))/G3 / M3). This is probably not the easiest to parse and I've likely written it incorrectly, so let me break it down by piece.
- Screen resolution: First, multiply xRes by yRes.
- Bit depth: Multiply the above by the bits-per-pixel, bpp, divided by 8 (so 8 bpp is 1, 24 bpp is 3).
- To get a reasonable number to work with, we divide the above result by runTime - the demo's playback time in seconds - and not the stated average frame rate.
- This result is then divided by rendererBit: if Quake is being rendered in software, rendererBit is 1; if it is being assisted by a graphics accelerator (i.e. GLQuake), rendererBit is 2. Ergo, the P.I. result is halved if a graphics card is involved.
- Take the square root of the overall result.
- Round to the nearest whole number.
By way of demonstration, let's use the result for Naglfar (RAVE).
Naglfar, a Power Macintosh G3, runs Quake at 640x480 pixels (307,200 pixels per frame), in 16 bits-per-pixel (16 divided by 8 is 2; our figure is now 614,400). At this resolution, Naglfar's average frame rate is 61.1 frames per second, which at 969 frames in DEMO1, gives us an average runTime of 15.9 (614,400 divided by 15.9 is 38641.509433962). Naglfar runs Quake using the RAVE renderer, which is hardware-accelerated, so rendererBit is 2 (38641.509433962 divided by 2 is 19320.754716981). We then find the square root of that result (the square root of 19320.754716981 is 138.999117684), which we round to the nearest whole number to get a final P.I. of 139.
As a final decorative touch, P.I. is then assigned a letter grade, based on a series of arbitrary ranges that felt right at the time.
Related reading
- Quake, benchmarks, and "demos per demo" - A longer-form post on my Blaugh, explaining my process for benchmarking compatible systems using Quake, and how Performance Index is calculated using that.