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,
dsda-doom 0.30.0+dfsg-1+ps3.786
The platform builds under it (3)
| Linux kernel | 6.12.111+ps3.747 Walnut's build |
|---|---|
| Mesa | 26.2.4-1+ps3.721 Walnut's build |
| ps3rsx | 0.735+k6.12.111+ps3.747 Walnut's build |
| Date | Launcher | Rules | Play | Ended | Picture | |
|---|---|---|---|---|---|---|
| 2026-10-25 | DSDA-Doom (software) | 1.0 | 7 min | quit | ok | Details |
| 2026-10-25 | DSDA-Doom (OpenGL) | 1.0 | 9 min | quit | ok | Details |
Download all sessions as CSV (one row per session, the aspects as columns)
Rating history
The rating on each version it was tested on, newest first: each row is rated from that version's sessions alone, under the newest rules those sessions have the data for.
DSDA-Doom (OpenGL)
| Version | Tested | Medal | Rules | Frame rate | Smoothness | Sound | Picture | Stability | Display | Load | Play |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Walnut 0.1 dsda-doom 0.30.0+dfsg-1 |
2026-10-25 | Gold · 90 | 1.0 | 89 | 89 | 77 | 100 | 91 | - | 100 | 0.1 h 1 test |
DSDA-Doom (software)
| Version | Tested | Medal | Rules | Frame rate | Smoothness | Sound | Picture | Stability | Display | Load | Play |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Walnut 0.1 dsda-doom 0.30.0+dfsg-1 |
2026-10-25 | Silver · 71 | 1.0 | 45 | 73 | 52 | 100 | 90 | - | 100 | 0.1 h 1 test |
Scripted benchmarks
Not rated: tests of driver and game changes. A script plays the same scene on the PS3 again and again (the desktop stopped, vsync off) to compare two builds of the game or of the graphics driver. The numbers say which build is faster; they never feed the medal.
How the script plays it: dsda-doom 0.30.0 + Freedoom 2: timedemo of Freedoom's own DEMO1 lump, fullscreen 1920x1080.
The recipe's full description
dsda-doom 0.30.0 + Freedoom 2 (stands in for PrBoom+ GL): timedemo of Freedoom's own DEMO1 lump, fullscreen 1920x1080. Software renderer first (base, safest), GL as a variant: GL mode uploads indexed textures as GL_RG, which nv30 lacks (the game's technical.md), so expect missing textures there. Steady state: passes. DEMO1 is 2664 gametics (76 s at 35 Hz; the timedemo takes ~54 s at 49 fps). Stock dsda-doom exits at a timedemo's end (dsda_demo_end_quit), so our patch 0006 (g_game.c, the timingdemo branch of G_CheckDemoStatus) repeats it: DSDA_BENCH_LOOPS=N passes, each with its own gametics and realtics and its own "Timed ..." line. 6 passes of ~54 s cover 60 s of warm-up and 120 s counted; slower passes (the PS3) end the run earlier, the client stops it once enough is measured. fps= is the first pass's, as before.
21 variants of the recipe
base | the recipe as it is, without a variant |
|---|---|
gl stands for the game | - |
owncfg | base (the software renderer, 960x540 scaled to the screen: the menu's "DSDA-Doom (software)") on a config of the run's own: -config in the run directory, nonexistent at the start, so dsda-doom's defaults (FluidSynth music, 44.1 kHz) and nothing of the player's dsda-doom.cfg read or written; the CPU-bound case of the real-time audio tests (docs/SPU-AUDIO.md "Real-time mixer") |
sw1080 | - |
gles | SDL's GLES2 renderer instead of its desktop-GL one (the software frame goes to the screen through an SDL texture): the 960x540 software run was green-tinted |
sdlsw | SDL's software renderer: no GL at all in presenting the frame (tells a GPU-path colour bug from the game's or SDL's own) |
play | the demo at normal speed (35 tics/s, as in play) with the GL renderer: does the sound keep up when the game isn't rendering flat out? (60 s, HUD fps) |
playnomusic | play without the MIDI music (fluidsynth synthesizes it in software on the PPE): effects only |
tuned | sound tuning for the PPE, music on (plain play stuttered: fluidsynth took ~40% of a thread and rendering ran uncapped): OPL music emulation (snd_midiplayer "opl"), mixing at the device's 48 kHz (no resampling), a larger buffer, frames capped at 60 |
playopl | one sound setting at a time against the underrun count (bench.txt underruns=) |
playcap35 | - |
play48k | - |
playspu | fluidsynth's voice DSP on the SPEs (our libfluidsynth3 +ps3.289 with libspeq0 0.288, docs/SPU-AUDIO.md "fluidsynth on the SPEs"): spu always, ppe = libspeq's code on the PPE, off = stock fluidsynth |
playppe | - |
playoff | - |
glstats | GL renderer draws (our patch 0005, gl_batch.c): walls, flats, sprites and HUD patches batched into few glDrawArrays, light level per vertex. On the host (llvmpipe, GL 2.1) the gl timedemo goes from ~1960 GL calls and ~205 draws a frame to ~390 and ~46. Each switch alone, all off (= the renderer before 0005), and the per-frame batch counts in game.log every 350 frames |
glnobatch | - |
glnoflats | - |
glnohud | - |
glnovlight | - |
gloff | - |
One table, a header row per batch (what it tested and what came out). Conditions: what a variant adds to the recipe (its environment switches) and what ran alongside (the stall recorder, a profiler); a column appears only when this game has a value in it. Rows marked invalid or not comparable say why.
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.
| Variant | Conditions | Steady fps in the window |
1% low fps |
Stalls frames over 100 ms |
fps whole run |
Build | Run length | ram free MiB | vram MiB | stall play s seconds | longest play ms ms | sound faults per min faults a minute | cpu seconds | underruns underruns | longest ms ms |
Note |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Suite summary
2026-10-20 · suite-summary-2026-10
Tested: Not a test run: the suite's 13 benchmarked games (15 rows, with OpenArena's two renderers and OpenTTD's two blitters) gathered with their known numbers as of October 2026, each value naming the batch or document it came from. Result: It is the calibration of the rating formula (rules 1): the scale was tried on these numbers before any game was rated, and the GameDB calibration table is generated from it. Benchmarks never give a medal; medals come from played sessions only. | ||||||||||||||||
| dsda-doom | the recipe as it is | 55.9 | 40.3 | - | - | - | warm-up + 120 s | 43 | 65 | 0.0 | 34 | 465 | - | - | - | right, music chops |
Real-time audio as shipped: ps3-desktop 0.1013 (limits.d rtprio 10 + ps3-rt-audio, RTAUDIO=1) against none (RTPRIO=0) on dsda-doom software (owncfg), Extreme Tux Racer, X-Moto and Neverball (kernel .874)
2026-10-28 · 2026-10-28-rt-audio-shipped
Tested: Real-time audio as shipped in ps3-desktop 0.1013 (a priority limit plus ps3-rt-audio, which game mode uses to put the game's audio thread on SCHED_RR), against none, on dsda-doom, Extreme Tux Racer, X-Moto and Neverball. Result: Shipped. Audible dropouts a run fell from 29 to 2 in dsda-doom, 26 to 2 in Extreme Tux Racer and 3 to 0 in Neverball, with steady fps unchanged within 0.4%. The 1% lows came out a little lower in the light games, with the ranges touching. What we saw25 runs in three rounds, games interleaved, arm order alternating. Two Neverball runs with it were interfered by the agent's own SSH checks and left out, so Neverball has 2 runs with it. Every run fullscreen at 1920x1080 and in gameplay at its 40 s screenshot.
| ||||||||||||||||
owncfg |
rtaudio | 39.8 | 19.4 | 0 | 37.5 | - | warm-up + 120 s | 43.2 | 25.7 | 0.0 | 87.1 | - | 283.6 | 3436 | 104.0 | |
owncfg |
real-time priority 0 | 39.8 | 21.0 | 1 | 37.7 | - | warm-up + 120 s | 39.9 | 25.7 | 0.1 | 104.3 | - | 281.6 | 4290 | 109.9 | |
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 · 2026-10-28-rt-audio-thread
Tested: Whether putting the game's own audio thread on real-time priority (SCHED_RR 1, set from outside) or running the game at nice -20 stops the audible dropouts in dsda-doom (software renderer), Extreme Tux Racer and OpenTTD. Result: SCHED_RR clearly helps: median dropouts a run fell from 19 to 2 in dsda-doom and from 24 to 3.5 in Extreme Tux Racer, at no frame-rate cost. nice -20 helped less and cost dsda-doom 2%. A per-game opt-in was recommended; not shipped in this form. What we saw38 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.
| ||||||||||||||||
owncfg |
nicelim40 | 39.7 | 19.9 | 1.0 | 38.0 | - | warm-up + 120 s | 43.6 | 25.7 | 0.1 | 105.6 | - | 284.1 | 3887.5 | 106.8 | |
owncfg |
real-time priority 0 | 40.3 | 21.7 | 0 | 38.9 | - | warm-up + 120 s | 41.4 | 25.7 | 0.0 | 71.2 | - | 279.2 | 4217 | 83.0 | |
owncfg |
real-time priority 10 switch rtthread |
40.1 | 21.2 | 0 | 38.5 | - | warm-up + 120 s | 43.5 | 25.7 | 0.0 | 77.7 | - | 279.2 | 3487 | 113.9 | |
batch ssdroot2 P1b: gameplay profiles on the SSD root (PERF=1 MEM=1 x1)
2026-10-19 · 2026-10-19-ssdroot2-gameplay-profiles
Tested: Where the CPU goes during play in seven games on the SSD root, profiled with perf over the measured window. Result: Mesa is the biggest share in BananaBread (62.8%) and ClassiCube, the game itself in SuperTuxKart, OpenArena and Luanti, and OpenTTD spends half its time in the kernel. Profiled runs, not for frame rates; OpenTTD was profiled at its title screen, not in play. What we saw
not comparable gameplay profiles (PERF=1 MEM=1), slower than plain runs. | ||||||||||||||||
glnot comparable |
perf recording | 55.9 | 39.7 | 0 | 55.7 | - | warm-up + 120 s | 43.1 | 64.9 | 0.0 | 42.4 | - | 131.3 | 2793 | 42.4 | |
batch 8: STK lean, OpenTTD gl, ClassiCube/dsda batching, malloc presets, profiles (Mesa ps3.408, kick)
2026-10-18 · 2026-10-18-batch8
Tested: A mixed batch: SuperTuxKart's lean settings, OpenTTD's OpenGL driver, draw batching in ClassiCube and dsda-doom, memory allocator presets, and profiles of OpenArena and Luanti. Result: SuperTuxKart lean runs 21.4 fps against 13 with far fewer stalls, OpenTTD's GL driver doubles its frame rate, dsda-doom's batching gains 3% while ClassiCube's loses 4%, and the allocator presets were noise. One Luanti profiling run was disturbed by a mouse click. What we saw
| ||||||||||||||||
gl |
waker kick at 10 ms | 55.9 | 40.3 | 0.0 | 54.7 | Mesa ps3.408 | warm-up + 120 s | 43.3 | 64.9 | 0.0 | 34.4 | - | 117.9 | 2101.0 | 42.5 | |
gloff |
DSDA_GL_BATCH=0 DSDA_GL_FLATS=0 DSDA_GL_HUD=0 DSDA_GL_VLIGHT=0 waker kick at 10 ms |
54.2 | 36.4 | 0.0 | 53.0 | Mesa ps3.408 | warm-up + 120 s | 44.0 | 64.8 | 0.0 | 67.7 | - | 161.1 | 2668.5 | 67.7 | |
Mesa ps3.407 switches (QuakeSpasm LUT, ClassiCube fence pool), profiler checks (ps3-gpu-tools 0.412), all with WAKER kick
2026-10-18 · 2026-10-18-mesa-407-switches
Tested: Two more Mesa ps3.407 switches (the vertex lookup table on QuakeSpasm, a fence pool on ClassiCube), plus profile checks of dsda-doom, OpenTTD and Armagetron with ps3-gpu-tools 0.412. Result: Both switches are neutral: QuakeSpasm keeps 91 fps with about 3% less CPU, ClassiCube is identical. The Armagetron run is invalid (it sat in the language menu). What we saw
| ||||||||||||||||
base |
waker kick at 10 ms perf recording |
40.3 | 21.8 | 0 | 40.3 | Mesa ps3.407 | warm-up + 120 s | 45.4 | 25.7 | 0.0 | 96.6 | - | 271.0 | 4089 | 96.6 | |
libspeq 0.367 (shared deadline pool), fluidsynth ps3.309, dsda-doom ps3.361
2026-10-17 · 2026-10-17-speq-367-deadline-pool
Tested: libspeq 0.367, where the SPU work runs on a shared pool of two SPUs with deadlines, on dsda-doom's FluidSynth music. Result: The synth ran fully on the SPUs with no timeouts, and underruns fell to 465 against 1095 with the synth on the PPE. What we sawSame boot, 60 s runs with music. The synth ran on the two-SPU pool: 4530 rounds on the SPUs, 0 timeouts, 0.84 ms mean wait. ALSA underruns: 465 with the SPUs against 1095 on the PPE. Picture right on the webcam. | ||||||||||||||||
playppe |
SPEQ_SYNTH=ppe SPEQ_DEBUG=1 |
- | - | - | 57 | - | whole run | 37.1 | 65.9 | - | - | - | 36.5 | 1095 | - | |
playspu |
SPEQ_SYNTH=spu SPEQ_DEBUG=1 |
- | - | - | 57 | - | whole run | 37.5 | 65.9 | - | - | - | 26.5 | 465 | - | |
fluidsynth ps3.309 (SPU synth v2) + libspeq 0.318 + Mesa ps3.299
2026-10-17 · 2026-10-17-fluidsynth-309
Tested: The second version of FluidSynth's voice processing on the SPUs (single-precision vector code, one round trip per write, two SPUs) against stock FluidSynth, on dsda-doom's music. Result: It halves the underruns (1231 to 588 and 1331 to 709) and cuts the CPU from 44.5 to 31.8 s a minute. The user listened to both: "night and day, spu makes a huge difference". What we saw
| ||||||||||||||||
playoff |
SPEQ_SYNTH=off | - | - | - | 54.0 | Mesa ps3.299 | whole run | 39.4 | 65.4 | - | - | - | 46.4 | 1281.0 | - | |
playspu |
SPEQ_SYNTH=spu SPEQ_DEBUG=1 |
- | - | - | 54.5 | Mesa ps3.299 | whole run | 47.7 | 65.4 | - | - | - | 32.3 | 648.5 | - | |
fluidsynth voice DSP on the SPEs (libspeq 0.288; Mesa ps3.282)
2026-10-17 · 2026-10-17-fluidsynth-spu-dsp
Tested: A first version of FluidSynth's voice processing moved to the SPUs (libspeq 0.288), to see whether it frees the PPE and stops dsda-doom's music from chopping. Result: The CPU cost of the music almost disappeared (49.3 s to 31.7 s), but the underruns only fell from 1335 to 1097, far from the 18 without music. The kernel computed in double precision, too slow per block; a second version followed. What we saw
| ||||||||||||||||
playoff |
SPEQ_SYNTH=off | - | - | - | 53 | Mesa ps3.282 | whole run | 39.5 | 65.4 | - | - | - | 49.3 | 1335 | - | |
playspu |
SPEQ_SYNTH=spu SPEQ_DEBUG=1 |
- | - | - | 54 | Mesa ps3.282 | whole run | 40.0 | 65.4 | - | - | - | 31.7 | 1097 | - | |
Mesa ps3.262 runs with perf recording (audio profiling)
2026-10-17 · 2026-10-17-mesa-262-perf
Tested: Plain-named runs made while the audio profiling was going on: dsda-doom's music, OpenArena and Yamagi Quake II on Mesa ps3.262. Result: Not valid for comparison: perf was recording during these runs, which explains the slow OpenArena and Yamagi numbers. They say nothing about a change in Mesa ps3.262. What we saw
not comparable runs with perf recording (audio profiling), slower than plain runs. | ||||||||||||||||
playnot comparable |
the recipe as it is | - | - | - | 50.5 | Mesa ps3.262 | whole run | 19.6 | 65.4 | - | - | - | 51.1 | 1349.0 | - | |
Mesa ps3.262 + ps3rsx 0.249
2026-10-17 · 2026-10-17-mesa-262
Tested: Mesa ps3.262 (patches 0019 to 0025: fewer words sent to the GPU per draw) across the suite, against ps3.246. Result: Big gains in several games: OpenArena +23%, Yamagi +24%, X-Moto +21%, Extreme Tux Racer and dsda-doom +15%. Armagetron fell from 60 to 51 fps, which the next batches traced. Single runs; BananaBread's drop is a memory stall, not a driver number. What we saw
| ||||||||||||||||
base |
the recipe as it is | - | - | - | 38.0 | Mesa ps3.262, ps3rsx 0.249 | whole run | 40.5 | 25.7 | - | - | - | 110.7 | 1768 | - | |
Mesa ps3.246 + ps3rsx 0.249
2026-10-17 · 2026-10-17-mesa-246-ps3rsx-249
Tested: The first full suite round after the reboot into ps3rsx 0.249, one run per game, as a baseline. Result: Every game ran with the right picture. The sound was right except in dsda-doom (MIDI music), BananaBread and OpenTTD. Single runs, so differences of a few fps are noise. What we saw
| ||||||||||||||||
base |
the recipe as it is | - | - | - | 33 | Mesa ps3.246, ps3rsx 0.249 | whole run | 52.5 | 25.7 | - | - | - | 65.0 | 1161 | - | |
dsda-doom sound settings against the underruns (Mesa ps3.225)
2026-10-17 · 2026-10-17-dsda-doom-sound
Tested: Whether a sound setting (OPL music, 48 kHz mixing, a bigger buffer, a frame cap) can bring dsda-doom's underruns down with music on. Result: None comes near the 18 underruns without music; the best, everything tuned together, still had 340. Either the music default changes or the synth moves to the SPEs; the decision was left to the user. What we saw
| ||||||||||||||||
play48k |
the recipe as it is | - | - | - | 52 | Mesa ps3.225 | whole run | 50.4 | 65.4 | - | - | - | 51.3 | 1471 | - | |
playcap35 |
the recipe as it is | - | - | - | 34 | Mesa ps3.225 | whole run | 54.1 | 65.4 | - | - | - | 47.8 | 1385 | - | |
playopl |
the recipe as it is | - | - | - | 50.5 | Mesa ps3.225 | whole run | 54.7 | 65.4 | - | - | - | 49.1 | 1094.5 | - | |
tuned |
the recipe as it is | - | - | - | 50 | Mesa ps3.225 | whole run | 47.7 | 65.4 | - | - | - | 46.0 | 340 | - | |
dsda-doom +ps3.247 GL renderer and music on/off (Mesa ps3.225)
2026-10-17 · 2026-10-17-dsda-doom-gl-music
Tested: Whether fluidsynth's MIDI music causes dsda-doom's sound dropouts: the demo played at normal speed with and without music. Result: Yes: the music costs about 24 s of CPU a minute (about 40% of a PPE thread) and causes the chopping. Without music the underruns fell from 1280 to 18 a minute. What we saw
| ||||||||||||||||
gl |
the recipe as it is | - | - | - | 48.8 | Mesa ps3.225 | whole run | 60.8 | 61.5 | - | - | - | 63.2 | 1549 | - | |
play |
the recipe as it is | - | - | - | 52 | Mesa ps3.225 | whole run | 43.0 | 65.4 | - | - | - | 53.4 | 1280 | - | |
playnomusic |
the recipe as it is | - | - | - | 53 | Mesa ps3.225 | whole run | 62.9 | 65.4 | - | - | - | 28.9 | 18 | - | |
dsda-doom +ps3.231 colours fix (Mesa ps3.225)
2026-10-16 · 2026-10-16-dsda-doom-colours
Tested: Our dsda-doom package +ps3.231 with big-endian and nv30 fixes: are the colours right now, and how fast are the GL and software renderers? Result: The colours are right, and the GL renderer runs at 1920x1080 at 48.2 fps. The sound still chops (1542 to 1888 underruns per run), caused by fluidsynth's MIDI music on the main CPU. What we saw
| ||||||||||||||||
base |
the recipe as it is | - | - | - | 20 | Mesa ps3.225 | whole run | 43.3 | 25.7 | - | - | - | 111.5 | 1888 | - | |
gl |
the recipe as it is | - | - | - | 48.2 | Mesa ps3.225 | whole run | 61.3 | 61.5 | - | - | - | 63.6 | 1542 | - | |
Group 1 dsda-doom software 960x540 and SDL variants (Mesa ps3.186)
2026-10-16 · 2026-10-16-dsda-doom-software
Tested: dsda-doom's software renderer at 960x540 with three ways of putting the picture on screen: SDL's OpenGL renderer, its GLES2 renderer and its software renderer. Result: GLES2 was fastest (29.2 fps against 20.2), SDL's software path unusable (1 fps). Every variant had wrong colours and thousands of sound dropouts, from big-endian bugs; fixed in our dsda-doom package +ps3.231. What we saw
| ||||||||||||||||
base |
the recipe as it is | - | - | - | 20.2 | Mesa ps3.186 | whole run | 54.1 | 17.8 | - | - | - | 185.4 | 3210 | - | |
gles |
SDL_RENDER_DRIVER=opengles2 | - | - | - | 29.2 | Mesa ps3.186 | whole run | 58.2 | 17.8 | - | - | - | 130.7 | 2272 | - | |
sdlsw |
SDL_RENDER_DRIVER=software | - | - | - | 1 | Mesa ps3.186 | whole run | 48.7 | 23.8 | - | - | - | - | 6741 | - | |
Group 1 dsda-doom first smoke at 1920x1080 software (Mesa ps3.186)
2026-10-16 · 2026-10-16-dsda-doom-smoke
Tested: The first dsda-doom run: Debian's build with the software renderer at the full 1920x1080. Result: Far too slow: 5 fps, the demo didn't finish within 180 s, and the sound underran 3618 times. The recipe was changed to draw at 960x540 and let SDL scale the picture up. What we saw
| ||||||||||||||||
base |
the recipe as it is | - | - | - | 5 | Mesa ps3.186 | whole run | 38.1 | - | - | - | - | - | 3618 | - | |