All games

OpenTTD

Gold · 83 with OpenTTD (OpenGL) 0.1 h played, 0 crashes

A transport simulation: build railways, roads, ships and airports and run a profitable company.

Genre
strategy management simulation
Players
single player online multiplayer
Input
made for keyboard and mouse
View
2D
Origin
remake or clone
Keywords
transport tycoon

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, openttd 15.1-1+ps3.721

The platform builds under it (3)
Linux kernel6.12.111+ps3.747 Walnut's build
Mesa26.2.4-1+ps3.819 Walnut's build
ps3rsx0.735+k6.12.111+ps3.747 Walnut's build
DateLauncherRulesPlayEndedPicture
2026-10-25 OpenTTD (software) 1.03 minquit ok Details
2026-10-25 OpenTTD (OpenGL) 1.06 minquit 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.

OpenTTD (OpenGL)

VersionTestedMedalRules Frame rateSmoothnessSoundPictureStabilityDisplayLoad Play
Walnut 0.1
openttd 15.1-1
2026-10-25 Gold · 83 1.0 74649710090-96 0.1 h
1 test

OpenTTD (software)

VersionTestedMedalRules Frame rateSmoothnessSoundPictureStabilityDisplayLoad Play
Walnut 0.1
openttd 15.1-1
2026-10-25 Untested 1.0 --7910090-- 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: OpenTTD 15.1 with OpenGFX/OpenSFX/OpenMSX. base: a real game. assets/openttd-bench.sav: 1962, 30 towns, 318 stations, 132 trains, 600 road vehicles, 5 ships, 83 aircraft.

The recipe's full description

OpenTTD 15.1 (Debian, our openttd package for the GL driver) with OpenGFX/OpenSFX/OpenMSX. base: a real game (2026-10-19). assets/openttd-bench.sav: 1962, 30 towns (65000 inhabitants), 318 stations, 132 trains, 600 road vehicles, 5 ships, 83 aircraft (a 256x256 map, played by six AIs for 12 years on the PC, then every company made a human one: no script runs, no AI window, no news; made with assets-src/). Loaded from the command line (-g), 1920x1080 fullscreen, the camera on Taningville (a city of 5000 with a rail station and a bus hub, ~35 vehicles within 16 tiles) at the normal zoom, the game at normal speed for the whole run (OpenTTD has no timedemo: a fixed duration; the game thread's work per frame is the same, the vehicle positions drift with the wall clock). The GL driver (-v sdl-opengl, our package) with the package's default blitter (8bpp-optimized since patch 0003; the ps3.297 package and Debian's use 32bpp-anim: the batches of 2026-10-19 ran the old default as `base`), fps from the Gallium HUD (the load ends at the HUD's first frame, 60 s warm-up, 120 s measured, then the game is stopped). Sound and music on as in play: the SDL sound driver at 44.1 kHz and the FluidSynth music driver with the first soundfont it finds (TimGM6mb on the image), OpenMSX playing. setup()'s config turns autosave off, the news popups off (no pause dialogs) and the survey off (OpenTTD 14+ asks on the first start). The AI window can't open: no AI is left in the save. The PS3 needs the image's openttd, openttd-opengfx, openttd-opensfx, openttd-openmsx and fluidsynth with a soundfont (all from Debian), no NewGRF, no AI. sw: the same game with the SDL software video driver through plain X11 (SDL3's accelerated window framebuffer shows a blue cast on big-endian until the SDL3 fix): no GL, so no HUD and no fps (CPU profiles, stalls, memory); the window starts at the savegame's load line ("Loading savegame version", -d sl=1) + 60 s, 120 s measured swaccel: sw with SDL3's accelerated window framebuffer (HUD fps: the SDL renderer is GL) zoomout: base from assets/openttd-bench-far.sav: the same city one zoom step out (4x the area, ~4x the sprites and station names on screen) scroll: base with the camera panned by the keyboard (xkeys.py through XTEST): Right for 3 s, Left for 3 s, over and over from the window's warm-up on; OpenTTD scrolls by the clock, so the pan covers the same ground at any frame rate. Left/Right only: Up/Down clamp at the map's edge from this camera and don't come back nosound: effects off (-s null); nomusic: music off (-m null); quiet: both off hz22, buf2048, buf4096: the SDL sound driver at 22.05 kHz (the mixer's rate, which the FluidSynth music renders at too: half the synthesis), and with a 2048 or 4096 frame buffer (46 or 93 ms at 44.1 kHz; the default is 1024 = 23 ms): sound candidates for underruns blit8, blit32, blit32anim: base with the 8bpp-optimized, 32bpp-optimized or 32bpp-anim blitter (32bpp-anim, the stock default and ours before patch 0003, is a 32-bit video buffer plus an 8-bit animation buffer, both mapped from a pixel buffer object that the CPU blends sprites into): blit32anim is the old default, for comparisons with the batches before 0003 title: until 2026-10-18 base: the title screen's own demo game (trains running, the camera panning by itself) with the software driver through X11, no HUD (the window starts at the title game's load + 60 s). The title game is a savegame with its random state (deterministic, no AIs), but its ticks and the camera's sign-driven pans run on the wall clock. gl, accel, accel8 are title variants too (the GL driver; SDL3's accelerated framebuffer; that with the 8bpp-optimized blitter), as they were. simplay: the bench save's simulation only (null driver, 6000 ticks, exits by itself) sim: simulation only, no video (null driver): a new game from a fixed seed, run for 20000 ticks and timed (a CPU benchmark; it exits by itself) The PS3 runs: `run.sh smoke openttd` (one run, 360 s at most), `run.sh bench openttd "base zoomout"`.

The recipe today runs it at the game's own resolution, with vblank_mode=0 (vsync off). Older batches ran the recipe as it was then: their titles and observations say what changed (a new game build, a driver change).

20 variants of the recipe
base stands for the gamethe recipe as it is, without a variant
sw-
swaccel-
zoomout-
scroll-
nosound-
nomusic-
quiet-
hz22-
buf2048-
buf4096-
blit8-
blit32-
blit32anim-
titlethe title screen's demo game, as base was until 2026-10-18 (software video, no HUD)
simplaythe bench save's simulation without video: 6000 ticks (a quarter of a game year; 7 s on the PC, 830 ticks a second there against the 33 a second the game needs in real time): the CPU cost of 800 vehicles and 30 towns, no drawing, no sound; exits by itself
sim-
glthe title game with the sdl-opengl driver (the package's default blitter: 32bpp-anim before patch 0003, with sprites drawn on the CPU and the palette animation and the screen upload on the GPU); needs our openttd package (gamedb/games/openttd/packages/openttd/: Debian's refuses nv30, no ARB_texture_rg); compare with title and accel -d driver=2: the GL renderer, the luminance fallback and shader compiler warnings on stderr
accelthe title game with SDL3's default accelerated framebuffer (to check the SDL3 fix)
accel8the accelerated framebuffer with OpenTTD's cheapest blitter (8-bit palette; the default is 32bpp-anim, which redraws palette animation per pixel in software)

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
OpenTTD, 8bpp blit8 411838.30.413.42103500 right, choppy (3500-4700 underruns)
OpenTTD, 32bpp base 171811.052.05.73113500 right, choppy (3500-4700 underruns)

RT audio thread: SCHED_RR 1 from outside (RTPRIO=10+RTTHREAD) and nice -20 (NICELIM=40) against none on dsda-doom software (owncfg), Extreme Tux Racer and OpenTTD (kernel .874)

2026-10-28 · batch 2026-10-28-rt-audio-thread · 24 runs in the batch (all games)

VariantConditions Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
base nicelim40 4315.40
base real-time priority 0 42.015.31.0
All numbers and setup of this batch
VariantNumbersSetup
base fps whole run 43 cpu 257.5 seconds underruns 1095 underruns ram_free 45.3 MiB vram 17.9 MiB longest_ms 98.2 ms stall_play_s 0.0 seconds longest_play_ms 98.2 ms no build recorded
the game's resolution, warm-up + 120 s
base fps whole run 42.0 cpu 261.5 seconds underruns 2018.5 underruns ram_free 44.6 MiB vram 17.9 MiB longest_ms 101.3 ms stall_play_s 0.1 seconds longest_play_ms 101.3 ms no build recorded
the game's resolution, warm-up + 120 s

Observations: 38 runs in four rounds, order rotated. 14 were interfered by another agent's SSH logins and left out. Every counted run was fullscreen at 1920x1080 and in gameplay at its 40 s screenshot. - Audible dropouts a run (about 200 s), median. dsda-doom: 19 with nothing, 10.5 with nice -20, 2 with SCHED_RR. - Extreme Tux Racer: 24 with nothing, 3.5 with SCHED_RR. - OpenTTD: 2 with nothing (2 clean runs), 1 with nice -20; logged underruns 2019 to 1095. - No fps cost from SCHED_RR beyond the noise: dsda-doom 40.1 against 40.3, Extreme Tux Racer 59 against 59. nice -20 cost dsda-doom 2% of its steady fps and two points of 1% low. - SDL's own real-time hint does nothing without RTKit: the thread stayed at normal priority.

batch ssdroot5 FluidSynth on OpenTTD base x3: divide-free reverb (libfluidsynth3 +ps3.549), Debian's stock (LDPATH), effects off (SSD root .472 Mesa ps3.544)

2026-10-19 · batch 2026-10-19-ssdroot5-fluidsynth · 9 runs in the batch (all games)

VariantConditions Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
base stall recorder at 10 ms 3513.28
base stall recorder at 10 ms
switch fxoff
4014.33
base stall recorder at 10 ms
switch ldstock-fluid
3413.37
All numbers and setup of this batch
VariantNumbersSetup
base fps whole run 34 cpu 259.9 seconds underruns 3808 underruns ram_free 43.7 MiB vram 17.9 MiB longest_ms 133.1 ms stall_disk_s 0 seconds stall_swap_s 0 seconds stall_reclaim_s 0.0 seconds stall_gpu_s 0.0 seconds stall_cpu_s 0.8 seconds stall_play_s 0.9 seconds longest_play_ms 133.1 ms Kernel ps3.472, Mesa ps3.544
the game's resolution, warm-up + 120 s
base fps whole run 38 cpu 251.4 seconds underruns 2730 underruns ram_free 38.1 MiB vram 17.9 MiB longest_ms 118.3 ms stall_disk_s 0 seconds stall_swap_s 0.0 seconds stall_reclaim_s 0 seconds stall_gpu_s 0 seconds stall_cpu_s 0.3 seconds stall_play_s 0.3 seconds longest_play_ms 118.3 ms Kernel ps3.472, Mesa ps3.544
the game's resolution, warm-up + 120 s
base fps whole run 32 cpu 263.6 seconds underruns 3925 underruns ram_free 37.1 MiB vram 17.9 MiB longest_ms 145.0 ms stall_disk_s 0 seconds stall_swap_s 0 seconds stall_reclaim_s 0 seconds stall_gpu_s 0.0 seconds stall_cpu_s 0.7 seconds stall_play_s 0.8 seconds longest_play_ms 145.0 ms Kernel ps3.472, Mesa ps3.544
the game's resolution, warm-up + 120 s

Observations: 9 runs rotated. - Steady fps: 35 with our library, 34 with Debian's (+3%). - With the synthesizer's effects off: 40 fps (+18%).

batch ssdroot5 OpenTTD views with Mesa 0040 on: base, zoomout, scroll x2 (SSD root .472 Mesa ps3.544, 8bpp-optimized)

2026-10-19 · batch 2026-10-19-ssdroot5-openttd-views · 6 runs in the batch (all games)

VariantConditions Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
base stall recorder at 10 ms
switch staging_pool_mb24
52.018.61.0
scroll stall recorder at 10 ms
switch staging_pool_mb24
31.014.35.0
zoomout stall recorder at 10 ms
switch staging_pool_mb24
23.011.112.5
All numbers and setup of this batch
VariantNumbersSetup
base fps whole run 50.5 cpu 230.5 seconds underruns 3135.0 underruns ram_free 41.7 MiB vram 17.9 MiB longest_ms 110.3 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.1 seconds stall_play_s 0.1 seconds longest_play_ms 110.3 ms Kernel ps3.472, Mesa ps3.544
the game's resolution, warm-up + 120 s
scroll fps whole run 33.0 cpu 252.3 seconds underruns 3506.0 underruns ram_free 38.8 MiB vram 17.9 MiB longest_ms 280.4 ms stall_disk_s 0.0 seconds stall_swap_s 0.0 seconds stall_reclaim_s 0.1 seconds stall_gpu_s 0.0 seconds stall_cpu_s 0.5 seconds stall_play_s 0.8 seconds longest_play_ms 280.4 ms Kernel ps3.472, Mesa ps3.544
the game's resolution, warm-up + 120 s
zoomout fps whole run 22.5 cpu 253.2 seconds underruns 3454.0 underruns ram_free 34.2 MiB vram 17.9 MiB longest_ms 161.1 ms stall_disk_s 0.0 seconds stall_swap_s 0.0 seconds stall_reclaim_s 0.1 seconds stall_gpu_s 0.0 seconds stall_cpu_s 1.2 seconds stall_play_s 1.5 seconds longest_play_ms 161.1 ms Kernel ps3.472, Mesa ps3.544
the game's resolution, warm-up + 120 s

Observations: The staging pool on in every arm, 8bpp-optimized blitter, 6 runs. - Normal view (base): 52 fps steady, 1% low 18.6. - Zoomed out: 23 fps, 1% low 11.1. - Scrolling: 31 fps, 1% low 14.3. - Without the pool (the earlier blitter batch, another boot) zoomed out and scrolling both ran 7 fps.

batch ssdroot4 Mesa 0040: NV30_STAGING_POOL_MB=24 against off on OpenTTD base (32bpp-anim) and blit8 (8bpp-optimized) x3, the 1962 savegame (SSD root .472 Mesa ps3.544)

2026-10-19 · batch 2026-10-19-ssdroot4-staging-pool · 13 runs in the batch (all games)

VariantConditions Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
base perf recording
switch staging_pool_mb24
209.630
base stall recorder at 10 ms 115.8350
base stall recorder at 10 ms
switch staging_pool_mb24
209.439
blit8 stall recorder at 10 ms 3413.05
blit8 stall recorder at 10 ms
switch staging_pool_mb24
5218.41
All numbers and setup of this batch
VariantNumbersSetup
base fps whole run 20 cpu 263.1 seconds underruns 3905 underruns ram_free 13.9 MiB vram 25.8 MiB longest_ms 532.2 ms stall_play_s 4.7 seconds longest_play_ms 532.2 ms Kernel ps3.472, Mesa ps3.544
the game's resolution, warm-up + 120 s
base fps whole run 10 cpu 271.5 seconds underruns 3548 underruns ram_free 21.2 MiB vram 17.9 MiB longest_ms 323.9 ms stall_disk_s 0 seconds stall_swap_s 0.1 seconds stall_reclaim_s 0.1 seconds stall_gpu_s 1.5 seconds stall_cpu_s 40.3 seconds stall_play_s 43.7 seconds longest_play_ms 323.9 ms Kernel ps3.472, Mesa ps3.544
the game's resolution, warm-up + 120 s
base fps whole run 20 cpu 256.4 seconds underruns 3943 underruns ram_free 16.6 MiB vram 17.9 MiB longest_ms 521.7 ms stall_disk_s 0 seconds stall_swap_s 0.0 seconds stall_reclaim_s 0.7 seconds stall_gpu_s 0.2 seconds stall_cpu_s 3.7 seconds stall_play_s 5.1 seconds longest_play_ms 521.7 ms Kernel ps3.472, Mesa ps3.544
the game's resolution, warm-up + 120 s
blit8 fps whole run 33 cpu 264.4 seconds underruns 4027 underruns ram_free 38.8 MiB vram 17.9 MiB longest_ms 128.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.5 seconds stall_play_s 0.6 seconds longest_play_ms 128.1 ms Kernel ps3.472, Mesa ps3.544
the game's resolution, warm-up + 120 s
blit8 fps whole run 51 cpu 229.9 seconds underruns 3166 underruns ram_free 38.7 MiB vram 17.9 MiB longest_ms 108.5 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.1 seconds stall_play_s 0.1 seconds longest_play_ms 108.5 ms Kernel ps3.472, Mesa ps3.544
the game's resolution, warm-up + 120 s

Observations: 12 runs rotated, plus one profiled run of base with the pool (not for comparison). - 8bpp-optimized blitter: 34 to 52 fps steady with the pool (Gallium HUD), 1% low 13.0 to 18.4, frames over 100 ms 5 to 1 (0.4 to 0.1 s). - 32bpp-anim (base): 11 to 20 fps, 1% low 5.8 to 9.4, stalls 43 to 4.3 s. - Same picture in every arm. - The pool takes the 8 MB staging buffer each frame needed out of the memory allocator.

batch ssdroot3 OpenTTD C: blitters and view on the 1962 savegame (base against blit8, blit32, zoomout, scroll, x3 rotated)

2026-10-19 · batch 2026-10-19-ssdroot3-openttd-blitters · 15 runs in the batch (all games)

VariantConditions Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
base stall recorder at 10 ms 115.5410
blit32 stall recorder at 10 ms 136.5264
blit8 stall recorder at 10 ms 3513.43
scroll stall recorder at 10 ms 74.1804
zoomout stall recorder at 10 ms 74.0833
All numbers and setup of this batch
VariantNumbersSetup
base fps whole run 10 cpu 280.4 seconds underruns 4587 underruns ram_free 16.6 MiB vram 17.9 MiB longest_ms 472.3 ms stall_disk_s 0 seconds stall_swap_s 0.1 seconds stall_reclaim_s 0.1 seconds stall_gpu_s 1.8 seconds stall_cpu_s 48.0 seconds stall_play_s 52.8 seconds longest_play_ms 472.3 ms no build recorded
the game's resolution, warm-up + 120 s
blit32 fps whole run 12 cpu 273.3 seconds underruns 4301 underruns ram_free 24.2 MiB vram 15.9 MiB longest_ms 447.6 ms stall_disk_s 0 seconds stall_swap_s 0.0 seconds stall_reclaim_s 0.1 seconds stall_gpu_s 1.7 seconds stall_cpu_s 29.0 seconds stall_play_s 32.7 seconds longest_play_ms 447.6 ms no build recorded
the game's resolution, warm-up + 120 s
blit8 fps whole run 32 cpu 264.3 seconds underruns 3997 underruns ram_free 40.3 MiB vram 17.9 MiB longest_ms 191.9 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.3 seconds stall_play_s 0.4 seconds longest_play_ms 191.9 ms no build recorded
the game's resolution, warm-up + 120 s
scroll fps whole run 7 cpu 280.2 seconds underruns 4484 underruns ram_free 18.4 MiB vram 17.9 MiB longest_ms 611.4 ms stall_disk_s 0.1 seconds stall_swap_s 0.3 seconds stall_reclaim_s 0.2 seconds stall_gpu_s 3.7 seconds stall_cpu_s 106.1 seconds stall_play_s 115.1 seconds longest_play_ms 611.4 ms no build recorded
the game's resolution, warm-up + 120 s
zoomout fps whole run 6 cpu 274.9 seconds underruns 4415 underruns ram_free 13.1 MiB vram 17.9 MiB longest_ms 491.0 ms stall_disk_s 0.0 seconds stall_swap_s 0.3 seconds stall_reclaim_s 0.0 seconds stall_gpu_s 4.1 seconds stall_cpu_s 110.3 seconds stall_play_s 119.1 seconds longest_play_ms 491.0 ms no build recorded
the game's resolution, warm-up + 120 s

Observations: OpenGL driver, all three rounds finished, picture right on the webcam. - 32bpp-anim (base): 11 fps, 1% low 5.5-5.7, 43-54 s of stalls. - 8bpp-optimized: 34, 35 and 43 fps, 1% low 13-15, 0.3-0.5 s of stalls, free RAM 41 MB against 17-21. The picture matches base's (OpenGFX is an 8-bit set). - 32bpp-optimized: 13-14 fps, 26-35 s of stalls. - Zoomed out one step (4 times the sprites): 7 fps, 115-120 s of stalls. - Camera panned with the keyboard: 7-8 fps, 100-116 s of stalls. - Underruns stay at 2600-4500 with the 8bpp blitter: the music still runs.

batch ssdroot3 OpenTTD B: audio buffers on the 1962 savegame (base against hz22, buf2048, buf4096, x3 rotated)

2026-10-19 · batch 2026-10-19-ssdroot3-openttd-buffers · 12 runs in the batch (all games)

VariantConditions Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
base stall recorder at 10 ms 115.7414
buf2048 stall recorder at 10 ms 115.9360
buf4096 stall recorder at 10 ms 116.2360
hz22 stall recorder at 10 ms 126.1330
All numbers and setup of this batch
VariantNumbersSetup
base fps whole run 10 cpu 280.1 seconds underruns 4528 underruns ram_free 19.3 MiB vram 17.9 MiB longest_ms 312.2 ms stall_disk_s 0.0 seconds stall_swap_s 0.1 seconds stall_reclaim_s 0.1 seconds stall_gpu_s 1.8 seconds stall_cpu_s 48.2 seconds stall_play_s 52.7 seconds longest_play_ms 312.2 ms no build recorded
the game's resolution, warm-up + 120 s
buf2048 fps whole run 10 cpu 274.6 seconds underruns 3505 underruns ram_free 21.8 MiB vram 17.9 MiB longest_ms 296.1 ms stall_disk_s 0 seconds stall_swap_s 0.1 seconds stall_reclaim_s 0.1 seconds stall_gpu_s 1.7 seconds stall_cpu_s 40.7 seconds stall_play_s 45.1 seconds longest_play_ms 296.1 ms no build recorded
the game's resolution, warm-up + 120 s
buf4096 fps whole run 11 cpu 265.4 seconds underruns 1795 underruns ram_free 18.2 MiB vram 17.9 MiB longest_ms 548.8 ms stall_disk_s 0 seconds stall_swap_s 0.1 seconds stall_reclaim_s 0.0 seconds stall_gpu_s 1.7 seconds stall_cpu_s 37.6 seconds stall_play_s 43.9 seconds longest_play_ms 548.8 ms no build recorded
the game's resolution, warm-up + 120 s
hz22 fps whole run 11 cpu 267.9 seconds underruns 2878 underruns ram_free 13.2 MiB vram 17.9 MiB longest_ms 315.3 ms stall_disk_s 0 seconds stall_swap_s 0.0 seconds stall_reclaim_s 0.0 seconds stall_gpu_s 1.3 seconds stall_cpu_s 37.6 seconds stall_play_s 41.1 seconds longest_play_ms 315.3 ms no build recorded
the game's resolution, warm-up + 120 s

Observations: OpenGL driver, 32bpp-anim blitter, picture right on the webcam. - No arm helps. Each run is either 10-12 fps with 1800-4700 underruns or 14 fps with 80-700, in every arm including base. - base itself: 14 fps with 702 underruns in round 1, 11 fps with 4500 after. - The spread probably follows how much the music costs in that run (the playlist is random); not confirmed. - The room was noisy from about halfway through, so the microphone clips of the last runs are void.

batch ssdroot3 OpenTTD A: sound switches on the 1962 savegame (base against nosound, nomusic, quiet, x3 rotated)

2026-10-19 · batch 2026-10-19-ssdroot3-openttd-sound · 12 runs in the batch (all games)

VariantConditions Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
base stall recorder at 10 ms 115.5396
nomusic stall recorder at 10 ms 137.3235
nosound stall recorder at 10 ms 147.7175
quiet stall recorder at 10 ms 148.0173
All numbers and setup of this batch
VariantNumbersSetup
base fps whole run 10 cpu 280.6 seconds underruns 4632 underruns ram_free 14.6 MiB vram 17.9 MiB longest_ms 220.3 ms stall_disk_s 0 seconds stall_swap_s 0.1 seconds stall_reclaim_s 0.0 seconds stall_gpu_s 1.8 seconds stall_cpu_s 46.3 seconds stall_play_s 50.7 seconds longest_play_ms 220.3 ms no build recorded
the game's resolution, warm-up + 120 s
nomusic fps whole run 13 cpu 246.4 seconds underruns 88 underruns ram_free 16.9 MiB vram 17.9 MiB longest_ms 374.5 ms stall_disk_s 0 seconds stall_swap_s 0.0 seconds stall_reclaim_s 0.1 seconds stall_gpu_s 1.1 seconds stall_cpu_s 25.3 seconds stall_play_s 27.5 seconds longest_play_ms 374.5 ms no build recorded
the game's resolution, warm-up + 120 s
nosound fps whole run 13 cpu 234.2 seconds underruns 0 underruns ram_free 20.5 MiB vram 17.9 MiB longest_ms 310.0 ms stall_disk_s 0 seconds stall_swap_s 0.0 seconds stall_reclaim_s 0.1 seconds stall_gpu_s 0.8 seconds stall_cpu_s 18.5 seconds stall_play_s 20.1 seconds longest_play_ms 310.0 ms no build recorded
the game's resolution, warm-up + 120 s
quiet fps whole run 13 cpu 233.4 seconds underruns 0 underruns ram_free 21.0 MiB vram 17.9 MiB longest_ms 241.8 ms stall_disk_s 0 seconds stall_swap_s 0.0 seconds stall_reclaim_s 0 seconds stall_gpu_s 0.8 seconds stall_cpu_s 18.1 seconds stall_play_s 19.4 seconds longest_play_ms 241.8 ms no build recorded
the game's resolution, warm-up + 120 s

Observations: OpenGL driver, 32bpp-anim blitter (the package's default then), 120 s measured per run, webcam picture right in all 12 runs. Stalls are the time spent in frames over 100 ms. - base: 10-12 fps steady, 1% low 5.5-6.3, 32-53 s of stalls, 2326-4668 underruns. - Sound driver off: 14 fps, 19.5-21.4 s of stalls, 0 underruns. - Music driver off: 13 fps, 24-28 s of stalls, 63-107 underruns. - Both off: 14 fps, 19-21 s of stalls, 0 underruns. - base's first round (12 fps, 2326 underruns) was lighter than its other two.

batch ssdroot3 OpenTTD smoke: the 1962 savegame, software X11 video and simulation only (SSD root, .472)

2026-10-19 · batch 2026-10-19-ssdroot3-openttd-smoke · 2 runs in the batch (all games)

VariantConditions Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
simplay the recipe as it is ---
sw SDL_FRAMEBUFFER_ACCELERATION=0 ---
All numbers and setup of this batch
VariantNumbersSetup
simplay cpu 82.9 seconds ram_free 49.7 MiB no build recorded
the game's resolution, whole run
sw cpu 225.7 seconds underruns 3991 underruns ram_free 15.6 MiB no build recorded
the game's resolution, whole run

Observations: One run each. - Software video through X11: starts with the right picture and loads in 4.75 s. This path has no frame-rate counter. 3991 sound underruns; free memory fell to 15.9 MB. - Simulation only (no video, no sound): 6000 ticks of the savegame in 82.7 s with 83 s of CPU, about 2.2 times real time. Free memory 50.9 MB.

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.

VariantConditions Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
gl
not comparable
perf recording 186.5101
All numbers and setup of this batch
VariantNumbersSetup
gl fps whole run 18 cpu 241.4 seconds underruns 4172 underruns ram_free 26.3 MiB vram 25.8 MiB longest_ms 661.7 ms stall_play_s 14.7 seconds longest_play_ms 661.7 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 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)

VariantConditions Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
gl waker kick at 10 ms 219.240
All numbers and setup of this batch
VariantNumbersSetup
gl fps whole run 20 cpu 236.3 seconds underruns 3893 underruns ram_free 17.0 MiB vram 25.8 MiB longest_ms 642.4 ms stall_play_s 6.3 seconds longest_play_ms 642.4 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.

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)

VariantConditions Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
base waker kick at 10 ms
perf recording
---
All numbers and setup of this batch
VariantNumbersSetup
base cpu 171.3 seconds underruns 3759 underruns ram_free 18.3 MiB Mesa ps3.407
the game's resolution, whole run

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 + ps3rsx 0.249

2026-10-17 · batch 2026-10-17-mesa-262 · 12 runs in the batch (all games)

VariantConditions 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
VariantNumbersSetup
base cpu 40.8 seconds underruns 868 underruns ram_free 25.9 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)

VariantConditions 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
VariantNumbersSetup
base cpu 55.5 seconds underruns 1429 underruns ram_free 32.5 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)

VariantConditions Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
base the recipe as it is ---
accel the recipe as it is ---
accel8 the recipe as it is ---
All numbers and setup of this batch
VariantNumbersSetup
base cpu 48.2 seconds underruns 1169 underruns ram_free 33.9 MiB Mesa ps3.246, ps3rsx 0.249
the game's resolution, whole run
accel fps whole run 9.5 cpu 50.2 seconds underruns 1037.0 underruns ram_free 29.1 MiB vram 31.7 MiB Mesa ps3.246, ps3rsx 0.249
the game's resolution, whole run
accel8 fps whole run 12 cpu 55.0 seconds underruns 1098 underruns ram_free 42.4 MiB vram 31.7 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.246 + ps3rsx 0.219

2026-10-17 · batch 2026-10-17-mesa-246 · 7 runs in the batch (all games)

VariantConditions Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
accel the recipe as it is ---
All numbers and setup of this batch
VariantNumbersSetup
accel fps whole run 2 cpu 46.8 seconds underruns 937 underruns ram_free 30.4 MiB vram 31.7 MiB Mesa ps3.246, ps3rsx 0.219
the game's resolution, whole run

Observations: - Mesa ps3.246: no fence reference work when the fence is unchanged, one fence read per validate, no duplicate references. Same command stream. - Texture upload, format, mipmap and readback tests all pass. - X-Moto 37 fps on the driver's frame counter (35 on ps3.223); underruns 208 down to 126. - ClassiCube demo 44.9 fps (43.2 on ps3.225). - OpenTTD with libsdl3 +ps3.242: colours right (the user checked), but 2 fps on the counter and 937 underruns, because the framebuffer was converted on the CPU twice per frame. Killed at the 60 s cap. - Single runs.

Group 3 OpenTTD first smokes (Mesa ps3.225)

2026-10-16 · batch 2026-10-16-openttd-smokes · 4 runs in the batch (all games)

VariantConditions Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
base the recipe as it is ---
gl the recipe as it is ---
sim the recipe as it is ---
x11fb the recipe as it is ---
All numbers and setup of this batch
VariantNumbersSetup
base fps whole run 5 cpu 59.7 seconds underruns 1091 underruns ram_free 32.3 MiB vram 23.8 MiB Mesa ps3.225
the game's resolution, whole run
gl cpu 3.9 seconds ram_free 87.2 MiB vram 0.0 MiB Mesa ps3.225
the game's resolution, whole run
sim cpu 5.6 seconds ram_free 81.8 MiB Mesa ps3.225
the game's resolution, whole run
x11fb cpu 49.9 seconds underruns 1260 underruns ram_free 29.9 MiB Mesa ps3.225
the game's resolution, whole run

Observations: - Debian OpenTTD 15.1. - Simulation alone (20000 ticks, no video): 13.4 s. - Title-screen demo through SDL's accelerated framebuffer: a strong blue cast, 5 fps on the driver's frame counter, 1091 underruns. - Through plain X11: colours right, 1260 underruns, no frame counter on that path. - The GL driver refuses to start: "Single element texture formats not supported" (the GPU has no RG textures). - libsdl3 +ps3.242 fixes the blue cast but converts every frame on the CPU (about 2 fps); +ps3.254 uploads natively (about 8 fps).