release: prepare 0.1.5 with RDNA2 kernels and in-game DLSS/FSR switching

- Add native preset K kernels for gfx1030–gfx1036 using software matrix
  products, with fast and accuracy builds and RDNA2 motion kernels.
- Follow OptiScaler's DLSS and RR preset overrides, sanitize unsupported
  values and select the preset matching the feature's quality mode.
- Enable FSR 4 under NVIDIA GPU spoofing by exposing real AMD PCI IDs
  to OptiScaler and FidelityFX modules; bundle AMD's loader and upscaler.
- Keep K on native kernels in engine auto mode unless HIP is selected,
  and fall back to CUDA for M/L when shader_float8 is unavailable.
- Add native-engine K GPU timings, preset recreation harness controls
  and regression coverage; fix the input-wait test's glibc name clash.
- Update configuration, installer guidance and release documentation,
  simplify the README and move gameplay videos to docs/videos.md.

RDNA2 kernels remain untested on RDNA2 hardware; software matrix
arithmetic was validated against WMMA on RDNA3.
This commit is contained in:
ayo committed 2026-10-17 16:05:09 -04:00
1 parent 34e6b0fe71
commit 0e851b7f90
24 files changed
+703 -174

No files matched your search

+6 -2
View File
@@ -1,8 +1,12 @@
<!-- Modified in this fork for CUDA Ray Reconstruction support and validation (2026). -->
# Unreleased
# 0.1.5
- Switch the DLSS model in game from OptiScaler's menu: DLSS Settings > Render Presets Override, pick E, K, L or M, Apply Changes. A preset chosen there (or `RenderPresetOverride` in OptiScaler.ini) now wins over `[DLSS] Model`, which still fills quality modes left at Default and applies again when the override is unticked (`[OptiScaler] FollowPresets`, default true). The shim now also uses the preset of the feature's own quality mode instead of always the Quality slot.
- Switch to FSR from the same menu (Upscaler (DX12) > FSR 3.X/4): the zip ships AMD's FidelityFX loader and FSR 4.1.1 upscaler from the OptiScaler release, and the shim lets OptiScaler and AMD's FidelityFX modules read the GPU's real PCI ids (from sysfs) while the game, vkd3d-proton and NVIDIA's libraries keep the NVIDIA identity (`[OptiScaler] Fsr4`, default true). Under the NVIDIA identity OptiScaler saw no RDNA GPU and FSR 4.1.1 produced FSR 3.1's output byte for byte; now RDNA3 and RDNA4 get FSR 4.1 (through GE-Proton's FSR 4 library; the harness output is byte-identical to FSR 4 without the spoof) and other GPUs FSR 3.1. DLSS output is unchanged.
- RDNA2 (gfx1030–gfx1036: RX 6000 series, Steam Deck, RDNA2 integrated GPUs): native DLSS 4 (K) layers. RDNA2 has no WMMA, so `kernels/common/wmma_layout.h` does each 16×16×16 product with `v_dot2c_f32_f16` and a `row_share` DPP broadcast folded into the instruction, in the gfx11 register layout. On an RX 7700 XT this path is bit-identical to the WMMA instruction (random chains and K's whole network over 24 frames) and runs K in 3.6 ms per 1080p frame (WMMA: 1.48 ms; fully translated without WMMA, which RDNA2 got before: 46.8 ms; RDNA2 also keeps K's output tail translated, about +0.7 ms on RDNA3). E runs translated, as on every GPU; M and L are translated only on RDNA2. Not yet run on RDNA2 hardware.
- `install.sh` sets up the native engine: after the NVIDIA DLLs (now also DLSS Ray Reconstruction 310.9.1) it offers to build the engine's models on the user's machine (`d4r/tools/build-engine-models.sh`): Ray Reconstruction D, E and F straight from `nvngx_dlssd.dll`, Super Resolution K, M and L (and their LDR variants) from one test frame per model rendered through d4r under GE-Proton. The verified DLLs and the built models are kept in `~/.cache/d4r`, so the next game's install neither downloads nor builds again. Questions replace the old command-line choices (`--help` lists options for scripted installs).
- `[Engine] Enabled = auto` is the new default: the engine (the faster path) runs whenever `d4r/engine` holds its models, with the fastest model builds; anything it cannot run still uses the CUDA backend.
- `[Engine] Enabled = auto` is the new default: the engine runs whenever `d4r/engine` holds its models, with the fastest model builds; it is faster on RDNA4. Anything it cannot run still uses the CUDA backend.
- Not in this build: the experimental AMD FSR Ray Regeneration backend for Ray Reconstruction (`[RayReconstruction] Backend = fsr`) that an earlier nightly carried. Its code is not part of d4r's sources; Ray Reconstruction runs on NVIDIA's DLSS denoiser (engine or CUDA backend).
- ASI setup ignores Proton accessibility helpers and other background utilities, and serializes setup per plugin installation. Its D3D12 configuration uses regular Windows library hooks and disables Agility SDK upgrades. Game-specific startup remains a separate runtime check.