All games

OpenArena

Gold · 82 with OpenArena (GL 2.0) 0.2 h played, 0 crashes

A fast Quake III Arena style deathmatch shooter with bots, free data included.

Genre
shooter first-person arena
Theme
sci-fi
Players
single player online multiplayer bots
Input
made for keyboard and mouse
View
3D first-person
Origin
remake or clone

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, openarena 0.8.8+dfsg-13

The platform builds under it (3)
Linux kernel6.12.111+ps3.747 Walnut's build
Mesa26.2.4-1+ps3.721 Walnut's build
ps3rsx0.735+k6.12.111+ps3.747 Walnut's build
DateLauncherRulesPlayEndedPicture
2026-10-25 OpenArena (GL 2.0) 1.09 minquit ok Details
2026-10-25 OpenArena (GL 1.2) 1.012 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.

OpenArena (GL 2.0)

VersionTestedMedalRules Frame rateSmoothnessSoundPictureStabilityDisplayLoad Play
Walnut 0.1
openarena 0.8.8+dfsg-13
2026-10-25 Gold · 82 1.0 646710010091-98 0.2 h
1 test

OpenArena (GL 1.2)

VersionTestedMedalRules Frame rateSmoothnessSoundPictureStabilityDisplayLoad Play
Walnut 0.1
openarena 0.8.8+dfsg-13
2026-10-25 Silver · 76 1.0 426810010091-100 0.2 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: OpenArena: timedemo of bench.dm_71, renderer and texture compression per variant.

The recipe's full description

OpenArena (ioquake3 0.8.8): timedemo of bench.dm_71 (as legacy/step0.sh), renderer and texture compression per variant. The game archives +set cvars to q3config.cfg on quit. Steady state: the timedemo repeated in one session (PASSES=1: every pass prints its line; passes starting 54 s or more after the first map load are counted until ~120 s, then the game is stopped). nextdemo is cleared before it runs (CL_NextDemo), so each pass sets it again: bench_loop = "set nextdemo vstr bench_again; demo bench", bench_again = "meminfo; vstr bench_loop" (in autoexec.cfg). Every pass reloads the map (CL_InitCGame again; opengl2 without r_glslKeepPrograms compiles its programs again too). fps=, maxms= and load= are the first pass's, as the single timedemo had them; steady is the median of the measured passes.

54 variants of the recipe
base stands for the gamethe recipe as it is, without a variant
tc0opengl1, uncompressed textures (step 0's tc0)
tc1opengl1, compressed (shipped default, step 0's tc1)
gl2min stands for the game-
gl2-
gl2min_upevery switch of ours back to upstream (Debian's behaviour, except the VAO cache and the model tangents, which have no switch: for those, compare with Debian's deb)
gl2min_shaders0001: shader objects kept attached after linking (their source and IR in Mesa)
gl2min_bones0002: the 27 bone-animation programs (105-matrix arrays, compare trees on nv30)
gl2min_fboprog0003: the 15 shadow and post-processing programs that need framebuffer objects
gl2min_recompile0004: every program compiled again at the demo's map load (load time, the second compile burst)
gl2min_lazy0005 (opt-in): each program built at its first use; stalls when a variant is first drawn
gl2min_modelverts0007: the permanent CPU copy of every MD3 vertex frame (hunk: ~87 MB for the demo's models)
gl2min_lods10009 (opt-in): only the full-detail LOD of each model (no _1, _2: -41% model memory, more vertices)
gl2min_lodbias10009: r_lodbias 1, LOD 0 never drawn so no longer loaded (-59% model memory, coarser models)
gl2min_cpuanim0010 (opt-in): MD3 animation on the CPU as opengl1 (no model VBOs, 18 fewer programs, more PPE)
gl2min_leansettings only: lazy and lods1 together; texture resolution (r_picmip 2 against ioquake3's default 1; the run's q3config.cfg holds what OpenArena had); uncompressed textures in gl2
gl2min_picmip2-
gl2min_tc0-
gl2min_color160027: vertex colours as unsigned shorts again (R16G16B16A16_UNORM, which nv30 can't fetch: u_vbuf converts them on the CPU at every draw, and nouveau keeps malloc'ed copies of the VRAM buffers it reads, after a few such reads of every new one: docs/MEMORY.md "OpenArena opengl2")
gl2min_mippowf0028: the gamma-correct mipmaps with a powf per texel channel (the same bytes, more CPU at loads and joins)
gl2min_md3pack0029 (opt-in): animated MD3 frames in 12 bytes a vertex instead of 20 (the demo's model VBOs 62 -> 37.5 MB of VRAM; 8-bit normals: on llvmpipe 1734 pixels of 30 frames differ by at most 2 levels)
scan0011: R_FindShader scanned the whole shader text again after a miss in its hash table
crc0012: crc32 of every pk3 entry read (nobody looks at the result)
noaltivec0013: the AltiVec versions of the MD3 interpolation and the diffuse lighting (needs the -maltivec build)
markclear0014: two 272-byte memsets for every plane a decal triangle is clipped against
sndeager0015: the sounds of a player model read and decoded when the player joins instead of at their first play
zlib0016: zlib instead of libdeflate for the pk3 entries
huffslow0018: the message Huffman trees fed 1053340 symbols at the first message (a command line cvar: the first message comes before autoexec.cfg)
upall of them as before (not the build flags, nor the AltiVec code being compiled in)
mergelm1Batching (ioquake3 0019-0022, gamedb/engines/ioquake3/technical.md): fewer GL calls and draws a frame from renderergl1. On llvmpipe forced to GL 2.1 the demo went from 3022 GL calls and 198 draws a frame to 377 and 79, the same picture (atlas: 74 pixels differ by at most 2). Each variant turns one change back to upstream, allbatchoff all four. 0019: the map's 32 lightmaps as one atlas texture, so a texture lit from several lightmaps is one batch (world batches 114 -> 27 a frame). Off by default since 0024: on the PS3 any atlas page adds ~10 s of hitches per run (stall_s 34-36 vs 24), the frame cost equal. mergelm1 turns it back on.
glcache00020: texture unit, GL_TEXTURE_2D and client array state sent at every call (not only when a draw needs a change)
lockarrays0021: glLockArraysEXT/glUnlockArraysEXT around every batch (Mesa only records the range)
skystrips0022: the sky box as a glBegin strip per row, a call per vertex (the demo shows no sky: expect no change here; islanddm drops from ~1450 sky calls a frame to 18)
allbatchoff-
keepimg0Loads during play (ioquake3 0025-0026, docs/STALLS.md "OpenArena"). Five bots join the demo, one every 200 frames (bot_minplayers, and qagame's loaddefered makes the cgame load each at once): 3 models, 3 skins, 3-6 textures each, 4 stalls of 130-400 ms a pass on the PS3; and every pass reloads the map: 3 load-screen stalls of 340/700/380 ms (402 image files read, decoded, DXT on the PPE), 10 of the run's 17.6 s of stalls (bench/analysis/passsplit.py tells the two apart). Both switches are on in base (llvmpipe: picture identical over three passes; the second pass on loads nothing during the demo, the reload 0.46 -> 0.17 s). The first pass still loads them (unmeasured). 0025: r_keepImages 0, every texture freed and its file loaded again at each map load
preload00026: cl_preloadLate 0, the joining players' models and skins loaded when they join
loads0-
defer0026 (opt-in, changes the picture): loaddefered ignored, the bots keep a substitute model (the demo player's) for the whole demo: what the joins cost against no player loads at all
mergelm2(Before 0024 the atlas was the default and the variant was mergelm0; the notes below were measured that way, "base" there is the atlas on, "mergelm0" the atlas off.) The atlas's ~5% (ps3.362 on Mesa ps3.299) is not in the frames: the window's frames of 100 ms or less render at the same rate with and without it (report.py smooth: 64.0-64.3 fps both ways), the loss is stall time (stall_s 37-45 s with it, 30-37 without). 0023 separates the atlas textures from the batching. mergelm2: the atlas pages with a batch per lightmap (199 draws, the order of mergelm0): stalls as base = the big page's memory, as mergelm0 = the batching. lmsize512 / lmsize256: pages of up to 16 / 4 lightmaps (92 / 132 draws, 1 MB / 256 KB uploads).
lmsize512-
lmsize256-
tc1nowmtc1 with no window manager, as step 0 ran: the window never reached the screen (SDL's fullscreen went unanswered), so this measures what showing the frames costs
allog-
b16-
f44-
b16f44-
p1024-
alnull-
f32-
lin-
nosound-
kick100Mesa ps3.282: a submission every 100 draws (0026), the Armagetron fix, checked here
rgbspuDXT1 of RGB sources (libspeq 2026-10-18, packages/walnut/tools/ps3-spu/doc/dxt-rgb.md): an RGB source (3 bytes a pixel, "speq: s3tc dxt1 ... comps 3" lines) used to be encoded on the PPE (165 ms for a 1024x1024, 43 ms for a 512x512: hitches when a texture loads mid-demo); now the SPEs take it. rgbppe sends RGB back to the PPE encoder (the old behaviour), rgbspu is the default with the same logging, so the pair differs in the switch alone. opengl1 uploads its opaque textures as GL_RGBA data (RGBA DXT1, comps 4), so count the comps 3 lines in game.log first: without them the pair measures nothing.
rgbppe-

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
OpenArena, opengl1 base 263970.60.034.6560 right, right
OpenArena, opengl2 gl2min 1511960.40.225.61990 right, right

RT mixer: RTPRIO=10 against RTPRIO=0 (OpenAL's mixer on SCHED_RR) on OpenArena, Yamagi Quake II and Luanti base x3 (kernel .874)

2026-10-28 · batch 2026-10-28-rtprio-openal · 18 runs in the batch (all games)

VariantConditions Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
base real-time priority 0 68.540.40
base real-time priority 10 68.340.10
All numbers and setup of this batch
VariantNumbersSetup
base fps whole run 62.5 cpu 143.8 seconds underruns 0 underruns longest_ms 645.7 ms stall_play_s 0.0 seconds longest_play_ms 39.6 ms no build recorded
the game's resolution, warm-up + 120 s
base fps whole run 62.5 cpu 156.6 seconds underruns 0 underruns longest_ms 700.8 ms stall_play_s 0.0 seconds longest_play_ms 43.5 ms no build recorded
the game's resolution, warm-up + 120 s

Observations: 18 runs, rounds alternating the order, none interfered. Every run fullscreen at 1920x1080, with a screenshot 40 s after the load. - No audible dropout in either arm. Inaudible gaps: 4 without the limit (Luanti 3, up to 102 ms; Yamagi 1, 67 ms), 1 with it (Yamagi, 7 ms). - OpenArena, without against with: 68.55 against 68.3 fps steady, 1% low 37.5 against 36.6. - Yamagi Quake II: 86.8 against 86.3 fps (the ranges don't overlap). - Luanti: 46 against 45 fps (HUD), 1% low 19.8 against 20.9, stall time 4.1 against 2.6 s. - 20 live runs outside the harness (OpenArena and Quake III with bots) agree: no gain, a small fps cost. - Extreme Tux Racer and Armagetron were left out: their recipes need a virtual input device that was not installed (the runs sat in menus), and neither plays through OpenAL.

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)

VariantConditions Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
gl2min stall recorder at 10 ms 61.928.11
gl2min stall recorder at 10 ms
switch snd_dma_watchdog_ms0
62.328.10.5
All numbers and setup of this batch
VariantNumbersSetup
gl2min fps whole run 48.7 cpu 212.1 seconds underruns 0 underruns ram_free 18.9 MiB vram 117.0 MiB longest_ms 3076.0 ms stall_disk_s 1.1 seconds stall_swap_s 0.2 seconds stall_reclaim_s 1.0 seconds stall_gpu_s 0.5 seconds stall_cpu_s 39.0 seconds stall_play_s 0.2 seconds longest_play_ms 148.7 ms Kernel ps3.472, Mesa ps3.545~dev
the game's resolution, warm-up + 120 s
gl2min fps whole run 48.8 cpu 191.7 seconds underruns 0.0 underruns ram_free 16.4 MiB vram 116.9 MiB longest_ms 21436.5 ms stall_disk_s 0.8 seconds stall_swap_s 2.6 seconds stall_reclaim_s 1.0 seconds stall_gpu_s 0.3 seconds stall_cpu_s 26.9 seconds stall_play_s 0.1 seconds longest_play_ms 139.2 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 ssdroot11 Mesa 0044: NV30_MINMAX_VMX=1 against unset on Sauerbraten base and OpenArena gl2min x3 (SSD root .472 Mesa ps3.545~dev)

2026-10-20 · batch 2026-10-20-ssdroot11-minmax-vmx · 12 runs in the batch (all games)

VariantConditions Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
gl2min stall recorder at 10 ms 62.728.22
gl2min stall recorder at 10 ms
switch minmax_vmx1
61.726.91
All numbers and setup of this batch
VariantNumbersSetup
gl2min fps whole run 48.2 cpu 184.1 seconds underruns 0 underruns ram_free 19.2 MiB vram 117.0 MiB longest_ms 3211.0 ms stall_disk_s 1.0 seconds stall_swap_s 0.3 seconds stall_reclaim_s 1.7 seconds stall_gpu_s 0.4 seconds stall_cpu_s 32.1 seconds stall_play_s 0.3 seconds longest_play_ms 192.6 ms Kernel ps3.472, Mesa ps3.545~dev
the game's resolution, warm-up + 120 s
gl2min fps whole run 48.6 cpu 185.0 seconds underruns 0 underruns ram_free 17.0 MiB vram 116.6 MiB longest_ms 3222.0 ms stall_disk_s 1.1 seconds stall_swap_s 0.5 seconds stall_reclaim_s 1.2 seconds stall_gpu_s 0.4 seconds stall_cpu_s 31.2 seconds stall_play_s 0.1 seconds longest_play_ms 143.3 ms Kernel ps3.472, Mesa ps3.545~dev
the game's resolution, warm-up + 120 s

Observations: 12 runs rotated, none interfered. - BananaBread: 39.64 fps unset against 39.37 with 0044 (x0.993). 1% low 26.9 against 25.7. Load 7.0 against 7.2 s. - OpenArena opengl2: 62.7 against 61.7 fps (x0.984). 1% low 7.6 against 7.5.

batch ssdroot9 Mesa 0041: NV30_FENCE_WORK_KICK=1024 against unset on OpenArena gl2min x5 (SSD root .472 Mesa ps3.545~dev)

2026-10-20 · batch 2026-10-20-ssdroot9-fence-work-kick · 10 runs in the batch (all games)

VariantConditions Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
gl2min stall recorder at 10 ms 62.027.81
gl2min stall recorder at 10 ms
switch fence_work_kick1024
62.928.22
All numbers and setup of this batch
VariantNumbersSetup
gl2min fps whole run 49.7 cpu 191.7 seconds underruns 0 underruns ram_free 16.2 MiB vram 117.0 MiB longest_ms 3202.0 ms stall_disk_s 1.3 seconds stall_swap_s 0.4 seconds stall_reclaim_s 1.3 seconds stall_gpu_s 0.4 seconds stall_cpu_s 31.9 seconds stall_play_s 0.2 seconds longest_play_ms 172.4 ms Kernel ps3.472, Mesa ps3.545~dev
the game's resolution, warm-up + 120 s
gl2min fps whole run 49.8 cpu 209.7 seconds underruns 0 underruns ram_free 19.9 MiB vram 119.5 MiB longest_ms 3166.0 ms stall_disk_s 0.9 seconds stall_swap_s 0.8 seconds stall_reclaim_s 1.4 seconds stall_gpu_s 0.5 seconds stall_cpu_s 38.2 seconds stall_play_s 0.3 seconds longest_play_ms 165.8 ms Kernel ps3.472, Mesa ps3.545~dev
the game's resolution, warm-up + 120 s

Observations: 10 runs rotated, none interfered. - Steady fps 62.9 with 1024 against 62.0 unset (+1.5%). 1% low 7.5 in both. Gameplay unchanged. - CPU not lower: 210 s against 192 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)

VariantConditions Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
gl2min stall recorder at 10 ms 61.627.13
All numbers and setup of this batch
VariantNumbersSetup
gl2min fps whole run 20.1 cpu 176.2 seconds underruns 0 underruns ram_free 16.0 MiB vram 116.9 MiB longest_ms 3773.0 ms stall_disk_s 1.1 seconds stall_swap_s 2.5 seconds stall_reclaim_s 1.2 seconds stall_gpu_s 0.4 seconds stall_cpu_s 31.0 seconds stall_play_s 0.4 seconds longest_play_ms 129.7 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)

VariantConditions Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
gl2min stall recorder at 10 ms
switch force_dxt_stats50
61.827.22.0
gl2min stall recorder at 10 ms
switch force_dxtopaque_force_dxt_stats50
62.127.81.5
gl2min_tc0 stall recorder at 10 ms
switch force_dxt_stats50
58.625.63.0
gl2min_tc0 stall recorder at 10 ms
switch force_dxtopaque_force_dxt_stats50
58.925.43.0
All numbers and setup of this batch
VariantNumbersSetup
gl2min fps whole run 48.2 cpu 187.2 seconds underruns 0.0 underruns ram_free 13.4 MiB vram 115.3 MiB longest_ms 3206.0 ms stall_disk_s 1.6 seconds stall_swap_s 1.4 seconds stall_reclaim_s 1.4 seconds stall_gpu_s 0.5 seconds stall_cpu_s 32.0 seconds stall_play_s 0.3 seconds longest_play_ms 160.7 ms Kernel ps3.472, Mesa ps3.545~dev
the game's resolution, warm-up + 120 s
gl2min fps whole run 49.1 cpu 201.7 seconds underruns 0.0 underruns ram_free 17.4 MiB vram 117.0 MiB longest_ms 3228.5 ms stall_disk_s 1.5 seconds stall_swap_s 1.3 seconds stall_reclaim_s 1.5 seconds stall_gpu_s 0.4 seconds stall_cpu_s 31.8 seconds stall_play_s 0.2 seconds longest_play_ms 159.3 ms Kernel ps3.472, Mesa ps3.545~dev
the game's resolution, warm-up + 120 s
gl2min_tc0 fps whole run 46.4 cpu 187.5 seconds underruns 0.0 underruns ram_free 19.8 MiB vram 146.8 MiB longest_ms 3498.0 ms stall_disk_s 1.1 seconds stall_swap_s 0.6 seconds stall_reclaim_s 1.5 seconds stall_gpu_s 0.1 seconds stall_cpu_s 31.1 seconds stall_play_s 0.6 seconds longest_play_ms 298.8 ms Kernel ps3.472, Mesa ps3.545~dev
the game's resolution, warm-up + 120 s
gl2min_tc0 fps whole run 47.3 cpu 185.9 seconds underruns 0.0 underruns ram_free 19.1 MiB vram 148.2 MiB longest_ms 3227.0 ms stall_disk_s 1.1 seconds stall_swap_s 1.1 seconds stall_reclaim_s 1.3 seconds stall_gpu_s 0.1 seconds stall_cpu_s 30.9 seconds stall_play_s 0.5 seconds longest_play_ms 163.6 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)

VariantConditions Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
gl2min stall recorder at 10 ms 57.025.20.0
All numbers and setup of this batch
VariantNumbersSetup
gl2min fps whole run 47.0 cpu 185.9 seconds underruns 0.0 underruns ram_free 21.1 MiB vram 117.0 MiB longest_ms 3337.0 ms stall_disk_s 1.6 seconds stall_swap_s 0.1 seconds stall_reclaim_s 1.6 seconds stall_gpu_s 0.5 seconds stall_cpu_s 31.8 seconds stall_play_s 0.0 seconds longest_play_ms 91.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, 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 ssdroot6 Mesa 0041: NV30_FENCE_WORK_KICK=1024 and =0 against unset on OpenArena gl2min x3 (SSD root .472 Mesa ps3.545~dev)

2026-10-19 · batch 2026-10-19-ssdroot6-fence-work-kick · 7 runs in the batch (all games)

VariantConditions Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
gl2min stall recorder at 10 ms 62.328.10.0
gl2min stall recorder at 10 ms
switch fence_work_kick0
63.228.90
gl2min stall recorder at 10 ms
switch fence_work_kick1024
65.329.50.5
All numbers and setup of this batch
VariantNumbersSetup
gl2min fps whole run 50.0 cpu 211.9 seconds underruns 0.0 underruns ram_free 15.6 MiB vram 117.0 MiB longest_ms 3142.5 ms stall_disk_s 1.1 seconds stall_swap_s 0.8 seconds stall_reclaim_s 0.6 seconds stall_gpu_s 0.5 seconds stall_cpu_s 32.1 seconds stall_play_s 0.0 seconds longest_play_ms 63.8 ms Kernel ps3.472, Mesa ps3.545~dev
the game's resolution, warm-up + 120 s
gl2min fps whole run 51.9 cpu 216.5 seconds underruns 0 underruns ram_free 16.5 MiB vram 119.6 MiB longest_ms 3079.0 ms stall_disk_s 0.7 seconds stall_swap_s 0.4 seconds stall_reclaim_s 0.6 seconds stall_gpu_s 0.6 seconds stall_cpu_s 39.3 seconds stall_play_s 0.0 seconds longest_play_ms 81.8 ms Kernel ps3.472, Mesa ps3.545~dev
the game's resolution, warm-up + 120 s
gl2min fps whole run 52.2 cpu 222.2 seconds underruns 0.0 underruns ram_free 14.4 MiB vram 119.5 MiB longest_ms 3147.5 ms stall_disk_s 1.0 seconds stall_swap_s 0.8 seconds stall_reclaim_s 0.6 seconds stall_gpu_s 0.6 seconds stall_cpu_s 39.5 seconds stall_play_s 0.1 seconds longest_play_ms 97.7 ms Kernel ps3.472, Mesa ps3.545~dev
the game's resolution, warm-up + 120 s

Observations: 9 runs rotated over three arms: unset, 1024 and 0. Webcam picture right in all. - The last two runs were interfered (an SSH session copying a package) and left out: 2 runs unset, 2 with 1024, 3 with 0. - Steady fps: unset 62.3, 1024 65.4, 0 63.2. That is +5% over unset but only +3.5% over 0, and inside the unset arm's spread: indicative, not proven. - 1% low: 28.2 unset, 29.5 with 1024, 28.9 with 0. No gameplay stalls except one frame each in a 1024 run (0.1 s) and a 0 run (629 ms). - Load 6.7 s in every arm. - CPU did not fall: 212 s unset, 222 s with 1024, 216 s with 0. - Three runs ended in an ioquake3 crash when the harness stopped the game at the end. Earlier runs without 0041 did the same, so 0041 is not the cause.

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)

VariantConditions Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
gl2min stall recorder at 10 ms
switch zng
61.127.40.0
gl2min stall recorder at 10 ms
switch zng
switch ldstock-png
63.028.60.0
All numbers and setup of this batch
VariantNumbersSetup
gl2min fps whole run 51.0 cpu 211.6 seconds underruns 0.0 underruns ram_free 14.4 MiB vram 117.2 MiB longest_ms 3154.0 ms stall_disk_s 1.0 seconds stall_swap_s 0.8 seconds stall_reclaim_s 0.6 seconds stall_gpu_s 0.4 seconds stall_cpu_s 32.5 seconds stall_play_s 0.0 seconds longest_play_ms 71.7 ms Kernel ps3.472, Mesa ps3.545~dev
the game's resolution, warm-up + 120 s
gl2min fps whole run 50.5 cpu 235.5 seconds underruns 0.0 underruns ram_free 16.4 MiB vram 117.0 MiB longest_ms 3117.5 ms stall_disk_s 0.7 seconds stall_swap_s 0.4 seconds stall_reclaim_s 0.7 seconds stall_gpu_s 0.5 seconds stall_cpu_s 39.1 seconds stall_play_s 0.0 seconds longest_play_ms 65.5 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 OpenAL: the new openal-soft +ps3.549 against Debian's stock (LDPATH) and int16 against float output (OAL=f32) on OpenArena gl2min and ClassiCube base x3 (SSD root .472 Mesa ps3.544)

2026-10-19 · batch 2026-10-19-ssdroot5-openal · 24 runs in the batch (all games)

VariantConditions Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
gl2min stall recorder at 10 ms 57.225.20
gl2min stall recorder at 10 ms
switch ldstock-openal
56.223.53
gl2min stall recorder at 10 ms
switch oalf32
56.825.02
gl2min stall recorder at 10 ms
switch oalf32
switch ldstock-openal
56.924.40
All numbers and setup of this batch
VariantNumbersSetup
gl2min fps whole run 46.2 cpu 183.7 seconds underruns 0 underruns ram_free 16.3 MiB vram 117.0 MiB longest_ms 3350.0 ms stall_disk_s 1.2 seconds stall_swap_s 0.8 seconds stall_reclaim_s 1.3 seconds stall_gpu_s 0.4 seconds stall_cpu_s 31.7 seconds stall_play_s 0.0 seconds longest_play_ms 93.2 ms Kernel ps3.472, Mesa ps3.544
the game's resolution, warm-up + 120 s
gl2min fps whole run 45.0 cpu 194.1 seconds underruns 0 underruns ram_free 17.7 MiB vram 117.0 MiB longest_ms 3241.0 ms stall_disk_s 1.1 seconds stall_swap_s 0.5 seconds stall_reclaim_s 1.5 seconds stall_gpu_s 0.5 seconds stall_cpu_s 31.8 seconds stall_play_s 0.4 seconds longest_play_ms 200.7 ms Kernel ps3.472, Mesa ps3.544
the game's resolution, warm-up + 120 s
gl2min fps whole run 46.2 cpu 186.4 seconds underruns 0 underruns ram_free 17.4 MiB vram 116.9 MiB longest_ms 3364.0 ms stall_disk_s 0.9 seconds stall_swap_s 0.4 seconds stall_reclaim_s 1.5 seconds stall_gpu_s 0.5 seconds stall_cpu_s 31.6 seconds stall_play_s 0.3 seconds longest_play_ms 177.9 ms Kernel ps3.472, Mesa ps3.544
the game's resolution, warm-up + 120 s
gl2min fps whole run 46.8 cpu 190.3 seconds underruns 0 underruns ram_free 19.2 MiB vram 117.0 MiB longest_ms 3207.0 ms stall_disk_s 0.9 seconds stall_swap_s 0.4 seconds stall_reclaim_s 1.1 seconds stall_gpu_s 0.5 seconds stall_cpu_s 31.9 seconds stall_play_s 0.0 seconds longest_play_ms 85.4 ms Kernel ps3.472, Mesa ps3.544
the game's resolution, warm-up + 120 s

Observations: 24 runs rotated, four arms per game: our library or Debian's, each with integer or float output. - OpenArena: 57.3 fps steady with our library against 56.3 with Debian's (+2%). - ClassiCube unchanged at 46.2 fps (limited by the GPU). - Integer against float output: within the noise. - Load times equal: 6.8-7.1 s and 7.5-7.7 s.

batch ssdroot5 Mesa 0040: NV30_STAGING_POOL_MB=24 against off on ClassiCube base and OpenArena gl2min x3 (SSD root .472 Mesa ps3.544)

2026-10-19 · batch 2026-10-19-ssdroot5-staging-pool · 12 runs in the batch (all games)

VariantConditions Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
gl2min stall recorder at 10 ms 57.625.81
gl2min stall recorder at 10 ms
switch staging_pool_mb24
57.024.72
All numbers and setup of this batch
VariantNumbersSetup
gl2min fps whole run 47.7 cpu 183.8 seconds underruns 0 underruns ram_free 16.9 MiB vram 117.2 MiB longest_ms 3327.0 ms stall_disk_s 1.3 seconds stall_swap_s 0.6 seconds stall_reclaim_s 1.5 seconds stall_gpu_s 0.4 seconds stall_cpu_s 31.3 seconds stall_play_s 0.2 seconds longest_play_ms 205.4 ms Kernel ps3.472, Mesa ps3.544
the game's resolution, warm-up + 120 s
gl2min fps whole run 45.8 cpu 183.8 seconds underruns 0 underruns ram_free 16.1 MiB vram 116.9 MiB longest_ms 3166.0 ms stall_disk_s 1.2 seconds stall_swap_s 0.3 seconds stall_reclaim_s 1.5 seconds stall_gpu_s 0.5 seconds stall_cpu_s 31.5 seconds stall_play_s 0.3 seconds longest_play_ms 190.0 ms Kernel ps3.472, Mesa ps3.544
the game's resolution, warm-up + 120 s

Observations: 12 runs. - ClassiCube: 46.25 fps steady in both arms, VRAM 61.5 MiB in both, CPU 83 s in both. - OpenArena opengl2: 57.65 fps without the pool against 56.95 with it, inside the 56.5-61.4 run-to-run spread. CPU 184 s in both; gameplay stalls under 1 s in both.

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)

VariantConditions Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
gl2min stall recorder at 10 ms
switch force_dxt_stats50
56.323.00.0
gl2min stall recorder at 10 ms
switch force_dxtopaque_force_dxt_stats50
55.822.93.0
All numbers and setup of this batch
VariantNumbersSetup
gl2min fps whole run 45.2 cpu 199.2 seconds underruns 0.0 underruns ram_free 14.9 MiB vram 117.3 MiB longest_ms 3254.0 ms stall_disk_s 1.2 seconds stall_swap_s 0.6 seconds stall_reclaim_s 2.0 seconds stall_gpu_s 0.5 seconds stall_cpu_s 31.8 seconds stall_play_s 0.0 seconds longest_play_ms 88.5 ms no build recorded
the game's resolution, warm-up + 120 s
gl2min fps whole run 45.0 cpu 197.5 seconds underruns 0.0 underruns ram_free 19.8 MiB vram 116.9 MiB longest_ms 3157.5 ms stall_disk_s 1.1 seconds stall_swap_s 0.2 seconds stall_reclaim_s 1.6 seconds stall_gpu_s 0.6 seconds stall_cpu_s 31.6 seconds stall_play_s 0.4 seconds longest_play_ms 191.4 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.

VariantConditions Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
gl2min
not comparable
perf recording 56.024.30
All numbers and setup of this batch
VariantNumbersSetup
gl2min fps whole run 46.5 cpu 203.4 seconds underruns 0 underruns ram_free 19.6 MiB vram 116.4 MiB longest_ms 3265.0 ms stall_play_s 0.0 seconds longest_play_ms 86.9 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.

VariantConditions Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
gl2min
not comparable
stall recorder at 10 ms
start-up profile
64.927.62
All numbers and setup of this batch
VariantNumbersSetup
gl2min fps whole run 47.7 cpu 202.9 seconds underruns 0 underruns ram_free 16.4 MiB vram 117.2 MiB longest_ms 3346.0 ms stall_disk_s 1.3 seconds stall_swap_s 0.3 seconds stall_reclaim_s 2.1 seconds stall_gpu_s 0.6 seconds stall_cpu_s 38.7 seconds stall_play_s 0.2 seconds longest_play_ms 131.2 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)

VariantConditions Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
gl2min stall recorder at 10 ms 60.425.61
All numbers and setup of this batch
VariantNumbersSetup
gl2min fps whole run 48.8 cpu 194.4 seconds underruns 0 underruns ram_free 15.3 MiB vram 116.3 MiB longest_ms 3332.0 ms stall_disk_s 1.1 seconds stall_swap_s 0.2 seconds stall_reclaim_s 1.5 seconds stall_gpu_s 0.6 seconds stall_cpu_s 31.4 seconds stall_play_s 0.2 seconds longest_play_ms 199.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 ssd1: SSD game data and SSD swap spill against the USB disk (Sauerbraten base x3, OpenArena gl2min)

2026-10-18 · batch 2026-10-18-ssd1 · 15 runs in the batch (all games)

VariantConditions Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
gl2min stall recorder at 10 ms 55.923.13.0
gl2min stall recorder at 10 ms
switch gdssd
56.123.50
gl2min stall recorder at 10 ms
switch gdssd
switch swssd
56.124.41
All numbers and setup of this batch
VariantNumbersSetup
gl2min fps whole run 36.5 cpu 197.0 seconds underruns 0.0 underruns ram_free 13.4 MiB vram 117.2 MiB longest_ms 4750.0 ms stall_disk_s 4.3 seconds stall_swap_s 0.3 seconds stall_reclaim_s 1.5 seconds stall_gpu_s 0.6 seconds stall_cpu_s 31.4 seconds stall_play_s 0.3 seconds longest_play_ms 111.1 ms no build recorded
the game's resolution, warm-up + 120 s
gl2min fps whole run 39.7 cpu 196.2 seconds underruns 0 underruns ram_free 11.8 MiB vram 117.2 MiB longest_ms 3650.0 ms stall_disk_s 3.9 seconds stall_swap_s 0.5 seconds stall_reclaim_s 1.3 seconds stall_gpu_s 0.4 seconds stall_cpu_s 31.6 seconds stall_play_s 0.0 seconds longest_play_ms 95.9 ms no build recorded
the game's resolution, warm-up + 120 s
gl2min fps whole run 42.4 cpu 195.7 seconds underruns 0 underruns ram_free 14.1 MiB vram 117.2 MiB longest_ms 3500.0 ms stall_disk_s 5.3 seconds stall_swap_s 0.2 seconds stall_reclaim_s 1.3 seconds stall_gpu_s 0.6 seconds stall_cpu_s 31.3 seconds stall_play_s 0.1 seconds longest_play_ms 105.2 ms no build recorded
the game's resolution, warm-up + 120 s

Observations: - Same boot, kernel 6.12.111+ps3.472, root on USB. Three arms: all on USB, game data on the SSD, game data and swap on the SSD. - BananaBread, three complete rounds (9 runs): the SSD lifts only the game data. The load's disk wait stays 4.8-5.5 s (USB 5.5, SSD 4.9, SSD plus swap 5.4). - BananaBread load 16.9, 15.9, 16.4 s; the gap is round 1's cold start (round 3: 15.4, 15.4, 15.3). Stalls 1.6, 1.0, 1.6 s; 1% low 24.1, 26.4, 24.1; steady 38.5, 39.3, 38.5 fps. No clear effect. - OpenArena OpenGL 2: load 10.7 s on USB to 7.7 and 7.6 s on the SSD (-28%). Map-reload stalls in the window 52 to 41-44 s. Gameplay-only stalls about 0 in every arm, steady 55.9-56.1 fps. Only 2, 1 and 3 runs per arm: indicative. - One OpenArena SSD run left out (a key press at 195 s). A last OpenArena run was killed by the operator and is invalid. - The picture showed in all 16 runs.

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)

VariantConditions Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
gl2min stall recorder at 10 ms 59.521.98.0
gl2min stall recorder at 10 ms
start-up profile
57.921.77
gl2min stall recorder at 10 ms
start-up profile
switch sccold
57.622.56
gl2min stall recorder at 10 ms
start-up profile
switch scprime
57.422.54
gl2min stall recorder at 10 ms
start-up profile
switch scwarm
55.422.75
gl2min_color16 stall recorder at 10 ms 52.410.830.5
gl2min_color16 stall recorder at 10 ms
switch invalidate_buffer1_sysmem_copy2_sysmem_stats300
59.122.88.5
gl2min_color16 stall recorder at 10 ms
switch sysmem_stats300
53.713.922.0
gl2min_md3pack stall recorder at 10 ms 59.023.54.0
gl2min_mippowf stall recorder at 10 ms 60.023.64.5
All numbers and setup of this batch
VariantNumbersSetup
gl2min fps whole run 40.5 cpu 200.3 seconds underruns 0.0 underruns ram_free 15.2 MiB vram 117.1 MiB longest_ms 5067.5 ms stall_disk_s 5.6 seconds stall_swap_s 0.9 seconds stall_reclaim_s 1.8 seconds stall_gpu_s 0.5 seconds stall_cpu_s 32.0 seconds stall_play_s 2.4 seconds longest_play_ms 867.7 ms no build recorded
the game's resolution, warm-up + 120 s
gl2min fps whole run 40.8 cpu 201.5 seconds underruns 0 underruns ram_free 15.9 MiB vram 116.9 MiB longest_ms 4620.0 ms stall_disk_s 5.8 seconds stall_swap_s 0.2 seconds stall_reclaim_s 0.9 seconds stall_gpu_s 0.6 seconds stall_cpu_s 32.3 seconds stall_play_s 1.9 seconds longest_play_ms 896.5 ms no build recorded
the game's resolution, warm-up + 120 s
gl2min fps whole run 39.4 cpu 201.6 seconds underruns 0 underruns ram_free 20.4 MiB vram 116.9 MiB longest_ms 5068.0 ms stall_disk_s 6.9 seconds stall_swap_s 0.4 seconds stall_reclaim_s 1.3 seconds stall_gpu_s 0.5 seconds stall_cpu_s 32.6 seconds stall_play_s 1.0 seconds longest_play_ms 406.1 ms no build recorded
the game's resolution, warm-up + 120 s
gl2min fps whole run 36.6 cpu 201.3 seconds underruns 0 underruns ram_free 13.9 MiB vram 117.2 MiB longest_ms 4304.0 ms stall_disk_s 6.1 seconds stall_swap_s 0.9 seconds stall_reclaim_s 1.0 seconds stall_gpu_s 0.5 seconds stall_cpu_s 32.4 seconds stall_play_s 1.1 seconds longest_play_ms 736.6 ms no build recorded
the game's resolution, warm-up + 120 s
gl2min fps whole run 37.6 cpu 199.8 seconds underruns 0 underruns ram_free 14.1 MiB vram 117.2 MiB longest_ms 4738.0 ms stall_disk_s 5.3 seconds stall_swap_s 0.6 seconds stall_reclaim_s 1.1 seconds stall_gpu_s 0.6 seconds stall_cpu_s 32.4 seconds stall_play_s 0.7 seconds longest_play_ms 207.5 ms no build recorded
the game's resolution, warm-up + 120 s
gl2min_color16 fps whole run 31.5 cpu 189.9 seconds underruns 0.0 underruns ram_free 10.1 MiB vram 116.6 MiB longest_ms 11122.5 ms stall_disk_s 7.8 seconds stall_swap_s 20.1 seconds stall_reclaim_s 4.2 seconds stall_gpu_s 0.4 seconds stall_cpu_s 23.6 seconds stall_play_s 12.9 seconds longest_play_ms 2023.0 ms no build recorded
the game's resolution, warm-up + 120 s
gl2min_color16 fps whole run 39.7 cpu 197.8 seconds underruns 0.0 underruns ram_free 16.5 MiB vram 117.1 MiB longest_ms 4838.5 ms stall_disk_s 6.6 seconds stall_swap_s 0.9 seconds stall_reclaim_s 2.1 seconds stall_gpu_s 0.5 seconds stall_cpu_s 31.6 seconds stall_play_s 1.4 seconds longest_play_ms 383.9 ms no build recorded
the game's resolution, warm-up + 120 s
gl2min_color16 fps whole run 31.2 cpu 187.0 seconds underruns 0.0 underruns ram_free 10.4 MiB vram 115.3 MiB longest_ms 12139.5 ms stall_disk_s 7.8 seconds stall_swap_s 22.9 seconds stall_reclaim_s 4.5 seconds stall_gpu_s 0.5 seconds stall_cpu_s 22.7 seconds stall_play_s 11.1 seconds longest_play_ms 3119.0 ms no build recorded
the game's resolution, warm-up + 120 s
gl2min_md3pack fps whole run 40.2 cpu 208.8 seconds underruns 0.0 underruns ram_free 16.6 MiB vram 97.7 MiB longest_ms 6304.0 ms stall_disk_s 6.6 seconds stall_swap_s 1.0 seconds stall_reclaim_s 1.8 seconds stall_gpu_s 0.4 seconds stall_cpu_s 35.8 seconds stall_play_s 1.3 seconds longest_play_ms 943.4 ms no build recorded
the game's resolution, warm-up + 120 s
gl2min_mippowf fps whole run 39.5 cpu 215.0 seconds underruns 0.0 underruns ram_free 11.7 MiB vram 117.2 MiB longest_ms 5718.0 ms stall_disk_s 3.8 seconds stall_swap_s 0.8 seconds stall_reclaim_s 1.9 seconds stall_gpu_s 0.6 seconds stall_cpu_s 41.2 seconds stall_play_s 0.8 seconds longest_play_ms 368.3 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)

VariantConditions Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
base the recipe as it is 66.133.58.0
gl2min stall recorder at 10 ms 51.814.820
gl2min stall recorder at 10 ms
switch gpffetch
53.115.518
All numbers and setup of this batch
VariantNumbersSetup
base fps whole run 56.1 cpu 187.8 seconds underruns 0.0 underruns ram_free 27.6 MiB vram 39.3 MiB longest_ms 1478.7 ms stall_play_s 4.2 seconds longest_play_ms 1267.5 ms no build recorded
the game's resolution, warm-up + 120 s
gl2min fps whole run 30.6 cpu 194.9 seconds underruns 0 underruns ram_free 9.5 MiB vram 117.2 MiB longest_ms 10783.0 ms stall_disk_s 6.8 seconds stall_swap_s 20.1 seconds stall_reclaim_s 3.1 seconds stall_gpu_s 0.4 seconds stall_cpu_s 28.9 seconds stall_play_s 11.0 seconds longest_play_ms 2038.0 ms no build recorded
the game's resolution, warm-up + 120 s
gl2min fps whole run 31.4 cpu 195.2 seconds underruns 0 underruns ram_free 9.1 MiB vram 117.2 MiB longest_ms 13510.0 ms stall_disk_s 8.8 seconds stall_swap_s 17.8 seconds stall_reclaim_s 3.0 seconds stall_gpu_s 0.4 seconds stall_cpu_s 28.9 seconds stall_play_s 10.4 seconds longest_play_ms 1782.0 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).

kernel 6.12.111+ps3.419 idle fix on/off (OpenArena ioquake3 379, no kicker)

2026-10-18 · batch 2026-10-18-kernel-419-idle · 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 66.830.97.0
All numbers and setup of this batch
VariantNumbersSetup
base fps whole run 50.8 cpu 183.3 seconds underruns 0.0 underruns ram_free 42.9 MiB vram 36.6 MiB longest_ms 1352.7 ms stall_play_s 3.0 seconds longest_play_ms 633.6 ms Kernel ps3.419
the game's resolution, warm-up + 120 s

Observations: - Same boot, the fix alternated on, off, on, off. - Gameplay stall time: 0.5, 8.2, 0.1, 5.6 s. Longest frame: 285, 2598, 122, 982 ms. Steady fps: 71.2, 64.4, 66.7, 67.0. - Caveat: a stuck wait loop polled the PS3 over SSH every 11 s or so through all four runs. It was the same for both arms, but the absolute values are not clean. Repeat clean on the final kernel.

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
base waker kick at 10 ms 67.836.90
base waker kick at 10 ms
switch mmmap
70.837.20
base waker kick at 10 ms
switch mtrim
70.936.61
gl2min waker kick at 10 ms
perf recording
53.413.527
All numbers and setup of this batch
VariantNumbersSetup
base fps whole run 55.8 cpu 121.9 seconds underruns 0.0 underruns ram_free 36.4 MiB vram 38.0 MiB longest_ms 669.7 ms stall_play_s 0.0 seconds longest_play_ms 72.5 ms Mesa ps3.408
the game's resolution, warm-up + 120 s
base fps whole run 56.9 cpu 134.4 seconds underruns 0.0 underruns ram_free 30.9 MiB vram 39.3 MiB longest_ms 619.1 ms stall_play_s 0.0 seconds longest_play_ms 90.1 ms Mesa ps3.408
the game's resolution, warm-up + 120 s
base fps whole run 56.1 cpu 136.1 seconds underruns 0.0 underruns ram_free 26.4 MiB vram 36.2 MiB longest_ms 938.4 ms stall_play_s 0.1 seconds longest_play_ms 112.2 ms Mesa ps3.408
the game's resolution, warm-up + 120 s
gl2min fps whole run 30.0 cpu 201.8 seconds underruns 0 underruns ram_free 9.7 MiB vram 114.7 MiB longest_ms 16148.0 ms stall_play_s 54.7 seconds longest_play_ms 16148.0 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.

ioquake3 ps3.396 (r_keepImages + cl_preloadLate), libspeq 0.394 (RGB DXT on SPEs), Mesa ps3.408 default LUT; recorder + kick

2026-10-18 · batch 2026-10-18-ioquake3-396 · 8 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
waker kick at 10 ms
70.634.60.0
loads0 stall recorder at 10 ms
waker kick at 10 ms
65.231.029.0
All numbers and setup of this batch
VariantNumbersSetup
base fps whole run 55.9 cpu 205.1 seconds underruns 0.0 underruns ram_free 26.0 MiB vram 39.3 MiB longest_ms 687.7 ms stall_disk_s 0.1 seconds stall_swap_s 0.0 seconds stall_reclaim_s 0.1 seconds stall_gpu_s 0.2 seconds stall_cpu_s 6.0 seconds stall_play_s 0.0 seconds longest_play_ms 55.6 ms Mesa ps3.408
the game's resolution, warm-up + 120 s
loads0 fps whole run 57.1 cpu 205.8 seconds underruns 0.0 underruns ram_free 28.9 MiB vram 39.4 MiB longest_ms 1369.5 ms stall_disk_s 0.8 seconds stall_swap_s 0.0 seconds stall_reclaim_s 0.6 seconds stall_gpu_s 0.2 seconds stall_cpu_s 16.6 seconds stall_play_s 9.4 seconds longest_play_ms 932.2 ms Mesa ps3.408
the game's resolution, warm-up + 120 s

Observations: - Same boot, two runs each, with the stall recorder and the waker kick. Mesa ps3.408 with the vertex lookup table on by default. - OpenArena, keeping images plus preloading against the old loading: gameplay stall time 0.0 and 0.0 s against 9.9 and 9.0 s, longest frame 64 and 47 ms against 1057 and 807 ms, steady 70.4 and 70.8 fps against 64.6 and 65.9. - BananaBread, RGB compression on the SPUs against the PPE: identical (39 fps). Its demo uploads no RGB DXT1 textures (only a few DXT5), so the RGB path isn't exercised. - The compression test alone: a 1024x1024 RGB texture in 1.0 ms on 4 SPUs against about 175 ms on the PPE.

lost decrementer: wakers (ps3-gpu-tools 0.399), OpenArena ioquake3 379

2026-10-18 · batch 2026-10-18-lost-decrementer · 10 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 56.828.038.0
base probe20 57.921.539.0
base stall recorder at 10 ms 62.728.127.5
base waker kick at 10 ms 64.333.425.5
base waker sleep at 10 ms 58.926.233.5
All numbers and setup of this batch
VariantNumbersSetup
base fps whole run 51.0 cpu 181.7 seconds underruns 0.0 underruns ram_free 27.8 MiB vram 39.4 MiB longest_ms 2564.5 ms stall_play_s 14.7 seconds longest_play_ms 2320.0 ms no build recorded
the game's resolution, warm-up + 120 s
base fps whole run 51.4 cpu 171.5 seconds underruns 0.0 underruns ram_free 23.5 MiB vram 39.3 MiB longest_ms 1331.0 ms stall_play_s 13.4 seconds longest_play_ms 1064.5 ms no build recorded
the game's resolution, warm-up + 120 s
base fps whole run 54.3 cpu 194.6 seconds underruns 0.0 underruns ram_free 28.5 MiB vram 39.4 MiB longest_ms 1462.5 ms stall_disk_s 0.8 seconds stall_swap_s 0.0 seconds stall_reclaim_s 0.3 seconds stall_gpu_s 0.2 seconds stall_cpu_s 15.4 seconds stall_play_s 7.9 seconds longest_play_ms 706.0 ms no build recorded
the game's resolution, warm-up + 120 s
base fps whole run 55.4 cpu 202.7 seconds underruns 0.0 underruns ram_free 27.6 MiB vram 39.4 MiB longest_ms 1166.5 ms stall_play_s 6.3 seconds longest_play_ms 435.4 ms no build recorded
the game's resolution, warm-up + 120 s
base fps whole run 56.0 cpu 194.1 seconds underruns 0.0 underruns ram_free 26.1 MiB vram 39.4 MiB longest_ms 1902.0 ms stall_play_s 12.1 seconds longest_play_ms 1272.0 ms no build recorded
the game's resolution, warm-up + 120 s

Observations: - Same boot, each variant twice, alternated. Gameplay stall time and longest frame: - Plain: 16.1 and 13.3 s, longest 2.8 and 1.8 s. - With the stall recorder at 10 ms: 7.7 and 8.1 s. - A sleeping waker thread: 11.1 and 13.0 s. - A 10 ms kick: 6.5 and 6.2 s, longest 0.45 and 0.42 s, 1% low 33.6 and 33.2. - A probe: 12.2 and 14.7 s. - The probe without a game: the second CPU woke up to 1.44 s late; never with a 10 ms kick. - Fix: kernel patch 0009 (6.12.111+ps3.402), with a kicker as a stopgap in game mode.

stall recorder (ps3-gpu-tools 0.385), ioquake3 ps3.379 (atlas off), Sauerbraten demo + nonfree data

2026-10-17 · batch 2026-10-17-stall-recorder · 7 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 57.88.669.0
All numbers and setup of this batch
VariantNumbersSetup
base fps whole run 49.2 cpu 183.0 seconds underruns 0.0 underruns ram_free 26.4 MiB vram 39.4 MiB longest_ms 2168.5 ms stall_disk_s 0.0 seconds stall_swap_s 0.0 seconds stall_reclaim_s 0.1 seconds stall_gpu_s 0.2 seconds stall_cpu_s 15.6 seconds no build recorded
the game's resolution, warm-up + 120 s

Observations: - Same boot. The recorder's own cost: 5.6% of a thread. - OpenArena, recorder off and on alternated: stall time 41.4, 17.9, 34.9, 17.6 s. The runs with it on had fewer stalls: unexplained, to be rechecked. - OpenArena's stalls are CPU: about 700 ms of main-thread time each, from skin and texture loads in the middle of the demo, with compression on the PPE for RGB textures. - BananaBread's demo with skinning on the SPUs, on the PPE, and off: 25.8, 25.5 and 25.3 fps steady, 3-4 stalls each. The causes are file faults and disk reads from the USB hard disk. - BananaBread's load is 16.5 s, of which 5.3 s is disk. - Picture checked on the webcam.

ioquake3 ps3.378 (0023 atlas variants), Mesa ps3.299

2026-10-17 · batch 2026-10-17-ioquake3-378-atlas · 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 57.06.187
lmsize256 the recipe as it is 54.46.292
mergelm0 the recipe as it is 58.89.962
mergelm2 the recipe as it is 55.65.788
All numbers and setup of this batch
VariantNumbersSetup
base fps whole run 50.5 cpu 132.3 seconds underruns 0 underruns ram_free 27.9 MiB vram 39.3 MiB longest_ms 1843.0 ms Mesa ps3.299
the game's resolution, warm-up + 120 s
lmsize256 fps whole run 48.6 cpu 144.8 seconds underruns 0 underruns ram_free 30.4 MiB vram 39.4 MiB longest_ms 3300.0 ms Mesa ps3.299
the game's resolution, warm-up + 120 s
mergelm0 fps whole run 52.2 cpu 180.7 seconds underruns 0 underruns ram_free 27.2 MiB vram 39.4 MiB longest_ms 2356.0 ms Mesa ps3.299
the game's resolution, warm-up + 120 s
mergelm2 fps whole run 51.7 cpu 150.8 seconds underruns 0 underruns ram_free 27.4 MiB vram 39.4 MiB longest_ms 1737.0 ms Mesa ps3.299
the game's resolution, warm-up + 120 s

Observations: - Same boot, three rounds. - Seconds of stalls per run: as built 34.1, atlas off 23.9, atlas with the old draws 35.6, 256-pixel atlas pages 36.2. - Smooth fps 63.7-65.7 in all variants. - 1% low: 6.1 as built, 9.9 atlas off, 5.7 atlas with old draws, 6.2 small pages. - Any atlas page adds about 10 s of hitches per run; the batching itself doesn't. Picture right on the webcam.

ioquake3 ps3.362 batching (0019-0022), Mesa ps3.299

2026-10-17 · batch 2026-10-17-ioquake3-362-batching · 8 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 53.45.496
allbatchoff the recipe as it is 56.47.186.0
glcache0 the recipe as it is 53.66.393
lockarrays the recipe as it is 55.45.789
mergelm0 the recipe as it is 56.16.182
All numbers and setup of this batch
VariantNumbersSetup
base fps whole run 49.6 cpu 130.6 seconds underruns 0 underruns ram_free 28.3 MiB vram 39.4 MiB longest_ms 2831.0 ms Mesa ps3.299
the game's resolution, warm-up + 120 s
allbatchoff fps whole run 50.8 cpu 182.7 seconds underruns 0.0 underruns ram_free 24.7 MiB vram 39.4 MiB longest_ms 2171.0 ms Mesa ps3.299
the game's resolution, warm-up + 120 s
glcache0 fps whole run 42.8 cpu 134.5 seconds underruns 0 underruns ram_free 26.2 MiB vram 39.4 MiB longest_ms 4799.0 ms Mesa ps3.299
the game's resolution, warm-up + 120 s
lockarrays fps whole run 42.2 cpu 131.0 seconds underruns 0 underruns ram_free 31.9 MiB vram 39.4 MiB longest_ms 2549.0 ms Mesa ps3.299
the game's resolution, warm-up + 120 s
mergelm0 fps whole run 47.3 cpu 159.4 seconds underruns 0 underruns ram_free 32.2 MiB vram 39.4 MiB longest_ms 2573.0 ms Mesa ps3.299
the game's resolution, warm-up + 120 s

Observations: - Same boot. Four variants turn changes off: all batching off, the lightmap atlas off, the GL state cache off, locked arrays. - Steady fps: all on 51.8, all off 56.4, atlas off 56.1, the others about the same as all on. - The lightmap atlas (0019) costs about 5% on the GPU side: CPU time drops, but frames get slower. - Picture right on the webcam.

Mesa ps3.299 + ps3rsx 0.249

2026-10-17 · batch 2026-10-17-mesa-299 · 24 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 fps whole run 52.3 cpu 38.2 seconds underruns 0.0 underruns ram_free 26.7 MiB vram 38.0 MiB Mesa ps3.299, ps3rsx 0.249
the game's resolution, whole run

Observations: - Clean runs only, two per game, watched by a webcam script with a single SSH connection. - Armagetron: 61.5 fps (50 on ps3.282). - OpenArena (compressed textures): 52.4 (51.3). - ClassiCube: 46.3, against 46.9 on ps3.282 on the same boot: noise. - X-Moto: 44.5, against 47.0 on ps3.282 on the same boot: a real -5%. Turning off adaptive submission (45.5) or the index change (45.0) does not restore it. Fragment constants from VRAM (46) and the late index upload (46) each win back about a frame: 0031 and 0028 cost about one frame each. - 0031 checked on the webcam with OpenArena's OpenGL 2 renderer: right picture, no GPU hang. The driver tests pass. - Earlier runs that day, made with an old webcam watcher that logged in over SSH every 5 s, were slowed and are left out.

ioquake3 ps3.285 + Mesa ps3.282 + ps3rsx 0.249

2026-10-17 · batch 2026-10-17-ioquake3-285 · 7 runs in the batch (all games)

VariantConditions Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
gl2 the recipe as it is ---
gl2min the recipe as it is ---
gl2min_cpuanim the recipe as it is ---
gl2min_lean the recipe as it is ---
gl2min_modelverts the recipe as it is ---
gl2min_up the recipe as it is ---
All numbers and setup of this batch
VariantNumbersSetup
gl2 fps whole run 15.9 cpu 62.6 seconds underruns 0 underruns ram_free 11.9 MiB vram 138.1 MiB Mesa ps3.282, ps3rsx 0.249
the game's resolution, whole run
gl2min fps whole run 29.0 cpu 51.8 seconds underruns 0.0 underruns ram_free 14.0 MiB vram 114.1 MiB Mesa ps3.282, ps3rsx 0.249
the game's resolution, whole run
gl2min_cpuanim fps whole run 30.5 cpu 53.1 seconds underruns 0 underruns ram_free 24.1 MiB vram 41.2 MiB Mesa ps3.282, ps3rsx 0.249
the game's resolution, whole run
gl2min_lean fps whole run 28.0 cpu 48.9 seconds underruns 0 underruns ram_free 32.2 MiB vram 90.4 MiB Mesa ps3.282, ps3rsx 0.249
the game's resolution, whole run
gl2min_modelverts fps whole run 17.6 cpu 59.3 seconds underruns 0 underruns ram_free 11.6 MiB vram 106.3 MiB Mesa ps3.282, ps3rsx 0.249
the game's resolution, whole run
gl2min_up fps whole run 14.8 cpu 103.0 seconds underruns 0 underruns ram_free 13.5 MiB vram 112.4 MiB Mesa ps3.282, ps3rsx 0.249
the game's resolution, whole run

Observations: - OpenArena with the OpenGL 2 renderer and lean settings, Mesa ps3.282. The demo was seen playing on the webcam in every counted run. - All patches undone (upstream code): 14.8 fps, longest frame 24.7 s, 103 s of CPU. - All patches on: 26.1 and 31.8 fps in two runs, longest frame 6.0 s, 55 s of CPU. - Patch 0007 off (the CPU copy of model vertices kept): 17.6 fps with an 18 s stall. 0007 is the big one. - Model animation on the CPU: 30.5 fps at 42 MB of VRAM. - Shaders compiled on first use plus one level of detail: 28.0 fps. Compiling on first use adds stalls. - Debian's default settings with our patches: 15.9 fps, against 10.7 on Debian's own build. - One run with all patches undone sat in the menu (36 startup commands, the engine keeps 32). The recipe was fixed and that run is left out.

Mesa ps3.282 + ps3rsx 0.249: kick100 against base in OpenArena X-Moto ClassiCube

2026-10-17 · batch 2026-10-17-mesa-282-kick100 · 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 ---
kick100 NV30_PS3_KICK_DRAWS=100 ---
All numbers and setup of this batch
VariantNumbersSetup
base fps whole run 51.3 cpu 37.1 seconds underruns 0.0 underruns ram_free 26.5 MiB vram 36.6 MiB Mesa ps3.282, ps3rsx 0.249
the game's resolution, whole run
kick100 fps whole run 53.0 cpu 37.0 seconds underruns 0.0 underruns ram_free 26.7 MiB vram 38.0 MiB Mesa ps3.282, ps3rsx 0.249
the game's resolution, whole run

Observations: - Mesa ps3.282. Two runs as built and two with a submission every 100 draws, per game, interleaved. - OpenArena (compressed textures): 52.2 and 50.4 fps as built, 52.2 and 53.9 with the setting (+3%). CPU 36-38 s in all. Longest frame 892-935 ms as built, 954-1216 ms with it. - X-Moto (HUD): 47 and 48 as built, 42 and 44 with it (-9%). CPU 88-90 s in all. Underruns 22-43 with it, 22-29 without. - ClassiCube fly-through (own counter): 48.1 and 48.5 as built, 48.8 and 49.0 with it (about +1%, neutral), but 59-60 s of CPU against 54.6 s (+9%). - With the Armagetron batch: patch 0019 cost Armagetron its CPU/GPU overlap, and relocations or a submission every 100 draws get it back. But the fixed setting does not suit every game. - Spread between two runs of the same variant: 1-2 fps.

Mesa ps3.262 runs with perf recording (audio profiling)

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

Not comparable: runs with perf recording (audio profiling), slower than plain runs.

VariantConditions Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
base
not comparable
the recipe as it is ---
All numbers and setup of this batch
VariantNumbersSetup
base fps whole run 31.6 cpu 41.5 seconds underruns 0.0 underruns ram_free 25.3 MiB vram 39.4 MiB Mesa ps3.262
the game's resolution, whole run

Observations: - Perf was recording during these runs (said by the coordinator; the run folders do not show it). The numbers are not for comparison. - dsda-doom playing at normal speed, twice: 1276 and 1422 ALSA underruns, HUD 51 and 50 fps. Probably the runs behind the profile that put the FluidSynth library at 48.3% of the game's samples. - OpenArena: 39.7 fps with a 5.9 s longest frame, then 23.4 fps with a 15 s stall (the run ended with an error). The unprofiled suite run had 54.4. - Lowest free memory in the two OpenArena runs: 38 and 13 MB. - Yamagi Quake II: 55.2 fps (63.9 in the suite round).

Mesa ps3.262 OpenAL log variants (allog; perf recording)

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

Not comparable: OpenAL logging runs with perf recording, slower than plain runs.

VariantConditions Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
allog
not comparable
the recipe as it is ---
All numbers and setup of this batch
VariantNumbersSetup
allog fps whole run 46.2 cpu 38.0 seconds underruns 0 underruns ram_free 34.9 MiB vram 36.6 MiB Mesa ps3.262
the game's resolution, whole run

Observations: - OpenArena, Yamagi Quake II, Luanti and ClassiCube with stock OpenAL settings and OpenAL's log on, perf recording for 20 s from the sound start. One run each. - The profiler slows the games: OpenArena 46.2 fps, Yamagi 32.1 (63.9 unprofiled), ClassiCube 45.6, Luanti 58 (HUD). Not for comparison. - OpenAL itself is 4.7% of OpenArena's process samples and 3.7% of ClassiCube's: under the 6% bar for an SPU mixer. - The sound device was stereo float32 at 48000 Hz (OpenAL's ALSA path). - No underruns except in Yamagi (14).

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 fps whole run 54.4 cpu 35.7 seconds underruns 0 underruns ram_free 23.4 MiB vram 36.6 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.

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)

VariantConditions Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
gl2 the recipe as it is ---
gl2min the recipe as it is ---
All numbers and setup of this batch
VariantNumbersSetup
gl2 fps whole run 10.7 cpu 118.3 seconds underruns 0 underruns ram_free 13.1 MiB vram 159.7 MiB Mesa ps3.246, ps3rsx 0.249
the game's resolution, whole run
gl2min fps whole run 13.6 cpu 80.1 seconds underruns 0.0 underruns ram_free 11.8 MiB vram 97.9 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.

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 fps whole run 44.2 cpu 38.5 seconds underruns 0 underruns ram_free 37.3 MiB vram 39.4 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.

Mesa ps3.223 + ps3rsx 0.219

2026-10-16 · batch 2026-10-16-mesa-223 · 5 runs in the batch (all games)

Not comparable: every game was profiled with perf during the run, which slows it.

VariantConditions Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
tc1
not comparable
the recipe as it is ---
All numbers and setup of this batch
VariantNumbersSetup
tc1 fps whole run 37.2 cpu 43.5 seconds ram_free 19.0 MiB vram 39.4 MiB Mesa ps3.223, ps3rsx 0.219
the game's resolution, whole run

Observations: - Each game was profiled for 15 s, so the fps are lower than in plain runs (the run records don't show the profiling). One run per game. - X-Moto 34.6 fps (own counter), 208 underruns. - OpenArena with compressed textures 37.2 fps, longest frame 3.1 s. - ClassiCube 54, Extreme Tux Racer 40 (in its menu), Armagetron 102 (a live first-run game); all three on the driver's frame counter. - Result: Mesa took 28 to 56% of the CPU and ps3rsx 6 to 16%.

Stage 0 validation (Mesa ps3.186 + ps3rsx 0.219; picture on screen)

2026-10-16 · batch 2026-10-16-stage0-validation · 7 runs in the batch (all games)

VariantConditions Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
tc1 the recipe as it is ---
All numbers and setup of this batch
VariantNumbersSetup
tc1 fps whole run 42.2 cpu 42.4 seconds ram_free 46.5 MiB vram 36.6 MiB Mesa ps3.186, ps3rsx 0.219
the game's resolution, whole run

Observations: - First runs with the picture on screen, checked on the webcam. Mesa ps3.186, libspeq 0.210, kernel ps3.178, ps3rsx 0.219. - glxgears 57.8 and 57.7 fps (vsync) after the fix for new X sessions starting muted. - OpenArena with compressed textures, 3 runs: 42.2 fps (40.9 to 46.4), load 10.8 s (10.6 to 11.9), game VRAM 36.6 to 39.4 MB. - ClassiCube, 2 runs: 50.5 fps (driver frame counter median). - Showing the frames costs: the same OpenArena runs with nothing on screen gave 45 to 54 fps. - Proves the two ps3rsx display fixes together with Openbox in the harness.

Stage 0 after ps3rsx 8baa747 (second X still black)

2026-10-16 · batch 2026-10-16-stage0-8baa747 · 8 runs in the batch (all games)

Invalid: the second X was still black, so the frame rates are not of a shown picture.

VariantConditions Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
tc1
invalid
the recipe as it is ---
tc1nowm
invalid
the recipe as it is ---
All numbers and setup of this batch
VariantNumbersSetup
tc1 fps whole run 45.0 cpu 39.2 seconds ram_free 35.0 MiB vram 36.6 MiB no build recorded
the game's resolution, whole run
tc1nowm fps whole run 44.6 cpu 39.9 seconds ram_free 38.0 MiB vram 38.0 MiB no build recorded
the game's resolution, whole run

Observations: - OpenArena (three variants) and one ClassiCube run. The harness now starts Openbox. - The fix that always sends the video unmute existed, but whether it was installed for these runs is not recorded. - The remaining bug, a new X after the last one quit starting muted, was fixed after these runs. The screen was presumably still black and the numbers are not valid. - OpenArena 45.0 fps with compressed textures and 44.6 without a window manager, longest frames 1.9 to 2.6 s. ClassiCube 45 (driver frame counter median).

Stage 0 first games/bench runs (ps3rsx before a1f1b91; black screen)

2026-10-16 · batch 2026-10-16-stage0-first · 11 runs in the batch (all games)

Invalid: a black screen (ps3rsx before a1f1b91), so the frame rates are not of a shown picture.

VariantConditions Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
tc1
invalid
the recipe as it is ---
tc1nowm
invalid
the recipe as it is ---
All numbers and setup of this batch
VariantNumbersSetup
tc1 fps whole run 51.1 cpu 40.5 seconds ram_free 38.7 MiB vram 39.4 MiB no build recorded
the game's resolution, whole run
tc1nowm fps whole run 50.3 cpu 38.4 seconds ram_free 37.4 MiB vram 38.0 MiB no build recorded
the game's resolution, whole run

Observations: - OpenArena with compressed textures, with and without a window manager, on kernel ps3.178 and Mesa ps3.186, interleaved with old-harness runs. Then glxgears under X on two virtual terminals. - No window manager was started, so the game's fullscreen request went unanswered, and the screens stayed black: ps3rsx muted the video for X sessions after the first. A later check showed X rendering fine and a forced display power cycle bringing the picture back. - OpenArena 51.1 fps (50.3 without a window manager): not valid. - glxgears 58.1 and 59.9 fps on the first terminal, 59.7 and 59.9 on the second (vsync); no table entry. - Load times vary from 10.1 to 19.0 s. The harness's load parsing was fixed afterwards, so these may be misread.

libspeq SPU DXT1 encoder 0.210 (Mesa ps3.186; nothing on screen)

2026-10-16 · batch 2026-10-16-speq-spu-dxt1 · 14 runs in the batch (all games)

Invalid: nothing reached the screen, so the frame rates are not of a shown picture.

VariantConditions Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
tc0
invalid
the recipe as it is ---
tc1
invalid
the recipe as it is ---
tc1debug
invalid
the recipe as it is ---
All numbers and setup of this batch
VariantNumbersSetup
tc0 fps whole run 49.1 cpu 35.5 seconds ram_free 27.3 MiB Mesa ps3.186
the game's resolution, whole run
tc1 fps whole run 52.7 cpu 35.3 seconds ram_free 28.6 MiB Mesa ps3.186
the game's resolution, whole run
tc1debug fps whole run 54.4 cpu 35.3 seconds ram_free 28.7 MiB Mesa ps3.186
the game's resolution, whole run

Observations: - libspeq 0.210 with the SPU DXT1 encoder, chosen automatically; Mesa ps3.186; VRAM swap on. - Correctness check passes: 100 images encoded on the SPEs and 3 on the PPE equal the reference byte for byte; a faulting job is redone on the PPE; 0 failures. - Speed: 1173 Mpixel/s on six SPEs for a 1024x1024 image, against 6.7 on the PPE. Through glTexImage: 352 Mpixel/s against 6.5 with the PPE encoder. Blocks still sample within 1. - OpenArena, 5 pairs: load 13.84 s plain (13.70 to 15.74) against 13.63 s compressed (13.45 to 15.39), so compression no longer costs load time. 49.1 and 52.7 fps. - Game VRAM 51.7 MB plain, 37.5 MB compressed (survey). - A debug run counted 1476 compressions per level load, 254 of them on the SPEs, 0 failures. - One plain run at 39.6 fps with a 3.2 s longest frame is an outlier. - Nothing on screen, so the fps are invalid.

libspeq PPE DXT1 encoder in Mesa ps3.186 (kernel .178; nothing on screen)

2026-10-16 · batch 2026-10-16-speq-ppe-dxt1 · 10 runs in the batch (all games)

Invalid: nothing reached the screen, so the frame rates are not of a shown picture (load times and VRAM are valid).

VariantConditions Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
tc0
invalid
the recipe as it is ---
tc1
invalid
the recipe as it is ---
All numbers and setup of this batch
VariantNumbersSetup
tc0 fps whole run 49.9 cpu 35.3 seconds ram_free 26.9 MiB Kernel ps3.178, Mesa ps3.186
the game's resolution, whole run
tc1 fps whole run 53.0 cpu 35.8 seconds ram_free 28.4 MiB Kernel ps3.178, Mesa ps3.186
the game's resolution, whole run

Observations: - Mesa ps3.186 with patch 0011, which hands DXT1 compression to libspeq's encoder on the PPE (the main CPU). Kernel ps3.178, VRAM swap on, 5 pairs of runs. - Plain textures: 49.9 fps, load 13.68 s (13.66 to 13.87). - Compressed: 53.0 fps, load 14.16 s (14.08 to 14.68). Compression now adds 0.5 s of load instead of 1.5 s. - Longest frame 956 ms compressed against 1008 ms plain (medians): no hitch. - Game VRAM 51.6 MB plain, 37.5 MB compressed (survey). - This encoder runs at 6.5 Mpixel/s through glTexImage, against 2.6 for Mesa's. - Nothing on screen, so the fps are invalid. Load, VRAM and the encoder comparison don't depend on the display. - Basis for shipping compressed textures on in OpenArena.

Step 0: OpenArena perf profiles A/B/C (nothing on screen)

2026-10-16 · batch 2026-10-16-step0-perf · 3 runs in the batch (all games)

Invalid: nothing reached the screen, and the runs recorded perf profiles.

VariantConditions Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
profA
invalid
the recipe as it is ---
profB
invalid
the recipe as it is ---
profC
invalid
the recipe as it is ---
All numbers and setup of this batch
VariantNumbersSetup
profA fps whole run 57 cpu 51.7 seconds ram_free 39.6 MiB no build recorded
the game's resolution, whole run
profB fps whole run 57 cpu 53.1 seconds ram_free 45.0 MiB no build recorded
the game's resolution, whole run
profC fps whole run 57 cpu 52.6 seconds ram_free 38.0 MiB no build recorded
the game's resolution, whole run

Observations: - One profiled run each of sound variants A, B and C. Nothing on screen. - Profiling slows the game: 52 to 53 s of CPU against 35 s in plain runs, so the CPU and fps numbers are not comparable. The fps shown is the driver's frame counter (HUD) median, 57. - The profiles showed OpenAL's mixer thread as unknown code, so they could not say how much of the 10% sound cost is the mixer. - The re-profile with matching debug symbols came on 2026-10-17.

Step 0: OpenArena sound variants A/B/B22/C/Z (nothing on screen)

2026-10-16 · batch 2026-10-16-step0-sound · 15 runs in the batch (all games)

Invalid: nothing reached the screen, so the frame rates are not of a shown picture.

VariantConditions Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
sndA
invalid
the recipe as it is ---
sndB
invalid
the recipe as it is ---
sndB22
invalid
the recipe as it is ---
sndC
invalid
the recipe as it is ---
sndZ
invalid
the recipe as it is ---
All numbers and setup of this batch
VariantNumbersSetup
sndA fps whole run 49.7 cpu 35.2 seconds ram_free 28.6 MiB no build recorded
the game's resolution, whole run
sndB fps whole run 49.8 cpu 37.3 seconds ram_free 29.6 MiB no build recorded
the game's resolution, whole run
sndB22 fps whole run 50.0 cpu 37.3 seconds ram_free 28.2 MiB no build recorded
the game's resolution, whole run
sndC fps whole run 50.0 cpu 33.3 seconds ram_free 28.4 MiB no build recorded
the game's resolution, whole run
sndZ fps whole run 55.3 cpu 26.2 seconds ram_free 35.7 MiB no build recorded
the game's resolution, whole run

Observations: - 3 interleaved runs per variant, VRAM swap on. Nothing on screen, so the absolute fps are invalid. - A, stock OpenAL: 49.7 fps. - B, OpenAL with 16-bit output and a linear resampler: 49.8. - B22, the same at 22 kHz: 50.0. - C, the game's own mixer instead of OpenAL: 50.0. - Z, sound off: 55.3 fps, level load 11.9 s against 13.8 to 14.1 s, about 7 MB more free memory. - Reading at the time: sound costs about 10% of the frame rate and no OpenAL setting helps. - Caveats found later: B also switched on OpenAL's output limiter and dither, and B22 probably still ran at 48 kHz. The sound-on against sound-off difference was not repeated with the picture on screen in these runs.

Step 0: OpenArena tc0/tc1 on Mesa ps3.152 (VRAM swap on; nothing on screen)

2026-10-16 · batch 2026-10-16-step0-vswap-on · 6 runs in the batch (all games)

Invalid: nothing reached the screen, so the frame rates are not of a shown picture.

VariantConditions Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
tc0
invalid
the recipe as it is ---
tc1
invalid
the recipe as it is ---
All numbers and setup of this batch
VariantNumbersSetup
tc0 fps whole run 48.8 cpu 35.6 seconds ram_free 31.4 MiB Mesa ps3.152
the game's resolution, whole run
tc1 fps whole run 52.4 cpu 36.6 seconds ram_free 25.3 MiB Mesa ps3.152
the game's resolution, whole run

Observations: - Same setup as the previous batch with the VRAM swap on, 3 pairs of runs. - Nothing on screen, so the frame rates are invalid. - Plain textures: 48.8 fps, load 14.02 s (13.94 to 14.63). - Compressed: 52.4 fps, load 15.14 s (15.10 to 15.70). One compressed run had a 4.4 s longest frame. - These are the survey's VRAM-swap-on numbers: Mesa's encoder costs 1.1 s of load and hitches in play, so compressed textures were not shipped with it.

Step 0: OpenArena tc0/tc1 on Mesa ps3.152 (VRAM swap off; nothing on screen)

2026-10-16 · batch 2026-10-16-step0-vswap-off · 14 runs in the batch (all games)

Invalid: nothing reached the screen (no window manager, and ps3rsx left the video muted), so the frame rates are not of a shown picture.

VariantConditions Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
tc0
invalid
the recipe as it is ---
tc1
invalid
the recipe as it is ---
All numbers and setup of this batch
VariantNumbersSetup
tc0 fps whole run 49.8 cpu 35.5 seconds ram_free 26.4 MiB Mesa ps3.152
the game's resolution, whole run
tc1 fps whole run 51.6 cpu 36.8 seconds ram_free 27.8 MiB Mesa ps3.152
the game's resolution, whole run

Observations: - Nothing reached the screen: no window manager ran, and the ps3rsx driver muted the video for every X session after the first (fixed later). The frame rates are not measurements of a shown picture; kept as history. - First compressed texture sampled on the RSX: blocks within 1 of the decoded value, no GPU error. Mesa's encoder ran at 2.6 Mpixel/s with an error (RMSE) of 29.7. - The GPU reports itself as NV47 with 245 MB of video memory and OpenGL 2.1. - First OpenArena launch (plain textures): 49.6 fps, level load 14.3 s. - Plain textures, 6 runs: 49.8 fps, level load 13.98 s (13.51 to 14.37). - Compressed textures, 6 runs: 51.6 fps, level load 15.50 s (14.99 to 15.98). The very first compressed run made 43.1 fps with a 3.3 s longest frame. - Mesa's encoder on the main CPU (the PPE) adds about 1.5 s to the load. - The VRAM survey puts the game at 51.7 MB with plain textures and 40.3 MB compressed.