All games

dsda-doom

Gold · 90 with DSDA-Doom (OpenGL) 0.1 h played, 0 crashes

A Doom source port with an OpenGL renderer, accurate demo playback and many mod features.

made for keyboard and mouse keyboard and mouse shooter fps classic doom mods

Played sessions

Testing is done with Walnut's rating tool (walnut-rate, planned): how ratings are made and submitted.

DateVersionLauncherKindRulesPlayEndedPictureBuilds
2026-10-25Walnut 0.1
dsda-doom 0.30.0+dfsg-1
DSDA-Doom (software) session1.07 minquit ok dsda-doom 0.30.0+dfsg-1+ps3.786
Linux kernel 6.12.111+ps3.747
Mesa 26.2.4-1+ps3.721
ps3rsx 0.735+k6.12.111+ps3.747
Details
2026-10-25Walnut 0.1
dsda-doom 0.30.0+dfsg-1
DSDA-Doom (OpenGL) session1.09 minquit ok dsda-doom 0.30.0+dfsg-1+ps3.786
Linux kernel 6.12.111+ps3.747
Mesa 26.2.4-1+ps3.721
ps3rsx 0.735+k6.12.111+ps3.747
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)

VersionTestedMedalRules Frame rateSmoothnessSoundPictureStabilityDisplayLoad Play
Walnut 0.1
dsda-doom 0.30.0+dfsg-1
2026-10-25 Gold · 90 1.0 89897710091-100 0.1 h
1 test

DSDA-Doom (software)

VersionTestedMedalRules Frame rateSmoothnessSoundPictureStabilityDisplayLoad Play
Walnut 0.1
dsda-doom 0.30.0+dfsg-1
2026-10-25 Silver · 71 1.0 45735210090-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 (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.

20 variants of the recipe
basethe recipe as it is, without a variant
gl stands for the game-
sw1080-
glesSDL'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
sdlswSDL'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)
playthe 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)
playnomusicplay without the MIDI music (fluidsynth synthesizes it in software on the PPE): effects only
tunedsound 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
playoplone sound setting at a time against the underrun count (bench.txt underruns=)
playcap35-
play48k-
playspufluidsynth'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-
glstatsGL 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-

Conditions: what a variant adds to the recipe (its environment switches) and what ran alongside (the stall recorder, a profiler). Length: "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. Rows marked invalid or not comparable say why.

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
dsda-doom gl 436555.90.040.334465 right, music chops

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.

VariantConditionsBuildResolutionLength fps
whole run
Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
cpu
seconds
underruns
underruns
ram_free
MiB
vram
MiB
longest_ms
ms
stall_play_s
seconds
longest_play_ms
ms
gl
not comparable
perf recording - the game's warm-up + 120 s 55.755.939.70 131.3279343.164.942.40.042.4

Observations: same boot (2026-10-19 02:01-02:30Z), 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: Sauerbraten Mesa 62.8% (kgpu 4.8, game 10.5), ClassiCube Mesa 41.2 + kernel 20.1 + kgpu 7.1, SuperTuxKart game 36.5 + Mesa 35.5 + libc 15.1, OpenArena game 27.6 + Mesa 23.1 + other 20.4 (OpenAL 12.4, libdeflate 3.9), Luanti game 47.2 (MeshUpdate thread 20.7% of all samples) + Mesa 14.6 + libc 13.7, dsda-doom Mesa 22.3 + game 20.5 + audio 30 (FluidSynth 15, libspeq 12), OpenTTD kernel 49.5 (36.7 of them in __replay_soft_interrupts, 8.3 in HPTE invalidation, 5.1 in ps3rsx_gart_clear from buffer creation) + audio 17. OpenTTD ran at its title screen (a menu, not gameplay: 18 fps, 4172 underruns). Mesa has no symbols in these runs (perf.data not pulled: PC-side symbolisation later). SuperTuxKart fps cells are the HUD.

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)

VariantConditionsBuildResolutionLength fps
whole run
Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
cpu
seconds
underruns
underruns
ram_free
MiB
vram
MiB
longest_ms
ms
stall_play_s
seconds
longest_play_ms
ms
gl waker kick at 10 ms Mesa ps3.408 the game's warm-up + 120 s 54.755.940.30.0 117.92101.043.364.942.50.034.4
gloff DSDA_GL_BATCH=0
DSDA_GL_FLATS=0
DSDA_GL_HUD=0
DSDA_GL_VLIGHT=0
waker kick at 10 ms
Mesa ps3.408 the game's warm-up + 120 s 53.054.236.40.0 161.12668.544.064.867.70.067.7

Observations: same boot 2026-10-18 ~09:30-11:50 local. SuperTuxKart: TRACK DRAWS (webcam), lean smooth 21.4 vs base 13, stalls 2.4 vs 13.5 s. OpenTTD gl: right picture, 21 fps (software 8-12). ClassiCube base (batching) 47.3 vs gloff 49.4 (-4%), low1 31 vs 27.6. dsda gl 55.9 vs gloff 54.2 (+3%), low1 40.8 vs 36.5. Malloc presets inconsistent between rounds (noise). OA gl2min 55 s stalls, longest 16 s, 66 MB swapped; Luanti 10 s stalls, 51 MB swapped INTERFERENCE (retro-scan 2026-10-18, docs/STALLS.md): luanti-base@wkkick10+perf (20261018T081125Z) had a right click in the window: distrust its cell.

Mesa ps3.407 switches (QuakeSpasm LUT, ClassiCube fence pool), profiler checks (ps3-gpu-tools 0.412), all with WAKER kick

2026-10-18 · batch 2026-10-18-mesa-407-switches · 10 runs in the batch (all games)

VariantConditionsBuildResolutionLength fps
whole run
Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
cpu
seconds
underruns
underruns
ram_free
MiB
vram
MiB
longest_ms
ms
stall_play_s
seconds
longest_play_ms
ms
base waker kick at 10 ms
perf recording
Mesa ps3.407 the game's warm-up + 120 s 40.340.321.80 271.0408945.425.796.60.096.6

Observations: same boot 2026-10-18 ~06:50-07:40 local. QuakeSpasm NV30_TRANSLATE_LUT=1: steady 91.0/90.8 vs 90.9/91.0 (no change), cpu 104/101 vs 108/106 s (~-3%). ClassiCube NV30_FENCE_BO_POOL=16: identical (48.4). dsda-doom profile ok, 40.3 steady, no stalls. OpenTTD title game, no survey dialog (webcam ok). Armagetron base INVALID: stuck at the first-start language menu (webcam), its 183 fps is the menu

libspeq 0.367 (shared deadline pool), fluidsynth ps3.309, dsda-doom ps3.361

2026-10-17 · batch 2026-10-17-speq-367-deadline-pool · 2 runs in the batch (all games)

VariantConditionsBuildResolutionLength fps
whole run
Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
cpu
seconds
underruns
underruns
ram_free
MiB
vram
MiB
playppe SPEQ_SYNTH=ppe
SPEQ_DEBUG=1
- the game's whole run 57--- 36.5109537.165.9
playspu SPEQ_SYNTH=spu
SPEQ_DEBUG=1
- the game's whole run 57--- 26.546537.565.9

Observations: same boot 2026-10-17 late; 60 s music runs; synth on the 2-SPE pool: 4530 rounds on the SPEs, 0 timeouts, 0.84 ms mean wait; underruns 465 SPU vs 1095 PPE; webcam: picture right

fluidsynth ps3.309 (SPU synth v2) + libspeq 0.318 + Mesa ps3.299

2026-10-17 · batch 2026-10-17-fluidsynth-309 · 4 runs in the batch (all games)

VariantConditionsBuildResolutionLength fps
whole run
Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
cpu
seconds
underruns
underruns
ram_free
MiB
vram
MiB
playoff SPEQ_SYNTH=off Mesa ps3.299 the game's whole run 54.0--- 46.41281.039.465.4
playspu SPEQ_SYNTH=spu
SPEQ_DEBUG=1
Mesa ps3.299 the game's whole run 54.5--- 32.3648.547.765.4

Observations: fluidsynth's voice DSP on the SPEs, v2 (single-precision SIMD, one round trip per write request, 2 SPEs). dsda-doom playing its demo at normal speed with fluidsynth music, 2 same-session pairs: ALSA underruns 1231 -> 588 and 1331 -> 709 (stock -> SPU), CPU 44.5 -> 31.8 s per minute (no music at all: ~29 s, 18 underruns). The user listened to both: 'night and day, spu makes a huge difference'; the only glitches left coincide with the game's own stutters. v1 (double precision, one block per job) had only gone 1335 -> 1097.

fluidsynth voice DSP on the SPEs (libspeq 0.288; Mesa ps3.282)

2026-10-17 · batch 2026-10-17-fluidsynth-spu-dsp · 2 runs in the batch (all games)

VariantConditionsBuildResolutionLength fps
whole run
Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
cpu
seconds
underruns
underruns
ram_free
MiB
vram
MiB
playoff SPEQ_SYNTH=off Mesa ps3.282 the game's whole run 53--- 49.3133539.565.4
playspu SPEQ_SYNTH=spu
SPEQ_DEBUG=1
Mesa ps3.282 the game's whole run 54--- 31.7109740.065.4

Observations: 12:20-12:23Z, dsda-doom 'play' (60 s, GL renderer) with our fluidsynth voice DSP through libspeq 0.288 (bcd1a9a, 719ad4a): playoff (SPEQ_SYNTH=off, stock path) 49.3 s of CPU and 1335 underruns; playspu (SPEs) 31.7 s of CPU and 1097 underruns, HUD median 53 and 54. The SPU path moved the DSP: 20227 of 20295 blocks on the SPEs, 55 timeouts, 0 errors, mean wait 731 us (max 9.2 ms). The CPU drops to near the no-music 29 s, but the underruns do not fall to the 18 of the no-music run, cause not established. Per the coordinator the SPU kernel computes in double precision, too slow per block (not visible in the run directories). Whether the music sounded right is not recorded; no playppe run exists. The fluidsynth build (+ps3.289) is not in the versions file. Single run each.

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.

VariantConditionsBuildResolutionLength fps
whole run
Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
cpu
seconds
underruns
underruns
ram_free
MiB
vram
MiB
play
not comparable
the recipe as it is Mesa ps3.262 the game's whole run 50.5--- 51.11349.019.665.4

Observations: 11:38-11:49Z, plain-named runs between the profiled ones: dsda-doom 'play' twice (1276 and 1422 underruns, HUD 51 and 50; probably the runs behind the profile that gave libfluidsynth 48.3% of the process samples), OpenArena base 39.7 fps with a 5.9 s longest frame and then 23.4 fps with a 15 s stall (rc 1; the suite run had 54.4), Yamagi 55.2 fps (63.9 in the suite). MemAvailable fell to 38 and 13 MB in the two OpenArena runs. Perf was recording during these runs (told by the coordinator; the run directories have no during.log), which explains the slow OpenArena and Yamagi runs. Do not read them as a change in Mesa ps3.262; the cells are not for comparison.

Mesa ps3.262 + ps3rsx 0.249

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

VariantConditionsBuildResolutionLength fps
whole run
Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
cpu
seconds
underruns
underruns
ram_free
MiB
vram
MiB
base the recipe as it is Mesa ps3.262, ps3rsx 0.249 the game's whole run 38.0--- 110.7176840.525.7

Observations: 2026-10-17 10:42-11:04Z, suite round after Mesa 0019-0025 (fewer words per draw: no relocations, texture cache invalidate only after texture changes, no duplicate VTXFMT writes, batched VP constants; bcd99d7, 5fe2290), one run per game. Against ps3.246: OpenArena tc1 44.2 to 54.4 (+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 and now finishes (+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 row), Luanti 53 to 53. Armagetron drops from 60 to 51 (HUD). Sauerbraten reads 28 to 8 (HUD): it is memory-stalled (MemAvailable 13 MB, killed at the cap), so that is not a driver number and the cause is uncertain. No validator rejects. 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)

VariantConditionsBuildResolutionLength fps
whole run
Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
cpu
seconds
underruns
underruns
ram_free
MiB
vram
MiB
base the recipe as it is Mesa ps3.246, ps3rsx 0.249 the game's whole run 33--- 65.0116152.525.7

Observations: 2026-10-17 08:32-08:54Z, first suite round after the reboot, one run per game. fps: Armagetron 60 (HUD), ClassiCube 47.6, dsda-doom software 33 (HUD, demo unfinished), Extreme Tux Racer 46 (HUD), Luanti 53 (HUD), Neverball 78.2, OpenArena tc1 44.2 (longest frame 2.1 s), QuakeSpasm 70.5, Sauerbraten CPU skinning 28 (HUD), X-Moto 39 (HUD), Yamagi Quake II 51.4. Pictures right and sound right for these games except dsda-doom (1161 underruns, MIDI music), Sauerbraten (176) and OpenTTD (1429, choppy). OpenTTD base ran 55.5 s of CPU with no frame rate (plain X11 path). Single runs, so differences of a few fps are within the run-to-run spread.

dsda-doom sound settings against the underruns (Mesa ps3.225)

2026-10-17 · batch 2026-10-17-dsda-doom-sound · 5 runs in the batch (all games)

VariantConditionsBuildResolutionLength fps
whole run
Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
cpu
seconds
underruns
underruns
ram_free
MiB
vram
MiB
play48k the recipe as it is Mesa ps3.225 the game's whole run 52--- 51.3147150.465.4
playcap35 the recipe as it is Mesa ps3.225 the game's whole run 34--- 47.8138554.165.4
playopl the recipe as it is Mesa ps3.225 the game's whole run 50.5--- 49.11094.554.765.4
tuned the recipe as it is Mesa ps3.225 the game's whole run 50--- 46.034047.765.4

Observations: 00:25-00:34Z, one setting at a time on 'play' (60 s): tuned (OPL, 48 kHz, bigger buffer, 60 fps cap) 340 underruns and 46 s of CPU; playopl (OPL music) 1312 in the first run and 877 in the second (the cell is the mean of the two; the second run ended rc 255 with the game's crash message 'Segmentation fault'); playcap35 (35 fps cap) 1385; play48k (48 kHz mixing) 1471. None of them comes near the 18 underruns without music, so the music default or an SPU synth is needed (decision left to the user, 27805a0). The first playopl run used 54 s of CPU like plain 'play' (53 s) while the second used 44 s, so it may not have applied the OPL setting. Single runs.

dsda-doom +ps3.247 GL renderer and music on/off (Mesa ps3.225)

2026-10-17 · batch 2026-10-17-dsda-doom-gl-music · 3 runs in the batch (all games)

VariantConditionsBuildResolutionLength fps
whole run
Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
cpu
seconds
underruns
underruns
ram_free
MiB
vram
MiB
gl the recipe as it is Mesa ps3.225 the game's whole run 48.8--- 63.2154960.861.5
play the recipe as it is Mesa ps3.225 the game's whole run 52--- 53.4128043.065.4
playnomusic the recipe as it is Mesa ps3.225 the game's whole run 53--- 28.91862.965.4

Observations: 2026-10-17 00:19-00:23Z, our dsda-doom +ps3.247 (Mesa ps3.225, ps3rsx 0.219). GL renderer timedemo 48.8 fps (1549 underruns). 'play' runs the demo at normal speed for 60 s: Gallium HUD median 52, 53 s of CPU, 1280 ALSA underruns a minute; 'playnomusic' (-nomusic) 53 fps, 29 s of CPU and 18 underruns. So fluidsynth's MIDI music costs about 24 s of CPU a minute (~40% of a PPE thread) and causes the chopping (4ff042e). Underruns counted from the game.log lines (bench.txt had no counter yet). Single runs.

dsda-doom +ps3.231 colours fix (Mesa ps3.225)

2026-10-16 · batch 2026-10-16-dsda-doom-colours · 2 runs in the batch (all games)

VariantConditionsBuildResolutionLength fps
whole run
Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
cpu
seconds
underruns
underruns
ram_free
MiB
vram
MiB
base the recipe as it is Mesa ps3.225 the game's whole run 20--- 111.5188843.325.7
gl the recipe as it is Mesa ps3.225 the game's whole run 48.2--- 63.6154261.361.5

Observations: 23:17-23:20Z, our dsda-doom 0.30.0+dfsg-1+ps3.231~dev (0b938a7: big-endian and nv30 fixes). The colours are right now; the GL renderer runs at 1920x1080 with 48.2 fps (a GL_LUMINANCE_ALPHA fallback for the missing GL_RG textures), 64 s of CPU. The software renderer at 960x540 (base) shows 20 fps (HUD) and 112 s of CPU. The sound still chops: 1542-1888 ALSA underruns per run (fluidsynth's MIDI synthesis on the PPE). Single runs.

Group 1 dsda-doom software 960x540 and SDL variants (Mesa ps3.186)

2026-10-16 · batch 2026-10-16-dsda-doom-software · 3 runs in the batch (all games)

VariantConditionsBuildResolutionLength fps
whole run
Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
cpu
seconds
underruns
underruns
ram_free
MiB
vram
MiB
base the recipe as it is Mesa ps3.186 the game's whole run 20.2--- 185.4321054.117.8
gles SDL_RENDER_DRIVER=opengles2 Mesa ps3.186 the game's whole run 29.2--- 130.7227258.217.8
sdlsw SDL_RENDER_DRIVER=software Mesa ps3.186 the game's whole run 1--- -674148.723.8

Observations: 21:29-21:36Z, Debian dsda-doom 0.30.0+dfsg-1, Freedoom DEMO1. base (software renderer 960x540, scaled by SDL's OpenGL renderer) 20.2 fps (2664 gametics in 4623 realtics, finished at 148 s), 185 s of CPU; gles (SDL's GLES2 renderer) 29.2 fps, 131 s of CPU; sdlsw (SDL's software renderer) 1 fps and killed at 300 s. The colours were wrong: rotated with every SDL renderer (909d35b: a big-endian game/SDL bug; the recipe notes the base run as green-tinted). The sound underran thousands of times (3210, 2272 and 6741 ALSA underruns in the three runs, counted from game.log). Fixed in our dsda-doom package (0b938a7), see the +ps3.231 row. Single run per variant.

Group 1 dsda-doom first smoke at 1920x1080 software (Mesa ps3.186)

2026-10-16 · batch 2026-10-16-dsda-doom-smoke · 1 run in the batch (all games)

VariantConditionsBuildResolutionLength fps
whole run
Steady fps
in the window
1% low
fps
Stalls
frames over 100 ms
underruns
underruns
ram_free
MiB
base the recipe as it is Mesa ps3.186 the game's whole run 5--- 361838.1

Observations: 21:25Z, Debian dsda-doom 0.30.0+dfsg-1 with the software renderer at 1920x1080: Gallium HUD median 5 fps (p10 3, min 2), the timedemo did not finish within the 180 s cap (wall 183 s), 3618 ALSA underruns (counted from game.log), MemAvailable down to 38 MB. The recipe then drew the software renderer at 960x540 and let SDL scale it. Single run, no own fps line.