// nonfiction ⁄ blessed_skyrim ⁄ print 015 ⁄ 2026.10.03
bs bench
every blessed skyrim benchmark run behind past native, 2,370 of them.
// bench [088 campaigns]
raw bench behind past native, my optimizations for skyrim special edition. 80 campaigns over five days, c1 to c80. c57 & c63 ran in parts, three had side runs so the data lists 88. most ran native dx11, same sitting, so the fork’s paired against it. the fork starts fairly dismally, ngl
click a campaign to see what it ran. failed runs stay in w the gate that failed them.
// the climb in five marks [fork vs native]
- c4 the pit, features off −61.53% fork 86.1 · native 223.7 fps
- c10 the morning after, full stack −37.11% fork 139.2 · native 221.3 fps
- c53 the tie, then corrected −0.09% fork 219.1 · native 219.3 fps
- c58 first paired win +1.23% fork 221.5 · native 219.2 fps
- c76 published, paired +10.97% fork 242.2 · native 218.1 fps
medians without the warm-up, as on the climb. c58 and c76 are paired, as published. open a mark to see its runs.
// runs [2,370]
ok2,144
failed226
campaigns88
outside a campaign424
// c76 [checked at build]
whiterun 218.1 → 242.2 fps
the flight 239.8 → 250.7 fps
whiterun 9.81 → 4.61 display ms
the flight 12.42 → 4.73 display ms
whiterun +10.97% paired, the headline
the flight +4.37% paired, the headline
// scene
// backend
// the climb [fork vs native]
- fork, ahead of native
- fork, behind native
- stock dxvk
- native, the zero line
- best fork in each campaign
- no native to compare
← → campaign ↑ ↓ a dot enter open its runs esc close
a dot is one configuration's median fps, set against the native median of the same campaign, scene, settings and mods. the first repeat of every campaign is a warm-up and is left out. the published numbers were made the same way.
24 campaigns ran without native, and 7 more kept no native run past the warm-up. they have no dots. they stand as ticks under the axis, and their runs open in the drawer like the others.
a dot is a ratio of two medians. the headline percentages are paired: each fork run against the native run of the same repeat, then averaged. so a dot can sit a little off its headline. c76 in whiterun is +11.04% as a dot and +10.97% paired, shown in the c76 box.
early campaigns ran at a 60 fps cap, and a few ran at low settings and 720p. each dot compares only inside its own campaign. past native quotes c4 as the mean of all three runs, warm-up included: native 222.7, stock dxvk 163.5, the fork 85.4, the full ray-traced stack 65.8. by this page's rule, medians without the warm-up, they are 223.7, 165.4, 86.1 and 69.1.
// runs
pick a campaign on the climb or in the list below, and its runs unfold here.
the runs open with javascript. with it off, the csv on github has every one.
// campaigns [088]
every campaign in the order it ran. the best column is the best fork configuration against native, warm-up left out.
| # | campaign | plan | first run, utc | runs | failed | best fork |
|---|---|---|---|---|---|---|
| 001 | c1 | whiterun-save | 09-23 06:23 | 15 | · | +0.3% |
| 002 | c2 | rt-shadows | 09-23 08:05 | 9 | · | no comparison |
| 003 | c3 | blessed-stack | 09-23 09:25 | 9 | 1 | +0.3% |
| 004 | c4 | uncapped | 09-23 09:56 | 15 | · | −61.5% |
| 005 | c5 | fork-cpu | 09-23 10:17 | 9 | · | no comparison |
| 006 | c6 | probe-gi | 09-23 10:32 | 18 | · | no comparison |
| 007 | c7 | uncapped-2 | 09-23 11:54 | 12 | · | −38.2% |
| 008 | c8 | uncapped-2 | 09-23 12:17 | 20 | · | −29.4% |
| 009 | c9 | uncapped-2 | 09-23 12:50 | 20 | · | −31.2% |
| 010 | c10 | uncapped-2 | 09-23 13:21 | 20 | · | −31.6% |
| 011 | c11 | fork-gap | 09-23 13:49 | 15 | · | no comparison |
| 012 | c12 | compiler | 09-23 14:08 | 15 | · | no comparison |
| 013 | c13 | zero-cost | 09-23 15:01 | 15 | · | no comparison |
| 014 | c14 | noprobe | 09-23 15:20 | 15 | · | no comparison |
| 015 | c15 | layered-ab | 09-23 18:52 | 12 | · | −48.9% |
| 016 | c16 | layered-ab | 09-23 19:12 | 12 | · | +6.2% |
| 017 | c17 | layered-ab | 09-23 19:33 | 15 | · | −29.9% |
| 018 | c18 | layered-ab | 09-23 19:54 | 15 | · | −30.1% |
| 019 | c19 | perf-parts | 09-23 21:02 | 12 | 6 | no comparison |
| 020 | c20 | cache-ab | 09-23 21:31 | 12 | · | no comparison |
| 021 | c21 | cpu-bound | 09-23 22:07 | 12 | · | +2.6% |
| 022 | c22 | alloc-ab | 09-23 22:56 | 6 | · | no comparison |
| 023 | c23 | perf-vs-native | 09-23 23:53 | 30 | · | +0.5% |
| 024 | c24 | critical-levers | 09-24 02:03 | 18 | · | −3.9% |
| 025 | c25 | engine-switches | 09-24 02:43 | 36 | 1 | no comparison |
| 026 | c26 | checks-evening | 09-24 05:21 | 6 | 2 | no comparison |
| 027 | c27 | crash-hunt | 09-24 05:39 | 12 | · | no comparison |
| 028 | c28 | critical-2 | 09-24 06:03 | 18 | 1 | −3.9% |
| 029 | c29 | new-scenes | 09-24 06:58 | 6 | 1 | −14.1% |
| 030 | c30 | engine-fixes | 09-24 07:45 | 12 | · | no comparison |
| 031 | c31 | critical-3 | 09-24 08:21 | 14 | 1 | no comparison |
| 032 | c32 | pinning | 09-24 09:10 | 30 | 2 | no comparison |
| 033 | c33 | frame-timer | 09-24 10:24 | 12 | 1 | +4.4% |
| 034 | c34 | critical-3 | 09-24 19:48 | 27 | 3 | −5.3% |
| 035 | c38 | fe-hunt | 09-24 20:53 | 6 | 6 | no comparison |
| 036 | c39 | fe-hunt-2 | 09-24 23:05 | 24 | · | no comparison |
| 037 | c40 | water | 09-24 23:49 | 12 | 1 | no comparison |
| 038 | c35 | fly | 09-25 00:16 | 15 | 4 | −7.7% |
| 039 | c36 | frame-timer | 09-25 00:47 | 12 | · | +2.3% |
| 040 | c37 | critical-3 | 09-25 01:14 | 27 | · | −5.0% |
| 041 | c41 | fly | 09-25 01:28 | 15 | · | −9.6% |
| 042 | c42 | water | 09-25 02:05 | 12 | · | no comparison |
| 043 | c43 | load-hunt | 09-25 02:34 | 32 | 5 | no comparison |
| 044 | c44 | load-hunt | 09-25 04:37 | 32 | · | no comparison |
| 045 | c45 | cache-4 | 09-25 05:42 | 15 | · | −4.2% |
| 046 | c46p | cs-prime | 09-25 06:21 | 4 | 3 | no comparison |
| 047 | c46 | cs-compare | 09-25 06:31 | 30 | 12 | −1.1% |
| 048 | c47 | unmeasured-levers | 09-25 08:03 | 18 | 3 | −3.3% |
| 049 | c48 | passes-bit8 | 09-25 08:44 | 4 | · | −0.6% |
| 050 | c49 | dxvk-conf-sweep | 09-25 08:55 | 27 | · | no comparison |
| 051 | c50 | midframe-split | 09-25 09:57 | 33 | · | no comparison |
| 052 | c51 | unmeasured-levers-2 | 09-25 20:07 | 12 | · | no comparison |
| 053 | c52 | cb-mirror | 09-25 20:36 | 9 | · | −0.7% |
| 054 | c53 | mirror-confirm | 09-25 20:56 | 30 | · | −0.1% |
| 055 | c54 | passes-scenes | 09-25 22:05 | 8 | · | +4.4% |
| 056 | c55 | vb-rebar | 09-25 22:52 | 18 | · | −0.1% |
| 057 | c56 | strict-screen | 09-26 01:24 | 15 | · | +0.4% |
| 058 | c57-hagsoff | hags-ab | 09-26 02:19 | 30 | · | −2.2% |
| 059 | c57-hagson | hags-ab | 09-26 05:36 | 30 | · | +0.4% |
| 060 | c58 | primed | 09-26 06:57 | 66 | 11 | +1.1% |
| 061 | c59 | c59 | 09-26 10:23 | 88 | · | +1.6% |
| 062 | c60 | passes-c60 | 09-26 13:55 | 8 | · | +1.1% |
| 063 | c61 | c61-volgen | 09-26 14:58 | 54 | · | +2.2% |
| 064 | c62 | c62-fe-shadow | 09-26 17:30 | 60 | · | +2.9% |
| 065 | c63-bit8a | c63-flags | 09-26 22:18 | 8 | 8 | no comparison |
| 066 | c63-bit8b | c63-flags | 09-26 23:18 | 8 | · | +4.3% |
| 067 | c63-f803a5 | c63-flags | 09-26 23:48 | 8 | · | +5.3% |
| 068 | c63-f802a5 | c63-flags | 09-27 00:11 | 8 | · | +2.1% |
| 069 | c63-bit8c | c63-flags | 09-27 00:32 | 8 | · | +4.6% |
| 070 | c64 | c64-async | 09-27 01:00 | 40 | 5 | +3.2% |
| 071 | c65 | c65-confirm | 09-27 03:30 | 27 | 5 | +5.7% |
| 072 | c66 | c66-fbcopy | 09-27 05:11 | 60 | · | +3.2% |
| 073 | c67 | c67-zerocopy | 09-27 07:32 | 60 | · | +1.6% |
| 074 | c68 | c68-passes | 09-27 09:52 | 6 | 1 | no comparison |
| 075 | c69 | c69-owed | 09-27 10:22 | 8 | · | +7.9% |
| 076 | c70 | c70-fpe | 09-27 11:00 | 60 | · | +3.7% |
| 077 | c71 | c71-cube-img4 | 09-27 13:41 | 42 | · | −1.3% |
| 078 | c72 | c72-unified | 09-27 15:52 | 30 | · | −1.1% |
| 079 | c73 | c73-reflect | 09-27 18:31 | 18 | · | +1.3% |
| 080 | c74 | c74-temporal | 09-27 19:33 | 60 | · | +9.6% |
| 081 | c75 | c75-sundeg | 09-27 22:48 | 36 | · | +11.2% |
| 082 | c76 | c76-final | 09-28 00:29 | 48 | · | +11.0% |
| 083 | c77 | c77-mods | 09-28 03:05 | 48 | · | +12.7% |
| 084 | c78s | c78-smoke | 09-28 05:05 | 4 | 2 | no comparison |
| 085 | c78 | c78-mods | 09-28 05:28 | 3 | · | no comparison |
| 086 | c79s | c79-smoke | 09-28 07:01 | 2 | · | no comparison |
| 087 | c79 | c79-mods | 09-28 07:06 | 48 | 1 | +16.6% |
| 088 | c80 | c80-ladder | 09-28 09:04 | 36 | · | +12.3% |
| ··· | loose | runs outside any campaign | 09-23 03:25 | 424 | 140 | no comparison |
// data
runs.csv2,370
what each column meansreadme
every run is in the csv, failed ones too.