Benchmarking demos

Disclaimer

My demos have been developed on ATI hardware and I'm at the time of this writing employed by ATI. Due to this, some demos may not be suitable for fair performance analysis. It is my belief that most demos however are valid for collecting performance characteristics data, but I take no responsibility for conclusions based on data captured with these tools and do not guarantee that data collected will be useful as a performance indicator for real world applications. As a general hint for fair analysis, use demos that are based on ARB and EXT extensions. Some demos have extended support for ATI or other vendor-specific extensions, or rely completely on such extensions. Sometimes they may still be used for fair comparison. If in doubt, you may consult me for an opinion or inspect the source.

Instructions

To use benchmarking mode in my demos the demo must be compiled with support for it. If any command listed here doesn't work, it means that there's no benchmarking support compiled into the demo. If you want benchmarking support in a demo that does not support it you may either compile it yourself with the latest framework, or you can contact me with a request to update the demo in question.

All commands listed are to be typed on the built-in console. To bring forth the console you typically hit the Tab key, unless you've changed it in your controls settings.

To record a demo:
demorec filename

After typing that, move around in the scene as you prefer. Note that only unique frames are recorded. So no frames will be recorded unless you actually move.

To stop recording the demo:
demostop

To play a demo:
demoplay filename

The demo will begin to play and a log is written to demo.log. The log contains the text "[Beginning of demo]" where the loop begins and all rows after it contains the time it took to render that frame. To get the FPS, just invert the numbers. The file can easily be imported into Excel to create a diagram of your choice.

Note that the console is only available in windowed mode in the older framework. To benchmark in fullscreen mode, you must first go to windowed mode, start the demo, and then go into fullscreen mode. The first loop will of course be useless due to the mode switch, but the loops thereafter will give valid data. In the new framework however the console is available in fullscreen mode too.

To stop playing the demo:
demostop

Or you may just exit the demo instead.