v3.0.0-alpha.3
Pre-release16 commits since v3.0.0-alpha.2 (2026-08-19 → 2026-08-21).
A small, corrective release. One user-facing fix — the 3D renderer would not start on Windows 10 — plus the repository hygiene behind it: continuous integration works again after months of red, and the test suite no longer depends on one developer's drive layout.
The Windows 10 fix
If the 3D viewer showed a blank panel and the log said D3D12 init failed, this release is the fix.
Device creation probed a single default adapter at a fixed feature level, which fails on Windows 10 for two independent reasons — either one alone was fatal:
- Older Windows 10 runtimes do not know the
12_2feature-level enum and reject it outright withE_INVALIDARG. D3D12CreateDevice(null, …)only ever probes the DEFAULT adapter, which on hybrid-graphics laptops is routinely an integrated GPU below feature level 12_0 — even with a perfectly capable discrete GPU installed.
Creation now walks the whole 12.x ladder (12_2 → 12_1 → 12_0), so an unknown feature level falls through like any other failure, and enumerates hardware adapters explicitly in best-first order — IDXGIFactory6 performance ordering where the OS provides it, plain DXGI order otherwise.
A new GpuAdapterPolicy decides how far the search goes. Under the default, the WARP software rasterizer is the last resort — feature level 12_1 on every supported Windows 10 build — so a machine with no 12_0-capable GPU renders slowly rather than not at all. That state is reported in the viewer rather than hidden, so a WARP session reads as "slow, and here is why" instead of looking like a fault.
When nothing works, every adapter probed is logged with the reason it was rejected, replacing a bare "init failed" with something diagnosable.
Please report back if this does or does not fix your machine. See Verification below for why.
Repository health
Not user-facing, but it is most of this release:
- CI had been failing since April. Four independent faults were stacked, each visible only once the one ahead of it cleared: real-asset tests running ungated; source-contract pins comparing LF marker strings against a CRLF checkout, so they passed locally and could only ever fail in CI; the SDK resolving to a release candidate that parses
dotnet testarguments differently from the GA SDK; and a test-count floor set to an exact local total CI could never reach. - CI could report a green run having built nothing. A shell block reports only its last command's exit code, so a failing build was swallowed and the resulting zero-test run slipped past the very guard meant to catch it — that guard is enforced by a test host that has to start first. Every command in that step is now exit-code checked.
- Retail assets are located, not hardcoded. 53 paths across 41 test files pointed at one machine's
E:\SteamLibrary. A shared locator now honoursBETHESDA_TEST_DATA_ROOT, then repo-relativeSample/, then every fixed drive's Steam library. - A real bug fell out of the analyzer pass: a vertex-cell hash packed three 21-bit integers into a 64-bit key but cast only two, so the third sign-extended through the upper bits and collided cells with a negative Z.
Known limitations
Unchanged from alpha.2 — Starfield normal maps unwired, Fallout 76 map markers missing, decode is read-only with no schema writer, DMP→ESM output limited by capture completeness. See the alpha.2 notes for the full list.
Verification
Build: 0 warnings, 0 errors across both target frameworks and all companion apps. Tests: 8,167 passing, 0 failing in the main suite, plus 63 and 217 in the auxiliary suites — all three verified green in CI, per project.
One honest caveat on the headline fix. The device-creation paths that actually failed — 12_2 rejected, default adapter below 12_0, WARP engaging — need a real Direct3D device to exercise and sit behind an opt-in gate CI does not set. The policy layer is unit-tested; the ladder itself is verified by the renderer starting on a real Windows 10 machine, not by the suite. Treat this fix as tested-by-hand.
Downloads
| Artifact | Contents |
|---|---|
BethesdaMultitool-Windows-GUI-x64.zip |
WinUI 3 desktop app, self-contained |
BethesdaMultitool-Windows-CLI-x64.zip |
Command-line tool, self-contained |
BethesdaMultitool-Linux-CLI-x64.tar.gz |
Command-line tool, self-contained |
BethesdaAudioTranscriber-Windows-x64.zip |
Companion transcriber app |
All builds are self-contained — no .NET runtime install required.
The full entry is in CHANGELOG.md.