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,
neverball 1.6.0+git20180603-3+ps3.721
The platform builds under it (3)
| Linux kernel | 6.12.111+ps3.747 Walnut's build |
|---|---|
| Mesa | 26.2.4-1+ps3.721 Walnut's build |
| ps3rsx | 0.735+k6.12.111+ps3.747 Walnut's build |
| Date | Launcher | Rules | Play | Ended | Picture | |
|---|---|---|---|---|---|---|
| 2026-10-24 | Neverball | 1.0 | 4 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 | Display | Load | Play |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Walnut 0.1 neverball 1.6.0+git20180603-3 |
2026-10-24 | Gold · 87 | 1.0 | 88 | 64 | 97 | 100 | 90 | - | 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: Neverball: its shipped replay gui/demo1.nbr, real-time paced.
The recipe's full description
Neverball (1.6 snapshot of 2018): its shipped replay gui/demo1.nbr, real-time paced. Our package (gamedb/games/neverball/packages/neverball/patches) prints one line with NEVERBALL_BENCH=1 when the replay ends, from the first replay frame (frames, seconds, fps, longest frame) and quits, so the run is exactly the replay; DURATION is a safety cap. Config ~/.neverball/ neverballrc: fullscreen 1920x1080, vsync off, the fps counter on. It generates mipmaps on the GPU (GL_GENERATE_MIPMAP) and uses GL_LUMINANCE_ALPHA textures: both broken on nv30 until the Mesa fixes (the game's technical.md); variant nomip turns mipmaps off. Steady state: passes. The replay is ~20 s; our patch 0002 (st_demo.c bench_end) with NEVERBALL_BENCH_LOOPS=N replays it N times (demo_replay_stop, progress_replay on a copy of curr_demo(), goto_state(&st_demo_play)), one line per pass, and quits after the Nth. 12 passes cover 60 s of warm-up + 120 s; the client stops the run once enough is measured. fps= is the first pass's.
The recipe today runs it at the game's own resolution, with NEVERBALL_BENCH=1 NEVERBALL_BENCH_LOOPS=20. Older batches ran the recipe as it was then: their titles and observations say what changed (a new game build, a driver change).
7 variants of the recipe
base stands for the game | the recipe as it is, without a variant |
|---|---|
nomip | - |
gloff | our neverball (gamedb/games/neverball/packages/neverball/patches/0003): fewer GL calls and draws a frame, each change behind an environment switch, base has them all on. gui/demo1.nbr on llvmpipe at GL 2.1: 2154 -> 844 calls, 137 -> 74 draws a frame (levels at their intro view: greed 6289 -> 1915, mover 8205 -> 2463 calls). gloff is NEVERBALL_GL=0 (the game as Debian draws it), a no* variant is base with one change off. |
nomesh | - |
noitems | - |
noback | - |
nostate | - |
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 |
|---|---|---|---|---|---|---|---|---|
| Neverball base | 58 | 34 | 66.5 | 2.0 | 41.3 | 3900 | 50 | right, 118 underruns |
Real-time audio as shipped: ps3-desktop 0.1013 (limits.d rtprio 10 + ps3-rt-audio, RTAUDIO=1) against none (RTPRIO=0) on dsda-doom software (owncfg), Extreme Tux Racer, X-Moto and Neverball (kernel .874)
2026-10-28 · batch 2026-10-28-rt-audio-shipped · 23 runs in the batch (all games)
| Variant | Conditions | Steady fps in the window |
1% low fps | Stalls frames over 100 ms |
|---|---|---|---|---|
base |
rtaudio | 82.7 | 57.3 | 0.0 |
base |
real-time priority 0 | 82.7 | 58.4 | 0 |
All numbers and setup of this batch
| Variant | Numbers | Setup |
|---|---|---|
base |
fps whole run 82.5 cpu 99.5 seconds underruns 53.0 underruns ram_free 56.8 MiB vram 34.2 MiB longest_ms 193.4 ms stall_play_s 0.0 seconds longest_play_ms 28.6 ms | no build recorded the game's resolution, warm-up + 120 s |
base |
fps whole run 82.6 cpu 94.8 seconds underruns 106 underruns ram_free 54.2 MiB vram 34.2 MiB longest_ms 214.4 ms stall_play_s 0.0 seconds longest_play_ms 28.3 ms | no build recorded the game's resolution, warm-up + 120 s |
Observations: 25 runs in three rounds, games interleaved, arm order alternating. Two Neverball runs with it were interfered by the agent's own SSH checks and left out, so Neverball has 2 runs with it. Every run fullscreen at 1920x1080 and in gameplay at its 40 s screenshot. - ps3-rt-audio put the audio thread on SCHED_RR 1 in every run with it: SDL's audio thread in dsda-doom, X-Moto and Neverball, and Extreme Tux Racer's unnamed audio thread. - Audible dropouts a run (about 200 s), median, without and with it: dsda-doom 29 to 2 (audible time 0.8-1.2 s to 50-113 ms), Extreme Tux Racer 26 to 2 (0.65-0.92 s to 58-124 ms), Neverball 3 to 0, X-Moto 0 to 0 (logged underruns 78 to 11). - Steady fps unchanged within 0.4%: dsda-doom 39.75 and 39.8, X-Moto 161.7 and 161.0, Neverball 82.73 and 82.72. - 1% lows a little lower with it in the light games, ranges touching: X-Moto 113.4 to 109.4, Neverball 57.9 to 56.6, dsda-doom 20.6 to 19.0. - Extreme Tux Racer's were higher with it: HUD 1% low 19.8 to 29.2, steady 56 to 59. The previous batch had no such gap (29.9 against 28.6).
Luanti ps3.364 batching, Neverball ps3.370 batching, Sauerbraten libspeq 0.381 skinning (spawn)
2026-10-17 · batch 2026-10-17-luanti-neverball-batching · 10 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 | 66.5 | 41.3 | 51 |
gloff |
NEVERBALL_GL=0 | 62.4 | 48.1 | 39.5 |
All numbers and setup of this batch
| Variant | Numbers | Setup |
|---|---|---|
base |
fps whole run 76.5 cpu 65.5 seconds underruns 118 underruns ram_free 58.5 MiB vram 34.2 MiB longest_ms 3893.0 ms | no build recorded the game's resolution, warm-up + 120 s |
gloff |
fps whole run 71.9 cpu 80.3 seconds underruns 115.0 underruns ram_free 56.9 MiB vram 34.3 MiB longest_ms 3674.5 ms | no build recorded the game's resolution, warm-up + 120 s |
Observations: - Same boot. - Luanti, batching on against off, two runs each: steady 45.0 against 46.0 fps, stall time 6.25 against 9.1 s, longest frame 1.7 against 3.4 s, no underruns, picture right. - Neverball, batching on against old drawing: smooth 78.7 against 79.1 fps, CPU 65 against 80 s, stalls similar. One batched run ended before the measured window (12 demo loops were too few; now 20). - BananaBread (spawn point with the gun), one run each: skinning on the SPUs 23.6 fps steady with 21 stalls (4.3 s); on the PPE 28.1 fps with no stalls; off 23.0 with no stalls. libspeq's PPE path is the best; the SPU path adds hitches. - Interference (found by the later scan): one Luanti batching-off run had three digs (a mouse button in the game) in its warm-up. The measured window had no logged action, but the batching-off cell includes that run.
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 75.9 cpu 11.5 seconds underruns 19.0 underruns ram_free 62.0 MiB vram 34.3 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 71.5 cpu 10.7 seconds underruns 12 underruns ram_free 64.6 MiB vram 34.3 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 78.2 cpu 12.7 seconds underruns 16 underruns ram_free 71.8 MiB vram 34.3 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.
ps3rsx 0.249 first boot (Mesa ps3.246; SDL3 ps3.254)
2026-10-17 · batch 2026-10-17-ps3rsx-249-first-boot · 9 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 73.3 cpu 12.2 seconds underruns 25.5 underruns ram_free 64.3 MiB vram 34.3 MiB | Mesa ps3.246, ps3rsx 0.249 the game's resolution, whole run |
Observations: - The GL tests pass and switching virtual terminals works with a GL program running (those runs aren't in the records). - Neverball (our +ps3.257 with its own benchmark, about 23 s) runs without the wedge: 76.4 and 70.2 fps by its own count, longest frames 320 and 378 ms, 15 and 36 underruns. - OpenTTD with libsdl3 ps3.254 (native BGRA upload): from about 2 to 8 fps on the driver's frame counter (9.5 across the two runs), 12 fps with the 8-bit blitter. The game's own software drawing is the limit. - Luanti, first run: load 37 s, 67 fps on the counter (10th percentile 23, dropping to 0 while map chunks load), free memory down to 31 MB. - BananaBread (CPU skinning), first runs: the first was killed by the out-of-memory killer (free memory down to 10 MB); the second reached 15 fps on the counter, 236 underruns. - Smoke runs, single or paired.
Mesa ps3.225 (0014 mip readback): tests and Neverball
2026-10-16 · batch 2026-10-16-mesa-225 · 7 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 cpu 31.8 seconds underruns 50 underruns ram_free 75.6 MiB vram 35.4 MiB | Mesa ps3.225 the game's resolution, whole run |
Observations: - The texture-format, mipmap and mipmap readback tests all pass (RGBA8 and luminance-alpha at 32x32, and a 70-case set). - The 2x2 and 1x1 levels are now read by the CPU. - Neverball ran 60 s without the wedge: 70 fps on the driver's frame counter (10th percentile 55), 50 underruns. - Proves Mesa 0014. ps3rsx 0.249's refusal of unaligned texture offsets was still untested.
Mesa ps3.223 Neverball wedges the RSX (graph exception 0x105)
2026-10-16 · batch 2026-10-16-mesa-223-neverball-wedge · 1 run 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 |
cpu 63.7 seconds underruns 5 underruns ram_free 71.7 MiB vram 25.0 MiB | Mesa ps3.223 the game's resolution, whole run |
Observations: - The kernel rejected a command buffer (an input/output error) and logged a graphics exception from Neverball. - The RSX was wedged: only a console reboot clears it. The run was killed at the 60 s cap. - Cause, found next: Mesa's 3D blit read the 2x2 level of a 32x32 luminance-alpha texture at an address not aligned to 128 bytes, while generating mipmaps in software for a format nv30 cannot render to. - Fixed by Mesa 0014 (ps3.225); ps3rsx 0.249 also refuses such offsets.