Played sessions
Testing is done with Walnut's rating tool (walnut-rate, on the console): how ratings are made and submitted.
Same in every session: Walnut 0.1
| Date | Launcher | Game build | Platform builds that differ | Rules | Play | Ended | Picture | |
|---|---|---|---|---|---|---|---|---|
| 2026-10-26 | SuperTuxKart | supertuxkart 1.5-2+ps3.833 | Linux kernel 6.12.111+ps3.786 Mesa 26.2.4-1+ps3.850 ps3rsx 0.788+k6.12.111+ps3.786 |
2.3 | 13 min | quit | ok | Details |
| 2026-10-26 | SuperTuxKart | supertuxkart 1.5-2+ps3.833 | Linux kernel 6.12.111+ps3.747 Mesa 26.2.4-1+ps3.827 ps3rsx 0.788+k6.12.111+ps3.786 |
2.3 | 12 min | crash | minor | Details |
| 2026-10-25 | SuperTuxKart | supertuxkart 1.5-2+ps3.786 | Linux kernel 6.12.111+ps3.747 Mesa 26.2.4-1+ps3.827 ps3rsx 0.735+k6.12.111+ps3.747 |
1.0 | 2 min | quit | wrong | 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.
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: SuperTuxKart 1.5. Its profile mode starts a race at once with every kart driven by the AI, drives for the given seconds, prints "Number of frames: N time T, Average FPS: F" and quits.
The recipe's full description
SuperTuxKart 1.5 (our build, gamedb/games/supertuxkart/packages/supertuxkart/: big-endian .spm loading, legacy-renderer fixes; 839 MB with its data, deployed by name). Its profile mode (--profile-time) starts a race at once with every kart driven by the AI, drives for the given seconds, prints "Number of frames: N time T, Average FPS: F" and quits. GL 2.1 picks the legacy renderer by itself ("Using the fixed pipeline"). RAM and VRAM are the risk (its FAQ wants 1 GB against our 217 MB): a small track and 4 karts. setup() writes the whole config (~/.config/supertuxkart/config-0.10/config.xml) every run, so the run doesn't depend on what an earlier one saved: the settings below, everything else at the game's defaults (a file without a key keeps that key's default). Names from src/config/ user_config.hpp; the file has one element per group with the settings as attributes. The game rewrites it when it quits (BACKUP restores it). base: the game's defaults (HD textures on: up to 2048x2048; texture compression on, which our 0004 makes reach the legacy renderer: opaque power-of-two textures as DXT1, compressed by Mesa at upload; the minimap shown, 512x512 render target with 0003), but vsync off and the old-driver popup off. Every variant changes one thing, except lean (the candidate PS3 default). Memory per run: during.log has MemAvailable and SwapFree every 5 s, bench.txt their lowest. Steady state: the HUD window, 60 s from the end of the track load (LOAD_MARK, the Track: line printed when the scene is built; the race starts at once, no countdown), then 120 s. Our patch 0005 (ProfileWorld::update) with STK_PROFILE_WARMUP=60 restarts the tick count and the clock once the race time passes 60 s and ends the race at 60 + the profile time (180 s: 240 s of race, 180 s measured); the "Average FPS" line it prints is ticks per second (see FPS_RE below). The race is AI-driven (rand() seeded from the clock, frame-time physics): close between runs, not identical.
The recipe today runs it at the game's own resolution, with STK_PROFILE_WARMUP=60. Older batches ran the recipe as it was then: their titles and observations say what changed (a new game build, a driver change).
11 variants of the recipe
base | the recipe as it is, without a variant |
|---|---|
nohd | HD textures off (bit 1: the user's choice, so the game doesn't turn them back on): textures are scaled down to max_texture_size (512) at load instead of 2048. The biggest single VRAM and RAM cut expected: a 2048x2048 RGBA8 texture is 16 MB, at 512 1 MB (DXT1: 128 KB) |
tex256 | the same capped at 256 |
notc | no texture compression: every texture RGBA8, as Debian's build (isolates 0004: VRAM, load time) |
nomap | minimap hidden: its render target (FBO texture plus depth buffer) isn't made (0003) |
noparticles | no particles (skid, nitro, weather, explosions): fewer billboards and their textures |
static | drivers not animated: the legacy renderer skins every animated kart on the CPU each frame |
geo0 | LOD switched at the shortest distances (Very Low): draw cost, not memory (every level is loaded) |
vsync | vsync on, the game's default (base turns it off) |
karts1 | fewer karts on the track (their models load at startup anyway; this is draw and AI cost) |
lean stands for the game | the candidate PS3 default if the single steps hold: HD textures off (512), compression on, no minimap, important particles only, static drivers |
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 |
|---|---|---|---|---|---|---|---|---|
| SuperTuxKart lean lean | 26 | 97 | 21.0 | 1.8 | 11.8 | 513 | 3 | track draws, sound running |
batch ssdroot12 snd_ps3 DMA watchdog (kernel local/0047): dma_watchdog_ms=200 against 0 (off) on SuperTuxKart lean, OpenArena gl2min and ClassiCube base x3 (SSD root .472 Mesa ps3.545~dev, .472 with the test module)
2026-10-20 · batch 2026-10-20-ssdroot12-dma-watchdog · 17 runs in the batch (all games)
| Variant | Conditions | Steady fps in the window |
1% low fps | Stalls frames over 100 ms |
|---|---|---|---|---|
lean |
stall recorder at 10 ms | 21 | 11.8 | 6 |
lean |
stall recorder at 10 ms switch snd_dma_watchdog_ms0 |
20 | 11.7 | 5 |
All numbers and setup of this batch
| Variant | Numbers | Setup |
|---|---|---|
lean |
fps whole run 20 cpu 318.4 seconds underruns 0 underruns ram_free 26.1 MiB vram 95.0 MiB longest_ms 291.1 ms stall_disk_s 0.1 seconds stall_swap_s 0 seconds stall_reclaim_s 0.1 seconds stall_gpu_s 0 seconds stall_cpu_s 0.8 seconds stall_play_s 1.0 seconds longest_play_ms 291.1 ms | Kernel ps3.472, Mesa ps3.545~dev the game's resolution, warm-up + 120 s |
lean |
fps whole run 19 cpu 323.5 seconds underruns 0 underruns ram_free 29.2 MiB vram 96.0 MiB longest_ms 126.1 ms stall_disk_s 0 seconds stall_swap_s 0 seconds stall_reclaim_s 0 seconds stall_gpu_s 0 seconds stall_cpu_s 0.6 seconds stall_play_s 0.6 seconds longest_play_ms 126.1 ms | Kernel ps3.472, Mesa ps3.545~dev the game's resolution, warm-up + 120 s |
Observations: 18 runs rotated with system dumps on; one OpenArena run with the watchdog off was interfered by two logins and left out. - Watchdog off: 2 of 9 runs wedged (one OpenArena, one ClassiCube). - Watchdog on: 0 of 9 wedged. It caught 2 stalls (OpenArena, ClassiCube), restarted the DMA, and the sound kept going. - Frame rate, 1% low and stalls equal: SuperTuxKart 21 and 20 fps, ClassiCube 48.4 in both, OpenArena 61.9 and 62.3.
batch ssdroot10 OpenAL wedge rate on SuperTuxKart lean x5 per arm: our openal-soft +ps3.549 (int16), stock +ps3.273 (LDPATH), ours with OAL=f32 (SSD root .472 Mesa ps3.545~dev)
2026-10-20 · batch 2026-10-20-ssdroot10-openal-wedge · 14 runs in the batch (all games)
| Variant | Conditions | Steady fps in the window |
1% low fps | Stalls frames over 100 ms |
|---|---|---|---|---|
lean |
stall recorder at 10 ms | 20 | 11.6 | 8 |
lean |
stall recorder at 10 ms switch ldstock-openal |
21.0 | 11.9 | 7.5 |
lean |
stall recorder at 10 ms switch oalf32 |
20 | 11.5 | 9 |
All numbers and setup of this batch
| Variant | Numbers | Setup |
|---|---|---|
lean |
fps whole run 19 cpu 322.7 seconds underruns 0 underruns ram_free 23.4 MiB vram 95.7 MiB longest_ms 255.3 ms stall_disk_s 0.1 seconds stall_swap_s 0.0 seconds stall_reclaim_s 0.0 seconds stall_gpu_s 0 seconds stall_cpu_s 1.0 seconds stall_play_s 1.3 seconds longest_play_ms 255.3 ms | Kernel ps3.472, Mesa ps3.545~dev the game's resolution, warm-up + 120 s |
lean |
fps whole run 20.0 cpu 315.7 seconds underruns 0.0 underruns ram_free 25.9 MiB vram 95.0 MiB longest_ms 216.0 ms stall_disk_s 0.1 seconds stall_swap_s 0.0 seconds stall_reclaim_s 0.0 seconds stall_gpu_s 0.0 seconds stall_cpu_s 0.9 seconds stall_play_s 1.1 seconds longest_play_ms 216.0 ms | Kernel ps3.472, Mesa ps3.545~dev the game's resolution, warm-up + 120 s |
lean |
fps whole run 20 cpu 313.2 seconds underruns 0 underruns ram_free 21.4 MiB vram 95.9 MiB longest_ms 157.8 ms stall_disk_s 0.1 seconds stall_swap_s 0 seconds stall_reclaim_s 0 seconds stall_gpu_s 0 seconds stall_cpu_s 0.8 seconds stall_play_s 1.1 seconds longest_play_ms 157.8 ms | Kernel ps3.472, Mesa ps3.545~dev the game's resolution, warm-up + 120 s |
Observations: 15 runs rotated; one run with Debian's library was interfered by two logins and left out. - Runs that wedged: ours 2 of 5, Debian's 3 of 5, ours with float output 0 of 5. - Our build does not raise the rate; the earlier 0 of 12 for Debian's library was luck. - Float output's 0 of 5 is not significant at 5 runs. - Frame rate equal in all arms: 20-21 fps steady, 1% low 11.5-11.9.
batch ssdroot9 Mesa 0044: NV30_MINMAX_VMX=1 against unset on SuperTuxKart lean x5 (SSD root .472 Mesa ps3.545~dev)
2026-10-20 · batch 2026-10-20-ssdroot9-minmax-vmx · 10 runs in the batch (all games)
| Variant | Conditions | Steady fps in the window |
1% low fps | Stalls frames over 100 ms |
|---|---|---|---|---|
lean |
stall recorder at 10 ms | 20 | 11.6 | 8 |
lean |
stall recorder at 10 ms switch minmax_vmx1 |
22 | 12.3 | 5 |
All numbers and setup of this batch
| Variant | Numbers | Setup |
|---|---|---|
lean |
fps whole run 20 cpu 319.6 seconds underruns 0 underruns ram_free 24.1 MiB vram 95.1 MiB longest_ms 205.6 ms stall_disk_s 0.1 seconds stall_swap_s 0 seconds stall_reclaim_s 0.0 seconds stall_gpu_s 0 seconds stall_cpu_s 1.0 seconds stall_play_s 1.2 seconds longest_play_ms 205.6 ms | Kernel ps3.472, Mesa ps3.545~dev the game's resolution, warm-up + 120 s |
lean |
fps whole run 21 cpu 307.4 seconds underruns 0 underruns ram_free 27.8 MiB vram 95.9 MiB longest_ms 143.7 ms stall_disk_s 0.0 seconds stall_swap_s 0 seconds stall_reclaim_s 0 seconds stall_gpu_s 0 seconds stall_cpu_s 0.5 seconds stall_play_s 0.6 seconds longest_play_ms 143.7 ms | Kernel ps3.472, Mesa ps3.545~dev the game's resolution, warm-up + 120 s |
Observations: 10 runs rotated, 5 per arm, none interfered. - Steady fps 22 with 0044 against 20 without (+10%). - 1% low 12.3 against 11.6. Gameplay stalls 0.6 against 1.2 s. - CPU 307 against 320 s.
batch ssdroot8 DUMPON=1 repro of the OpenAL wedge: SuperTuxKart x4 OpenArena x3 ClassiCube x3 (SSD root .472 Mesa ps3.545~dev, stock snd_ps3)
2026-10-20 · batch 2026-10-20-ssdroot8-openal-wedge · 10 runs in the batch (all games)
| Variant | Conditions | Steady fps in the window |
1% low fps | Stalls frames over 100 ms |
|---|---|---|---|---|
lean-- |
stall recorder at 10 ms | - | - | - |
lean |
stall recorder at 10 ms | 20.5 | 11.7 | 6.0 |
All numbers and setup of this batch
| Variant | Numbers | Setup |
|---|---|---|
lean-- |
fps whole run 19.5 ram_free 13.2 MiB | Kernel ps3.472, Mesa ps3.545~dev the game's resolution, whole run |
lean |
fps whole run 20.0 cpu 320.3 seconds underruns 0.0 underruns ram_free 23.0 MiB vram 95.5 MiB longest_ms 142.2 ms stall_disk_s 0.0 seconds stall_swap_s 0.0 seconds stall_reclaim_s 0.0 seconds stall_gpu_s 0.0 seconds stall_cpu_s 0.7 seconds stall_play_s 0.8 seconds longest_play_ms 142.2 ms | Kernel ps3.472, Mesa ps3.545~dev the game's resolution, warm-up + 120 s |
Observations: Investigation runs, not for fps: a dump freezes the game for seconds. Only runs without a dump have numbers, not comparable with other batches. Webcam picture right in all 10; dumps in 8 of 10. - SuperTuxKart: one run without a dump. A real wedge at 10.9 s in another, where the card's hardware position had stopped 1.0 s before (its DMA stopped). Two more dumps on a memory-map error at 30.6 and 33.1 s, one of which then wedged. - OpenArena: three dumps at 20.5-33.4 s, all on a memory-map error, no wedge, the card still moving. - ClassiCube: a dump at 2.9 s followed by a wedge; one clean run; one dump at 4.4 s with the card still moving. - In total the wedge hit 3 of 10 runs; the other 5 dumps were underruns that recovered. - Two SuperTuxKart runs lost their result and part of their game log, likely because a 164 MB core dump sat in RAM on a 256 MB console (not checked). They make no numbers.
batch ssdroot8 Mesa 0038 force-DXT on the rest of the suite: Luanti and ClassiCube off/opaque/opaque+NEAREST, OpenArena gl2min and gl2min_tc0 off/opaque, SuperTuxKart lean opaque/all (SSD root .472 Mesa ps3.545~dev)
2026-10-20 · batch 2026-10-20-ssdroot8-force-dxt · 24 runs in the batch (all games)
| Variant | Conditions | Steady fps in the window |
1% low fps | Stalls frames over 100 ms |
|---|---|---|---|---|
lean |
stall recorder at 10 ms switch force_dxtall_force_dxt_stats50 |
20.5 | 11.4 | 10.5 |
lean |
stall recorder at 10 ms switch force_dxtopaque_force_dxt_stats50 |
20.0 | 11.2 | 12.0 |
All numbers and setup of this batch
| Variant | Numbers | Setup |
|---|---|---|
lean |
fps whole run 19.5 cpu 316.2 seconds underruns 0.0 underruns ram_free 28.6 MiB vram 58.0 MiB longest_ms 225.7 ms stall_disk_s 0.0 seconds stall_swap_s 0.0 seconds stall_reclaim_s 0.0 seconds stall_gpu_s 0.0 seconds stall_cpu_s 1.4 seconds stall_play_s 1.4 seconds longest_play_ms 225.7 ms | Kernel ps3.472, Mesa ps3.545~dev the game's resolution, warm-up + 120 s |
lean |
fps whole run 20.0 cpu 316.6 seconds underruns 0.0 underruns ram_free 28.1 MiB vram 95.5 MiB longest_ms 309.8 ms stall_disk_s 0.1 seconds stall_swap_s 0.0 seconds stall_reclaim_s 0.0 seconds stall_gpu_s 0.0 seconds stall_cpu_s 1.6 seconds stall_play_s 1.8 seconds longest_play_ms 309.8 ms | Kernel ps3.472, Mesa ps3.545~dev the game's resolution, warm-up + 120 s |
Observations: 24 runs, compression statistics on in every arm, none interfered, webcam picture right in all. - Luanti: nothing compressed (every upload is an empty texture filled later). Peak VRAM 62.4 MiB off, 60.9 opaque, 61.9 opaque with nearest filtering; 46.5, 46.0 and 46.0 fps; stalls 3.3, 3.3 and 3.9 s; load about 25 s. Equal within the noise. - ClassiCube: nothing compressed (textures under 64 px, or kept for nearest filtering or alpha). VRAM 60.1 MiB in every arm, 47.2-47.3 fps, no stalls. - OpenArena opengl2: nothing compressed (formats the switch doesn't take). 61.8 fps off against 62.1 opaque, VRAM 114-117 MiB in both. With the game's own compression off, still nothing: 58.6 against 58.9 fps at 145-149 MiB. - SuperTuxKart: opaque compresses nothing again (the game already compresses its opaque textures). 'all' takes 182 textures to DXT5 (52-53 MB sent as 13 MB). - SuperTuxKart, opaque against all: peak VRAM 95.5 against 58.1 MiB (-37 MiB, -39%), 20 against 20.5 fps, 1% low 11.3 against 11.4, stalls 1.8 against 1.4 s, load 28.1 against 28.4 s. Free RAM 26-32 MiB in both: the saving is VRAM, not RAM. - Picture: SuperTuxKart's photos with 'all' show the same track and kart, with no blockiness at the webcam's resolution. DXT5's loss on fine detail can't be judged by a webcam. - OpenAL wedged in 9 of the 24 runs, in off arms too, without changing their fps.
batch ssdroot7 DUMPON=1 repro of the OpenAL wedge: SuperTuxKart x4 OpenArena x3 ClassiCube x3 Sauerbraten x3 (SSD root .472 Mesa ps3.545~dev)
2026-10-19 · batch 2026-10-19-ssdroot7-openal-wedge · 8 runs in the batch (all games)
| Variant | Conditions | Steady fps in the window |
1% low fps | Stalls frames over 100 ms |
|---|---|---|---|---|
lean |
stall recorder at 10 ms | 20 | 11.3 | 8 |
All numbers and setup of this batch
| Variant | Numbers | Setup |
|---|---|---|
lean |
fps whole run 19 cpu 323.1 seconds underruns 0 underruns ram_free 25.6 MiB vram 95.0 MiB longest_ms 126.9 ms stall_disk_s 0.0 seconds stall_swap_s 0 seconds stall_reclaim_s 0.0 seconds stall_gpu_s 0 seconds stall_cpu_s 0.8 seconds stall_play_s 0.9 seconds longest_play_ms 126.9 ms | Kernel ps3.472, Mesa ps3.545~dev the game's resolution, warm-up + 120 s |
Observations: Investigation runs, not for fps: a dump freezes the game for seconds, and the dump mode itself costs (OpenArena's window was 71 s at 57 fps against 94 s at 62 fps without it). Only the 8 of 13 runs without a dump have numbers, and they are not comparable with other batches. - Webcam picture right in all 13 runs. - Runs where OpenAL wedged: SuperTuxKart 3 of 4 (dumps at 48, 33 and 286 s), OpenArena 1 of 3 (at 21.6 s), ClassiCube 1 of 3 (at 103.6 s), BananaBread 0 of 3 (underruns 96-171). - The dumped SuperTuxKart runs left no result; their counts come from the game log and they make no numbers. - Finding from the dumps: the sound card's DMA stops (the snd_ps3 driver's interrupt chain).
batch ssdroot7 Mesa 0044: NV30_MINMAX_VMX=1 against unset on SuperTuxKart lean x3 (SSD root .472 Mesa ps3.545~dev)
2026-10-19 · batch 2026-10-19-ssdroot7-minmax-vmx · 6 runs in the batch (all games)
| Variant | Conditions | Steady fps in the window |
1% low fps | Stalls frames over 100 ms |
|---|---|---|---|---|
lean |
stall recorder at 10 ms | 21 | 12.0 | 6 |
lean |
stall recorder at 10 ms switch minmax_vmx1 |
22 | 12.3 | 6 |
All numbers and setup of this batch
| Variant | Numbers | Setup |
|---|---|---|
lean |
fps whole run 20 cpu 305.2 seconds underruns 0 underruns ram_free 24.4 MiB vram 94.6 MiB longest_ms 231.5 ms stall_disk_s 0.1 seconds stall_swap_s 0.0 seconds stall_reclaim_s 0 seconds stall_gpu_s 0 seconds stall_cpu_s 0.6 seconds stall_play_s 0.8 seconds longest_play_ms 231.5 ms | Kernel ps3.472, Mesa ps3.545~dev the game's resolution, warm-up + 120 s |
lean |
fps whole run 21 cpu 313.2 seconds underruns 0 underruns ram_free 26.5 MiB vram 96.1 MiB longest_ms 185.2 ms stall_disk_s 0.1 seconds stall_swap_s 0 seconds stall_reclaim_s 0.1 seconds stall_gpu_s 0 seconds stall_cpu_s 0.7 seconds stall_play_s 0.8 seconds longest_play_ms 185.2 ms | Kernel ps3.472, Mesa ps3.545~dev the game's resolution, warm-up + 120 s |
Observations: 6 runs rotated, 3 per arm, none interfered, webcam picture right in all. - Steady fps (Gallium HUD, whole numbers): unset 21, 19, 21; with 0044 22, 22, 22. Counted over the frames under 100 ms: 20.7 against 21.9 (+6%). - 1% low 12.0 against 12.3. Gameplay stalls 6 frames (0.8 s) in both. - CPU 305 s unset, 313 s with it: the expected 5% saving is not there. - OpenAL's wedge showed in all 6 runs, badly in 3 (two unset, one with 0044). The badly wedged unset runs made 21 fps, so no sign that it costs frames. - Load 28.1-28.4 s everywhere.
batch ssdroot6 libpng: libpng16 1.6.59 +ps3.560 against Debian's stock on SuperTuxKart lean x3 and Sauerbraten base x3 and OpenArena gl2min x2 (SSD root .472 Mesa ps3.545~dev zlib-ng on both arms)
2026-10-19 · batch 2026-10-19-ssdroot6-libpng · 15 runs in the batch (all games)
| Variant | Conditions | Steady fps in the window |
1% low fps | Stalls frames over 100 ms |
|---|---|---|---|---|
lean |
stall recorder at 10 ms start-up profile switch zng |
19.5 | 11.5 | 10.0 |
lean |
stall recorder at 10 ms start-up profile switch zng switch ldstock-png |
20.0 | 11.8 | 10.5 |
All numbers and setup of this batch
| Variant | Numbers | Setup |
|---|---|---|
lean |
fps whole run 19.5 cpu 320.4 seconds underruns 0.0 underruns ram_free 19.8 MiB vram 95.4 MiB longest_ms 172.6 ms stall_disk_s 0.1 seconds stall_swap_s 0.0 seconds stall_reclaim_s 0.0 seconds stall_gpu_s 0.0 seconds stall_cpu_s 1.1 seconds stall_play_s 1.2 seconds longest_play_ms 172.6 ms | Kernel ps3.472, Mesa ps3.545~dev the game's resolution, warm-up + 120 s |
lean |
fps whole run 19.5 cpu 322.5 seconds underruns 0.0 underruns ram_free 27.3 MiB vram 95.7 MiB longest_ms 198.8 ms stall_disk_s 0.1 seconds stall_swap_s 0.0 seconds stall_reclaim_s 0.0 seconds stall_gpu_s 0.0 seconds stall_cpu_s 1.2 seconds stall_play_s 1.4 seconds longest_play_ms 198.8 ms | Kernel ps3.472, Mesa ps3.545~dev the game's resolution, warm-up + 120 s |
Observations: Webcam picture right in all runs. - SuperTuxKart, 3 rounds: round 1 was interfered (a login and mouse moves) and left out, so 2 runs per arm. - SuperTuxKart's PNG decoding in the load: 4.0 s with Debian's library against 1.6 s with ours (-2.4 s, -60%). The zlib part stays 3.4 s in both. - SuperTuxKart's load: 30.3 s against 27.6 s (-2.8 s, -9%). The main thread's CPU over the load: 24.0 against 21.1-21.7 s. - SuperTuxKart gameplay unchanged: 20 against 19.5 fps (HUD), 1% low 11.9 against 11.5, 10 frames over 100 ms in both. - One SuperTuxKart run with Debian's library aborted after the full race; cause not looked at. - BananaBread: load 7.19 against 7.25 s, 39.5 fps in both. libpng is too small a part of its load to show. - OpenArena (control, 2 runs): load 6.80 against 6.62 s, 63.1 against 61.1 fps (noise). CPU 231-241 s with Debian's libraries against 211 s with ours, not explained. - OpenAL's wedge messages (its sound output stalling) showed in 8 of the 10 SuperTuxKart runs of this and the previous batch, in both arms.
batch ssdroot5 load-time libraries: libvorbis +ps3.549 and zlib-ng against stock on SuperTuxKart lean and Sauerbraten base x3, JSIMD=none x2 (SSD root .472 Mesa ps3.544)
2026-10-19 · batch 2026-10-19-ssdroot5-load-libraries · 22 runs in the batch (all games)
| Variant | Conditions | Steady fps in the window |
1% low fps | Stalls frames over 100 ms |
|---|---|---|---|---|
lean |
stall recorder at 10 ms start-up profile |
21 | 11.9 | 6 |
lean |
stall recorder at 10 ms start-up profile switch jsimdnone |
20.5 | 11.9 | 8.5 |
lean |
stall recorder at 10 ms start-up profile switch ldstock-vorbis |
21 | 12.0 | 5 |
lean |
stall recorder at 10 ms start-up profile switch zng |
20 | 11.7 | 7 |
All numbers and setup of this batch
| Variant | Numbers | Setup |
|---|---|---|
lean |
fps whole run 20 cpu 321.9 seconds underruns 0 underruns ram_free 27.9 MiB vram 95.9 MiB longest_ms 151.8 ms stall_disk_s 0 seconds stall_swap_s 0 seconds stall_reclaim_s 0.1 seconds stall_gpu_s 0 seconds stall_cpu_s 0.7 seconds stall_play_s 0.8 seconds longest_play_ms 151.8 ms | Kernel ps3.472, Mesa ps3.544 the game's resolution, warm-up + 120 s |
lean |
fps whole run 20.0 cpu 321.4 seconds underruns 0.0 underruns ram_free 31.0 MiB vram 95.4 MiB longest_ms 442.6 ms stall_disk_s 0.1 seconds stall_swap_s 0.0 seconds stall_reclaim_s 0.2 seconds stall_gpu_s 0.0 seconds stall_cpu_s 1.0 seconds stall_play_s 1.4 seconds longest_play_ms 442.6 ms | Kernel ps3.472, Mesa ps3.544 the game's resolution, warm-up + 120 s |
lean |
fps whole run 20 cpu 320.5 seconds underruns 0 underruns ram_free 25.4 MiB vram 96.1 MiB longest_ms 427.2 ms stall_disk_s 0.1 seconds stall_swap_s 0 seconds stall_reclaim_s 0.3 seconds stall_gpu_s 0 seconds stall_cpu_s 0.6 seconds stall_play_s 1.2 seconds longest_play_ms 427.2 ms | Kernel ps3.472, Mesa ps3.544 the game's resolution, warm-up + 120 s |
lean |
fps whole run 20 cpu 325.4 seconds underruns 0 underruns ram_free 24.9 MiB vram 95.9 MiB longest_ms 141.2 ms stall_disk_s 0.1 seconds stall_swap_s 0 seconds stall_reclaim_s 0 seconds stall_gpu_s 0 seconds stall_cpu_s 0.8 seconds stall_play_s 0.8 seconds longest_play_ms 141.2 ms | Kernel ps3.472, Mesa ps3.544 the game's resolution, warm-up + 120 s |
Observations: Load-time profiling on, 22 runs. - SuperTuxKart load: 31.5 s with our libvorbis against 32.2 s with Debian's (-0.7 s); 30.6 s with zlib-ng (-0.9 s). - SuperTuxKart with libjpeg-turbo's AltiVec code off: 32.6 s (+1 s), so that code is in use. - BananaBread's load unchanged within the spread (8.4, 7.5 and 8.1 s). - Gameplay frame rates unchanged.
batch ssdroot2 P2: Mesa 0038 NV30_FORCE_DXT=opaque against off (MEM=1 STALLS=1 NV30_FORCE_DXT_STATS=50)
2026-10-19 · batch 2026-10-19-ssdroot2-force-dxt · 12 runs in the batch (all games)
| Variant | Conditions | Steady fps in the window |
1% low fps | Stalls frames over 100 ms |
|---|---|---|---|---|
lean |
stall recorder at 10 ms switch force_dxt_stats50 |
20.0 | 10.6 | 17.5 |
lean |
stall recorder at 10 ms switch force_dxtopaque_force_dxt_stats50 |
21.0 | 11.6 | 11.5 |
All numbers and setup of this batch
| Variant | Numbers | Setup |
|---|---|---|
lean |
fps whole run 19.5 cpu 323.1 seconds underruns 0.0 underruns ram_free 27.6 MiB vram 96.2 MiB longest_ms 480.2 ms stall_disk_s 0.2 seconds stall_swap_s 0.0 seconds stall_reclaim_s 0.2 seconds stall_gpu_s 0.0 seconds stall_cpu_s 2.4 seconds stall_play_s 2.8 seconds longest_play_ms 480.2 ms | no build recorded the game's resolution, warm-up + 120 s |
lean |
fps whole run 20.0 cpu 318.3 seconds underruns 0.0 underruns ram_free 24.6 MiB vram 95.0 MiB longest_ms 385.5 ms stall_disk_s 0.1 seconds stall_swap_s 0.0 seconds stall_reclaim_s 0.3 seconds stall_gpu_s 0.0 seconds stall_cpu_s 1.3 seconds stall_play_s 1.7 seconds longest_play_ms 385.5 ms | no build recorded the game's resolution, warm-up + 120 s |
Observations: - Same boot, two runs per arm interleaved, both arms with the compression statistics on. - BananaBread: 73 textures compressed (88 MB raw to 11 MB stored, all DXT1; 4 turned back, 17 skipped for alpha). Peak VRAM 119.8 MB (the cap) to 73-78 MB. GPU buffers at mid-run 351 to 215 MB. Memory in use -3.5 MB. - BananaBread steady 39.9 fps off against 39.0 on (unprofiled baseline runs span 39.1-40.3, so no fps change resolved). 1% low 26.0 against 23.9 (two runs, spread 22.9-26.2). Stalls 0.5 against 0.55 s. - BananaBread's picture is slightly softer and darker on the webcam (grey difference 10, against 1-2 between repeats): lossy, as expected. - SuperTuxKart lean: nothing compressed (182 textures skipped for alpha, 173 for format, 22 too small, 6 non-power-of-two; the game's own compression already covers its opaque ones). VRAM 98.5 against 97.3 MB, HUD 20 against 21 fps, stalls 2.8 against 1.7 s: noise. - OpenArena OpenGL 2: nothing compressed (2238 uploads in formats the switch does not take). VRAM 120.1 against 119.7 MB, steady 56.3 against 55.8: no effect. - OpenArena ran 56 fps in both arms against 60-63 unprofiled earlier the same boot: the statistics or drift, not separated.
batch ssdroot2 P1b: gameplay profiles on the SSD root (PERF=1 MEM=1 x1)
2026-10-19 · batch 2026-10-19-ssdroot2-gameplay-profiles · 7 runs in the batch (all games)
Not comparable: gameplay profiles (PERF=1 MEM=1), slower than plain runs.
| Variant | Conditions | Steady fps in the window |
1% low fps | Stalls frames over 100 ms |
|---|---|---|---|---|
leannot comparable |
perf recording | 20 | 10.8 | 20 |
All numbers and setup of this batch
| Variant | Numbers | Setup |
|---|---|---|
lean |
fps whole run 20 cpu 322.5 seconds underruns 0 underruns ram_free 22.9 MiB vram 94.5 MiB longest_ms 316.8 ms stall_play_s 2.7 seconds longest_play_ms 316.8 ms | no build recorded the game's resolution, warm-up + 120 s |
Observations: - Same boot, one run per game, perf at 499 Hz over the window. Profiled runs are for profiles, not fps (OpenArena 56 against 60 unprofiled). - Share of the game process's samples: - BananaBread: Mesa 62.8%, the GPU kernel driver 4.8, the game 10.5. - ClassiCube: Mesa 41.2, kernel 20.1, the GPU kernel driver 7.1. - SuperTuxKart: the game 36.5, Mesa 35.5, libc 15.1. - OpenArena: the game 27.6, Mesa 23.1, other 20.4 (OpenAL 12.4, libdeflate 3.9). - Luanti: the game 47.2 (its mesh-update thread 20.7% of all samples), Mesa 14.6, libc 13.7. - dsda-doom: Mesa 22.3, the game 20.5, audio 30 (FluidSynth 15, libspeq 12). - OpenTTD: kernel 49.5 (36.7 replaying deferred interrupts, 8.3 page table invalidation, 5.1 clearing GPU memory mappings when buffers are created), audio 17. It ran at its title screen (a menu, not gameplay: 18 fps, 4172 underruns). - Mesa has no symbols in these profiles (to be resolved on the PC later). SuperTuxKart's fps is the HUD's.
batch ssdroot2 P1a: start-up profiles on the SSD root (PERF_LOAD=1 STALLS=1 x1)
2026-10-19 · batch 2026-10-19-ssdroot2-startup-profiles · 5 runs in the batch (all games)
Not comparable: start-up profiles (PERF_LOAD=1 STALLS=1), slower than plain runs.
| Variant | Conditions | Steady fps in the window |
1% low fps | Stalls frames over 100 ms |
|---|---|---|---|---|
leannot comparable |
stall recorder at 10 ms start-up profile |
21 | 12.0 | 5 |
All numbers and setup of this batch
| Variant | Numbers | Setup |
|---|---|---|
lean |
fps whole run 20 cpu 316.1 seconds underruns 0 underruns ram_free 23.5 MiB vram 95.7 MiB longest_ms 151.3 ms stall_disk_s 0 seconds stall_swap_s 0 seconds stall_reclaim_s 0 seconds stall_gpu_s 0 seconds stall_cpu_s 0.6 seconds stall_play_s 0.6 seconds longest_play_ms 151.3 ms | no build recorded the game's resolution, warm-up + 120 s |
Observations: - Same boot as the SSD baseline, cold page cache, one run per game. - Time to the end of the loading screens, against the USB profiles of batch 17: BananaBread 7.7 s (19.8), OpenArena 14.2 (28.1), Luanti 26.1 (43.1), SuperTuxKart 31.5 (54.3), ClassiCube 7.5 (13.9). That is -39 to -61%. - The main thread's disk wait in the load fell from 4.8-18.6 s to 1.0-3.2 s (BananaBread 1.9, OpenArena 2.1, Luanti 3.0, SuperTuxKart 3.2, ClassiCube 1.0). - The main thread's CPU stayed about the same (BananaBread 3.9 s against 4.1, OpenArena 8.7 against 9.0, SuperTuxKart 23.8 against 22.5, ClassiCube 3.2 against 2.9). - So loads are now 47-77% CPU on the main thread, not fully CPU-bound: disk 13-26%, the rest GPU, memory reclaim, waiting to run and sleeps. - Biggest costs now: BananaBread zlib 1.6 s (inflating the map); OpenArena the game's own load path 3.9 s (shader scripts, mipmaps); Luanti map generation 8.6 s plus a 15 s hold; SuperTuxKart PNG 4.2, zlib 3.9, audio 2.2 and JPEG 2.1 s; ClassiCube the game 1.5 s and the dynamic linker 0.6 s. - Profiled runs are for profiles, not fps.
batch ssdroot1+2 A: baseline on the SSD root (kernel .472 Mesa .476 ps3rsx 0.443 ps3-gpu-tools 0.477~dev)
2026-10-19 · batch 2026-10-19-ssdroot1-baseline · 12 runs in the batch (all games)
| Variant | Conditions | Steady fps in the window |
1% low fps | Stalls frames over 100 ms |
|---|---|---|---|---|
lean |
stall recorder at 10 ms | 22 | 12.8 | 2 |
All numbers and setup of this batch
| Variant | Numbers | Setup |
|---|---|---|
lean |
fps whole run 21 cpu 308.3 seconds underruns 0 underruns ram_free 25.1 MiB vram 94.8 MiB longest_ms 108.3 ms stall_disk_s 0 seconds stall_swap_s 0 seconds stall_reclaim_s 0 seconds stall_gpu_s 0 seconds stall_cpu_s 0.2 seconds stall_play_s 0.2 seconds longest_play_ms 108.3 ms | Kernel ps3.472, Mesa ps3.476, ps3rsx 0.443 the game's resolution, warm-up + 120 s |
Observations: - Same boot, kernel 6.12.111+ps3.472, root on the internal SSD (an upgraded SSD; a stock PS3 has a hard disk). - 5 of 17 runs left out as interfered (SSH logins, a key press, a polling loop at the batch switch). - Load against the USB root (other boots, older Mesa for some games): BananaBread 7.1 s against 16.9, OpenArena 6.9 against 10.7, Luanti 25.0 against 40.8, SuperTuxKart 31.1 against 53.6, ClassiCube 7.6 against 14.2. - The load's disk wait: 1.3-3.4 s against 5.5-10.9 s. - Gameplay stalls: BananaBread 0.05 s against 1.6, OpenArena 0.2 against 0.3, Luanti 3.5 against 2.5 (memory reclaim 1.6 s against 0.4), SuperTuxKart 0.2 s (one run). - Steady fps about the same: BananaBread 39.1 against 38.5, Luanti 46 against 46, SuperTuxKart 22 (HUD) against 20, ClassiCube 48.1 against 45.9 (falling to 46.1 later in the session with nothing changed). OpenArena gained: 60.4 against 55.9. - SuperTuxKart's own 'Average FPS' (105-111) is its physics tick rate (120 Hz for 180 s, 21602 ticks in every run), not rendered frames. Its fps cells are the HUD median from now on. - Photos show the right scenes. Luanti's photos at 60 and 150 s fall on the flight path's turn over the sea (cyan, no terrain), because the load is shorter than on USB: not a missing world. - Microphone: OpenArena audible; the other games mostly at the room-hum level.
batch 17: ETR uncapped, start-up profiles x5, shader cache cold/warm, OpenArena gl2 memory variants, Mesa sysmem switches, Sauerbraten shortnormals
2026-10-18 · batch 2026-10-18-batch17 · 29 runs in the batch (all games)
| Variant | Conditions | Steady fps in the window |
1% low fps | Stalls frames over 100 ms |
|---|---|---|---|---|
lean |
stall recorder at 10 ms start-up profile |
19 | 11.5 | 8 |
All numbers and setup of this batch
| Variant | Numbers | Setup |
|---|---|---|
lean |
fps whole run 19 cpu 335.3 seconds underruns 0 underruns ram_free 22.5 MiB vram 96.1 MiB longest_ms 691.2 ms stall_disk_s 0.4 seconds stall_swap_s 0.0 seconds stall_reclaim_s 0 seconds stall_gpu_s 0 seconds stall_cpu_s 0.7 seconds stall_play_s 2.0 seconds longest_play_ms 691.2 ms | no build recorded the game's resolution, warm-up + 120 s |
Observations: - Same boot as batch 16 (kernel .433), ioquake3 462, Mesa 442~dev, cube2 442~dev. One BananaBread run with a key press left out. - OpenArena OpenGL 2 on ioquake3 462 (compact colours by default): steady 57-60 fps, stalls 0.7-2.6 s. On the 396 build in batch 16: 51-53 fps and 9-11 s. - The old 16-bit colour path: 52-53 fps, 12.9 s of stalls, 20 s of swap stalls. - Packed animated model frames: 20 MB less VRAM, same stalls. Gamma-correct mipmaps computed per channel: the lowest stalls (0.7-0.9 s). - Mesa's system-memory copy plus buffer invalidation on the old colour path: stalls 9.9 and 12.3 s to 1.5 and 1.4 s, swap stalls 20-26 s to 0.6-1.1 s, steady 53-54 to 59 fps. - BananaBread with short normals: 38.7 to 45.4 fps (+17%), stalls equal, VRAM +4 MB. - Shader cache cold against warm: no load gain (OpenArena 10.3 s cold, 10.6 s warm; BananaBread 17.4 against 18.4 s). - Extreme Tux Racer without a frame cap: still 59 fps, so not a vsync cap.
batch 16: game prefetch A/B, idle fix on/off (433), ClassiCube chunks1, X-Moto stream, Luanti lean parts
2026-10-18 · batch 2026-10-18-batch16 · 41 runs in the batch (all games)
| Variant | Conditions | Steady fps in the window |
1% low fps | Stalls frames over 100 ms |
|---|---|---|---|---|
lean |
gpflearn | 21 | 12.1 | 6 |
lean |
stall recorder at 10 ms | 20 | 11.4 | 7 |
lean |
stall recorder at 10 ms switch gpffetch |
20 | 11.5 | 12 |
All numbers and setup of this batch
| Variant | Numbers | Setup |
|---|---|---|
lean |
fps whole run 20 cpu 331.1 seconds underruns 0 underruns ram_free 26.7 MiB vram 95.9 MiB longest_ms 432.6 ms stall_play_s 1.3 seconds longest_play_ms 432.6 ms | no build recorded the game's resolution, warm-up + 120 s |
lean |
fps whole run 19 cpu 330.8 seconds underruns 0 underruns ram_free 23.9 MiB vram 95.2 MiB longest_ms 686.1 ms stall_disk_s 0.4 seconds stall_swap_s 0.0 seconds stall_reclaim_s 0 seconds stall_gpu_s 0 seconds stall_cpu_s 0.7 seconds stall_play_s 1.8 seconds longest_play_ms 686.1 ms | no build recorded the game's resolution, warm-up + 120 s |
lean |
fps whole run 20 cpu 330.6 seconds underruns 0 underruns ram_free 24.4 MiB vram 96.1 MiB longest_ms 682.4 ms stall_disk_s 0.5 seconds stall_swap_s 0.0 seconds stall_reclaim_s 0 seconds stall_gpu_s 0 seconds stall_cpu_s 1.1 seconds stall_play_s 2.7 seconds longest_play_ms 682.4 ms | no build recorded the game's resolution, warm-up + 120 s |
Observations: - Same boot, kernel .433 with the idle fix and no kicker, interference detector on (3 runs disturbed by SSH logins left out). - Prefetch against none, three runs each: no gain. BananaBread load 18.1-18.6 s against 15.2-18.8; OpenArena OpenGL 2 about 0.5 s faster; Luanti worse (load +1-4 s, two runs with 3 s hitches). Default turned off. - Idle fix on and off, two runs each: gameplay stall time 0.4 and 0.4 s against 9.0 and 7.9 s, longest frame 0.22-0.38 s against 2.2-2.8 s. Clean. - ClassiCube's alternative chunk drawing: 48.1 fps against 46.0 (+4.7%). - X-Moto with its streaming draw path: 162.1 against 160.6 (+1%). - Luanti with chunk size 3 renders a black void at 150 s: it is the part of lean that empties the world. Server unloading and active block range 2 render, but stall more (6.3 and 6.7 s against about 2.5).
batch 8: STK lean, OpenTTD gl, ClassiCube/dsda batching, malloc presets, profiles (Mesa ps3.408, kick)
2026-10-18 · batch 2026-10-18-batch8 · 26 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 | 12 | 8.4 | 113 |
lean |
waker kick at 10 ms | 21 | 12.2 | 8 |
lean |
waker kick at 10 ms perf recording |
20 | 10.8 | 15 |
All numbers and setup of this batch
| Variant | Numbers | Setup |
|---|---|---|
base |
fps whole run 12 cpu 412.3 seconds underruns 0 underruns ram_free 24.4 MiB vram 129.7 MiB longest_ms 675.6 ms stall_play_s 13.5 seconds longest_play_ms 675.6 ms | Mesa ps3.408 the game's resolution, warm-up + 120 s |
lean |
fps whole run 21 cpu 318.1 seconds underruns 0 underruns ram_free 18.5 MiB vram 95.7 MiB longest_ms 663.4 ms stall_play_s 2.4 seconds longest_play_ms 663.4 ms | Mesa ps3.408 the game's resolution, warm-up + 120 s |
lean |
fps whole run 20 cpu 325.4 seconds underruns 0 underruns ram_free 27.6 MiB vram 95.0 MiB longest_ms 576.3 ms stall_play_s 3.4 seconds longest_play_ms 576.3 ms | Mesa ps3.408 the game's resolution, warm-up + 120 s |
Observations: - Same boot. - SuperTuxKart: the track draws (webcam). Lean settings 21.4 fps smooth against 13 as built, stalls 2.4 against 13.5 s. - OpenTTD with the GL driver: right picture, 21 fps (8-12 with software drawing). - ClassiCube with batching 47.3 fps against 49.4 with the old drawing (-4%), but 1% low 31 against 27.6. - dsda-doom GL renderer with batching 55.9 against 54.2 (+3%), 1% low 40.8 against 36.5. - Memory allocator presets: inconsistent between rounds (noise). - OpenArena OpenGL 2 renderer: 55 s of stalls, longest 16 s, 66 MB swapped out. Luanti: 10 s of stalls, 51 MB swapped out. - Interference (found by the later scan): the profiled Luanti run had a right click in its measured window, so distrust that cell.
Group 4 smokes (Mesa ps3.246 + ps3rsx 0.249)
2026-10-17 · batch 2026-10-17-group4-smokes · 6 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 |
cpu 13.8 seconds underruns 0 underruns ram_free 48.9 MiB vram 100.0 MiB | Mesa ps3.246, ps3rsx 0.249 the game's resolution, whole run |
Observations: - OpenArena, OpenGL 2 renderer with minimal settings (97 shader programs): the first launch hit the 90 s cap before the level loaded. The rerun with 240 s: 13.6 fps average, one 36.3 s stall, 31 fps on the driver's frame counter, 157.8 MB VRAM, free memory down to 9.8 MB. - The same with Debian's defaults (115 programs): 10.7 fps, a 28.3 s stall, 23 fps on the counter, 159.7 MB VRAM. - Picture right on the webcam, no driver bug seen: the game is memory-bound. - SuperTuxKart quit after 29 s with a fatal error: "SPMeshLoader: Not little endian machine" (a model file). - BananaBread with GPU skinning ran to the 170 s cap with 0 on the counter and no fps line (the game plan has 11 fps by its own counter, against 28 for CPU skinning). - BananaBread with CPU skinning: 19.6 fps over 601 frames, longest frame 380 ms, 135 MB VRAM, load 27 s. - Single runs.