Played sessions
Testing is done with Walnut's rating tool (walnut-rate, on the console): how ratings are made and submitted.
Builds:
Walnut 0.1,
quakespasm 0.96.3+dfsg-2
The platform builds under it (3)
| Linux kernel | 6.12.111+ps3.786 Walnut's build |
|---|---|
| Mesa | 26.2.4-1+ps3.827 Walnut's build |
| ps3rsx | 0.788+k6.12.111+ps3.786 Walnut's build |
| Date | Launcher | Rules | Play | Ended | Picture | |
|---|---|---|---|---|---|---|
| 2026-10-26 | QuakeSpasm (GLSL) | 2.3 | 8 min | quit | ok | Details |
Download all sessions as CSV (one row per session, the aspects as columns)
Rating history
The rating on each version it was tested on, newest first: each row is rated from that version's sessions alone, under the newest rules those sessions have the data for.
| Version | Tested | Medal | Rules | Frame rate | Smoothness | Sound | Picture | Stability | Controls | Display | Features | Load | Play |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Walnut 0.1 quakespasm 0.96.3+dfsg-2 |
2026-10-26 | Platinum · 93 | 2.3 | 95 | 78 | 100 | 100 | 90 | 100 | 85 | 100 | 100 | 0.1 h 1 test |
Scripted benchmarks
Not rated: tests of driver and game changes. A script plays the same scene on the PS3 again and again (the desktop stopped, vsync off) to compare two builds of the game or of the graphics driver. The numbers say which build is faster; they never feed the medal.
How the script plays it: QuakeSpasm 0.96.3 with the Quake shareware data: timedemo of the shareware's demo1, fullscreen 1920x1080. -nopackedpixels: 0.96.3's packed-pixels lightmaps have wrong colours on big-endian.
The recipe's full description
QuakeSpasm 0.96.3 (Debian) with the Quake shareware data (quake-shareware from make game-data: /usr/share/games/quake/id1/pak0.pak): timedemo of the shareware's demo1, fullscreen 1920x1080. -nopackedpixels: 0.96.3's packed-pixels lightmaps have wrong colours on big-endian (quakespasm issue #114; nv30 has no 10-bit format anyway). It doesn't quit after a timedemo: stopped at the result line. Base keeps GLSL on (alias models; gamma stays 1.0, so the full-screen gamma pass doesn't run); noglsl is GL 1.x only, glslgamma turns the gamma pass on (it runs off 1.0 only). +timedemo on the command line doesn't work: the shareware's quake.rc runs "startdemos demo1 demo2 demo3" after the command line's commands and the attract loop replaces the timedemo. So a quake.rc of ours in the user's id1 (~/.quakespasm/id1, searched before the system's pak0.pak) runs the timedemo instead. (A -game directory would do it too, but the shareware refuses those.) Steady state: the timedemo repeated in one session (PASSES=1; client.sh counts the passes that start 54 s or more after the first, and stops the game once they cover ~120 s: ~5 warm-up passes of ~13 s, then ~9 measured). QuakeSpasm has no hook at a demo's end (Host_EndGame skips the attract loop in a timedemo and CL_FinishTimeDemo clears cls.timedemo), so quake.rc loops by frame count: `bench` starts the timedemo, waits 1100 host frames (a wait is one frame; demo1's timedemo is 969 frames, about 2 s idle at the console after it) and starts the next. A timedemo started before the last one ended would print a "-1 frames" line: FPS_RE wants a line starting with a count. fps= stays the first pass's (the run as before); steady is the median of the measured passes.
3 variants of the recipe
base stands for the game | the recipe as it is, without a variant |
|---|---|
noglsl | - |
glslgamma | - |
Conditions: what a variant adds to the recipe (its environment switches) and what ran alongside (the stall recorder, a profiler). Rows marked invalid or not comparable say why. The other numbers, the build and the run length are under "All numbers" in each batch.
What the run length means
"warm-up + 120 s" is a steady-state run, which leaves out a 60 s warm-up and measures 120 s or more; "whole run" counted everything from the start, the way runs before 2026-10-17 did.
Suite summary
2026-10-20 · batch suite-summary-2026-10
Purpose: The 13 benchmarked games (15 rows) with their known numbers, the rules-1 calibration of the rating formula (docs/GAMEDB.md "Calibration", tools/gamedb/score.py). Each value names its source: a batch's cell, or the suite table of docs/games/README.md where the number is a reading or a range (no single cell holds it). Stutter is the stall seconds over the 2-minute window; load unmeasured, stability assumed clean, picture and display right.
| Row | ram_free MiB | vram MiB | fps_steady frames a second | stall_play_s seconds | low1_play frames a second | longest_play_ms ms | sound_faults_per_min faults a minute |
Picture, sound |
|---|---|---|---|---|---|---|---|---|
| QuakeSpasm base | 44 | 49 | 91.0 | 2.5 | 48.6 | 393 | 0 | right, right |
Mesa ps3.407 switches (QuakeSpasm LUT, ClassiCube fence pool), profiler checks (ps3-gpu-tools 0.412), all with WAKER kick
2026-10-18 · batch 2026-10-18-mesa-407-switches · 10 runs in the batch (all games)
| Variant | Conditions | Steady fps in the window |
1% low fps | Stalls frames over 100 ms |
|---|---|---|---|---|
base |
waker kick at 10 ms | 91.0 | 48.6 | 10.0 |
base |
waker kick at 10 ms switch translate_lut1 |
90.9 | 47.0 | 10.5 |
All numbers and setup of this batch
| Variant | Numbers | Setup |
|---|---|---|
base |
fps whole run 89.7 cpu 107.0 seconds underruns 5.0 underruns ram_free 44.2 MiB vram 48.7 MiB longest_ms 392.6 ms stall_play_s 2.5 seconds longest_play_ms 392.6 ms | Mesa ps3.407 the game's resolution, warm-up + 120 s |
base |
fps whole run 89.6 cpu 102.5 seconds underruns 17.0 underruns ram_free 36.5 MiB vram 47.6 MiB longest_ms 519.6 ms stall_play_s 2.8 seconds longest_play_ms 519.6 ms | Mesa ps3.407 the game's resolution, warm-up + 120 s |
Observations: - Same boot, all with the 10 ms waker kick. - QuakeSpasm with the lookup table: steady 91.0 and 90.8 fps against 90.9 and 91.0 without (no change). CPU 104 and 101 s against 108 and 106 (about -3%). - ClassiCube with a pool of 16 fence buffers: identical (48.4 fps). - dsda-doom profile fine: 40.3 fps steady, no stalls. - OpenTTD reached its title game without the survey dialog (webcam OK). - Armagetron: invalid. It was stuck at the first-start language menu (webcam); its 183 fps is the menu.
Mesa ps3.262 repeats and Armagetron without 0020 (texinv)
2026-10-17 · batch 2026-10-17-mesa-262-repeats · 8 runs in the batch (all games)
| Variant | Conditions | Steady fps in the window |
1% low fps | Stalls frames over 100 ms |
|---|---|---|---|---|
base |
the recipe as it is | - | - | - |
All numbers and setup of this batch
| Variant | Numbers | Setup |
|---|---|---|
base |
fps whole run 78.5 cpu 11.8 seconds underruns 1.0 underruns ram_free 51.4 MiB vram 47.6 MiB | Mesa ps3.262 the game's resolution, whole run |
Observations: - Same boot as the Mesa ps3.262 suite round. - QuakeSpasm again: 73.0 and 84.1 fps (66.3 in the suite round). Single QuakeSpasm runs spread widely on the same Mesa. - Neverball again: 77.7 and 74.2 fps (71.5 in the suite round). - Armagetron with ps3.262 as built: 53 and 53 fps. With patch 0020 undone (the texture cache flushed before every draw again): 52 and 52. So the drop from 60 to 52 is not patch 0020. - All Armagetron numbers here are the Gallium HUD's median. Two runs per variant.
Mesa ps3.262 + ps3rsx 0.249
2026-10-17 · batch 2026-10-17-mesa-262 · 12 runs in the batch (all games)
| Variant | Conditions | Steady fps in the window |
1% low fps | Stalls frames over 100 ms |
|---|---|---|---|---|
base |
the recipe as it is | - | - | - |
All numbers and setup of this batch
| Variant | Numbers | Setup |
|---|---|---|
base |
fps whole run 66.3 cpu 12.2 seconds underruns 1 underruns ram_free 46.7 MiB vram 47.4 MiB | Mesa ps3.262, ps3rsx 0.249 the game's resolution, whole run |
Observations: - The patches: no relocations, the texture cache invalidated only after texture changes, no duplicate vertex-format writes, batched vertex program constants. One run per game. - Against ps3.246: OpenArena with compressed textures 44.2 to 54.4 fps (+23%), Yamagi 51.4 to 63.9 (+24%), X-Moto 39 to 47 (+21%), Extreme Tux Racer 46 to 53 (+15%), dsda-doom software 33 to 38 with the demo now finishing (+15%), ClassiCube 47.6 to 50.1 (+5%). - Neverball 78.2 to 71.5 (noise), QuakeSpasm 70.5 to 66.3 (repeated in the next batch), Luanti 53 to 53. - Armagetron dropped from 60 to 51 (driver frame counter). - BananaBread reads 28 to 8 on the counter, but it was memory-stalled (13 MB free, killed at the cap): not a driver number, and the cause is uncertain. - The kernel's command validator rejected nothing. - Single runs.
Mesa ps3.246 + ps3rsx 0.249
2026-10-17 · batch 2026-10-17-mesa-246-ps3rsx-249 · 12 runs in the batch (all games)
| Variant | Conditions | Steady fps in the window |
1% low fps | Stalls frames over 100 ms |
|---|---|---|---|---|
base |
the recipe as it is | - | - | - |
All numbers and setup of this batch
| Variant | Numbers | Setup |
|---|---|---|
base |
fps whole run 70.5 cpu 13.0 seconds underruns 1 underruns ram_free 40.7 MiB vram 47.6 MiB | Mesa ps3.246, ps3rsx 0.249 the game's resolution, whole run |
Observations: - One run per game. Frame rates by the game's own counter, or the driver's frame counter where marked: - Armagetron 60 (counter), ClassiCube 47.6, dsda-doom software 33 (counter, demo unfinished), Extreme Tux Racer 46 (counter), Luanti 53 (counter), Neverball 78.2. - OpenArena with compressed textures 44.2 (longest frame 2.1 s), QuakeSpasm 70.5, BananaBread with CPU skinning 28 (counter), X-Moto 39 (counter), Yamagi Quake II 51.4. - Pictures right. Sound right except dsda-doom (1161 underruns, MIDI music), BananaBread (176) and OpenTTD (1429, choppy). - OpenTTD used 55.5 s of CPU and has no frame rate (plain X11 path). - Single runs: differences of a few fps are within the run-to-run spread.
Group 2 QuakeSpasm timedemo through our quake.rc (Mesa ps3.225)
2026-10-16 · batch 2026-10-16-quakespasm-timedemo · 3 runs in the batch (all games)
| Variant | Conditions | Steady fps in the window |
1% low fps | Stalls frames over 100 ms |
|---|---|---|---|---|
base |
the recipe as it is | - | - | - |
glslgamma |
the recipe as it is | - | - | - |
noglsl |
the recipe as it is | - | - | - |
All numbers and setup of this batch
| Variant | Numbers | Setup |
|---|---|---|
base |
fps whole run 64.8 cpu 12.5 seconds ram_free 53.1 MiB vram 47.7 MiB | Mesa ps3.225 the game's resolution, whole run |
glslgamma |
fps whole run 70.3 cpu 12.4 seconds underruns 4 underruns ram_free 54.6 MiB vram 47.6 MiB | Mesa ps3.225 the game's resolution, whole run |
noglsl |
fps whole run 59.2 cpu 17.7 seconds underruns 36 underruns ram_free 61.0 MiB vram 44.1 MiB | Mesa ps3.225 the game's resolution, whole run |
Observations: - Timedemo demo1 at 1920x1080. - Without GLSL shaders: 59.2 fps (969 frames in 16.4 s). - With GLSL: 64.8 fps. - With GLSL and the gamma pass (gamma 0.9): 70.3 fps. - Colours right; 12 to 18 s of CPU in runs of 23 to 31 s. - Single runs; the later suite measured 66 to 84 fps.
Group 2 QuakeSpasm first smokes (Mesa ps3.225)
2026-10-16 · batch 2026-10-16-quakespasm-smokes · 2 runs in the batch (all games)
| Variant | Conditions | Steady fps in the window |
1% low fps | Stalls frames over 100 ms |
|---|---|---|---|---|
noglsl |
the recipe as it is | - | - | - |
All numbers and setup of this batch
| Variant | Numbers | Setup |
|---|---|---|
noglsl |
fps whole run 66 cpu 4.5 seconds underruns 79 underruns ram_free 68.2 MiB vram 46.0 MiB | Mesa ps3.225 the game's resolution, whole run |
Observations: - QuakeSpasm 0.96.3, shareware data. - First launch ran (66 fps on the driver's frame counter), but the attract loop that the shareware startup script starts after the timedemo kept it from ever printing a result. Killed at 243 s. - Second launch, with a custom game folder, was refused: "You must have the registered version to use modified games". - Both led to a startup script (quake.rc) of ours in the user's id1 folder.