summaryrefslogtreecommitdiff
path: root/Benchmarking.mdwn
blob: 0fa30d0bdc7df0b01b04942c9c2054f7da352400 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
## Blender

The blender developers wrote a script for benchmarking their app.  Download [[benchmark.blend|http://peach.blender.org/wp-content/uploads/movies/benchmark.blend]].  Run blender with `blender ~/benchmark.blend`, then press alt-P. 


## Nexuiz

    nexuiz-glx -benchmark demos/demo1 -nosound 2>&1 | egrep -e '[0-9]+ frames'

Or, you can open the console by pressing '`' (or shift + escape) and enter: 

    timedemo demos/demo1.dem

Available demos: demo1-5, bench1, piece-o-cake. 

If you want to run demos in a loop, run `nexuiz-glx -nosound` and enter in console: 

    startdemos demos/demo1 demos/demo2
    demos

## Xonotic

    xonotic-glx -benchmark demos/the-big-keybench 2>&1 | egrep -e '[0-9]+ frames'

A shorter Xonotic 0.8 demo file is also available:

    wget http://people.freedesktop.org/~jljusten/xonotic-0-8-d1.dem
    cp xonotic-0-8-d1.dem ~/.xonotic/data/demos
    xonotic-linux64-sdl -benchmark demos/xonotic-0-8-d1 2>&1 | egrep -e '[0-9]+ frames'

## OpenArena

anholt recorded a timedemo for use.  The developers may include a canonical timedemo in a future release. 

Place [[anholt.cfg|http://people.freedesktop.org/~airlied/scratch/anholt.cfg]] in `~/.openarena/baseoa/` 

Place  [[anholt.dm_68|anholt.dm_68]] in `~/.openarena/baseoa/demos` 

Run openarena using: 

    openarena +exec anholt 2>&1 | egrep -e '[0-9]+ frames'

## Quake3 Demo

Install Quake 3 Demo 

    wget ftp://ftp.idsoftware.com/idstuff/quake3/linux/linuxq3ademo-1.11-6.x86.gz.sh
    chmod a+x linuxq3ademo-1.11-6.x86.gz.sh
    ./linuxq3ademo-1.11-6.x86.gz.sh -target ~/q3
    cd ~/q3
    cp bin/x86/glibc-2.0/q3demo .
    ./q3demo

The timedemo we use is DEMO001.  Place the following script in `~/.q3a/demoq3/demo.cfg` 

    timedemo 1
    set demodone  "quit"
    set demoloop1 "demo DEMO001; set nextdemo vstr demodone"
    vstr demoloop1

Run Quake3 Demo using: 

    cd /q3 && ./q3demo +exec demo 2>&1 | egrep -e '[0-9]+ frames'

## Quake3

The timedemo we use is demofour.  Place the following script in `~/.q3a/baseq3/demofour.cfg`: 

    timedemo 1
    set demodone  "quit"
    set demoloop1 "demo four; set nextdemo vstr demodone"
    vstr demoloop1

Run quake3 using: 

    cd /usr/games/quake3 && ./quake3.x86 +exec demofour 2>&1 | egrep -e '[0-9]+ frames'

## Enemy Territory

The timedemo we use is "Radar", located at [[http://www.3dcenter.org/downloads/enemy-territory-radar.php|http://www.3dcenter.org/downloads/enemy-territory-radar.php]].   Place the demo in `~/.etwolf/etmain/demos`. 

Place the following script in `~/.etwolf/etmain/radar.cfg` 

    timedemo 1
    set demodone  "quit"
    set demoloop1 "demo radar; set nextdemo vstr demodone"
    vstr demoloop1

Run et using: 

    et +exec radar 2>&1 | egrep -e '[0-9]+ frames'

To show fps at runtime, hit '~' and type: 

    /cg_drawfps 1

## Doom3 (not the demo)

Go to the console and type 

    timedemo demo001 usecache

## UT2004

Set [[MinDesiredFramerate|MinDesiredFramerate]] to 0 in your UT2004.ini in `~/.ut2004/System/UT2004.ini`.  You probably also want to set `UseVBO=True` if your driver supports VBOs (UT doesn't automatically set this if the extension is exposed, for some reason). 

Then, start a benchmark botmatch with: 

    ut2004 "br-bridgeoffate?spectatoronly=1?numbots=8?quickstart=1?attractcam=1" -benchmark -seconds=60 -nosound

The framerate is appended to `~/.ut2004/Benchmark/benchmark.log`: 

    tail -n 1 ~/.ut2004/Benchmark/benchmark.log | awk '{print $5}'

## cairo-gl

The cairo vector graphics library has an OpenGL backend.  Given that
the number of fragments per draw call is generally low, and shader
instructructions per fragment is very low, this can be an excellent
test of draw call overhead, which many app developers care about.

    wget http://people.freedesktop.org/~anholt/0001-cairo-perf-trace-Print-times-in-seconds.patch
    git clone git://anongit.freedesktop.org/cairo
    cd cairo
    gi am ../0001-cairo-perf-trace-Print-times-in-seconds.patch
    ./autogen.sh --enable-egl=yes
    cd perf
    git clone git://anongit.freedesktop.org/cairo-traces
    make benchmark/firefox-planet-gnome.trace

Then your test script is:

    unset LIBGL_DEBUG
    CAIRO_TEST_TARGET=gl \
	cairogl ~/src/cairo/perf/cairo-perf-trace \
	-i 1 \
	-r /home/anholt/src/cairo/perf/cairo-traces/benchmark/firefox-planet-gnome.trace \
	2>&1 | grep gl.rgba \
	| sed 's|.*gnome.0 ||g'

Keep in mind that, unlike the other tests here, the results are in
seconds.  Lower is better!

## Valve Source Engine games

Many Valve games utilize Valve's source engine, which has support for
recording and replaying 'demo' files.

To access this functionality, start the game with the -console parameter.
This can be done in the Steam client by right clicking on the game,
selecting properties, and then adding -console to the startup parameters
setting.  You can re-enter the console with the '`' key.

The location of your steam install may be different if it is old. Valve has changed the location form ~/.steam to ~/.local/share/steam

## DOTA2 (Defense of the Ancients 2)

Download the DOTA2 demo file and copy to the game folder:

    wget http://people.freedesktop.org/~jljusten/dota2-d1.dem
    cp dota2-d1.dem ~/.local/share/Steam/SteamApps/common/dota\ 2\ beta/dota

Enable Valve console as described above for DOTA2.

Launch DOTA2, and when the console appears, run this command 'timedemo dota2-d1'.

## TF2 (Team Fortress 2)

Download the TF2 demo file and copy to the game folder:

    wget http://people.freedesktop.org/~jljusten/tf2-d1.dem
    cp tf2-d1.dem ~/.local/share/Steam/SteamApps/common/Team\ Fortress\ 2/tf

Enable Valve console as described above for TF2.

Launch TF2, and when the console appears, run this command 'timedemo tf2-d1'.

## Portal

Download the Portal demo file and copy to the portal folder:

    wget http://people.freedesktop.org/~jljusten/portal-d1.dem
    cp portal-d1.dem ~/.local/share/Steam/SteamApps/common/Portal/portal

Enable Valve console as described above for Portal.

Launch Portal, and when the console appears, run this command 'timedemo portal-d1'.


## Left 4 Dead 2

Download the L4D2 demo file and copy it to the left4dead2 folder:

    wget http://people.freedesktop.org/~dbaker/demos/L4D2-dem1.dem
    cp L4D2-dem1.dem ~/.local/share/Steam/SteamApps/common/Left 4 Dead 2/left4dead2/

Enable Valve console as described above.

Launch Left 4 Dead 2, and when the console appears, run this command 'timedemo L4D2-dem1.dem'.