d4r 0.1.4
Separate Linux/Proton and native Windows downloads are available in this release. Choose the ZIP for your platform; their installation methods, supported presets and runtime bundles differ.
| Download | Platform and scope |
|---|---|
d4r-0.1.4-linux.zip
| Linux x86_64 / Proton; freshly built in the pinned glibc 2.41 environment. E, K, M and experimental L; gfx1100–gfx1103 and gfx1200–gfx1201 kernel sets, including performance/accuracy and RDNA4 FP8 variants. |
d4r-0.1.4-windows.zip
| Experimental native Windows x64 / RX 9070 XT (gfx1201); K and M. Linux cross-build with verified prebuilt Windows dependencies. |
Each ZIP has a separate .sha256 file. The Linux ZIP retains the bundled NGX/DLSS installation used by earlier releases. The Windows ZIP now also bundles NVIDIA NGX core and the exact supported DLSS 310.9.1 DLL. Private NVIDIA-derived texture kernel objects remain excluded.
Linux / Proton
This release includes every feature and fix in aa447b27a5b178d7059cc34b7c943f3a6f49355c.
Improved visuals and experimental preset L
- Experimental DLSS 4.5 preset L acceleration. L now has its unfolded enc0, dec0 and post-processing texture variants, retaining their neural arithmetic with native surface-store conversion. Builds cover all four input flag combinations, all eight post variants, shared downsampling and Swin layers.
all/texinclude L;kernels/build.sh lbuilds its focused set. Packaging completes missing L variants in older supplied texture bundles instead of silently shipping only M's folded variants. - Selective L/M encoder fallback for cleaner motion. Set
[Kernels] NativeSwinEncoders = falsewithPreferAccuracy = trueand restart. Only native enc1/enc2 are bypassed; tube, decoder and texture acceleration remain. This reduced extra building-edge trails in the captured Townfall sequence on RX 7700 XT, at a GPU-time cost. The speed-oriented default remainsNativeSwinEncoders = true. A manifest is required for selective fallback; unmanifested flat developer sets fall back entirely. - Opt-in GPU motion-vector dilation for thin geometry and sky gaps.
[Interop] MotionVectorDilation = 1or2selects the foreground radius in render pixels. Both enabled values fill sky gaps from the nearest foreground within an eight-render-pixel circle. A separate RG16F velocity texture leaves the original depth and motion buffers untouched, with no per-frame CPU image readback. This improved the captured Townfall rooftop where encoder fallback alone did not resolve the artifact. The default is0(off). - Clearer model guidance. K remains the default for DLAA/Quality/Balanced; M is recommended for Performance; experimental L for Ultra Performance, especially 4K. E is the legacy CNN fallback; F is deprecated in favour of K/L. Choosing a model does not change render resolution: select the upscaling mode in the game or OptiScaler separately.
The supplied comparison illustrates the improvement in visual quality in the captured scene. The new image-quality controls are opt-in; use the settings described above to enable them. This does not establish identical RTX output or a universal improvement across games.
The comparison is labelled v0.1.3 on the left and v0.1.4 on the right, showing less breakup in this captured scene.
Synchronization and resource-lifetime fixes
- Replace uncancellable input-side GPU waits with readiness polling and short CPU sleeps. Recorded-but-unsubmitted frames can time out or retire before any DLSS work is queued.
GpuWaitis retired; input polling defaults to 200 µs. Linear inputs and direct output remain available. - Use CUDA completion-event queries with 200 µs
NtDelayExecutionsleeps by default, avoiding event/context waits that can occupy a CPU core and MinGW sleeps that truncate submillisecond delays to zero. An unavailable or failed event falls back to context synchronization.D4R_SHIM_BLOCKING_SYNC = 0restores context waits for an A/B comparison; profiling reports the wait method and CPU/wall duration. - Add the matching vkd3d resource-lifetime extension. Staging/imported buffers, conversion images and split semaphores remain retained through command-allocator completion, reset or destruction, including discarded recordings. Older vkd3d runtimes are rejected at feature creation, including host-staging configurations.
- Drain retiring features' CPU/CUDA work and defer shutdown until cleanup. A watchdog reports delayed output without signalling an unfinished producer as ready. Cleanup no longer relies on a fixed 50 ms delay.
- Extend lifecycle harness coverage for delayed/discarded submissions, retained ownership, feature recreation and deferred shutdown. Add event-wait, preset-L, selective-encoder, motion-geometry and optional GPU motion-kernel regressions.
- Update configuration defaults, portable INI parsing, build scripts, source notices and release documentation. The Wine bridge embeds motion support objects for all six GPU architectures when built with ROCm clang; unavailable support keeps the original inputs.
Linux limitations and updating
- Replace
d3d12.dll,d3d12core.dll,d4r/nvngx.dllandd4r/nvcuda.dlltogether. Mixing the new shim with an older vkd3d runtime is unsupported. - L remains experimental. Its recorded initial gfx1101 harness comparison matched translated L texture output for the tested inputs; compilation of other targets is separate from hardware validation. 4K L gameplay and Linux RDNA4 runtime/performance remain unverified.
- Motion dilation requires same-frame linear VRAM inputs, unjittered render- or display-resolution motion vectors, supported depth layouts and zero subrect bases. Unsupported configurations retain original vectors. Larger radii can alter disocclusion/foreground edges and strengthen trails in some frames; this does not reconstruct geometry absent from every input frame.
PreferAccuracyaims to preserve arithmetic; neither it nor the visual fixes establish 1:1 RTX quality. Performance and artifacts vary by game and GPU. RDNA2 and older are unsupported; DLSS 5 is unsupported.- First-use translated PTX compilation, especially with a new accuracy cache, can take time. Read the bundled
D4R_README.txtfor installation and troubleshooting.
Windows — experimental native D3D12 backend
The Windows work is integrated from PR #11. Its documented hardware validation is Windows 11 x64 / RX 9070 XT / gfx1201. Windows 10, other GPUs and other games are not established as supported by those tests.
- Runs native K and M through patched OptiScaler, Windows ZLUDA and the pinned TheRock 10.2.0a20260929 / HIP 7.17.26386 runtime. Colour, depth, motion, exposure and output stay in shared VRAM with D3D12 fences and current-frame results.
- Includes eleven conservative K objects and five FP16-equivalent M objects, with FP16 rounding/subnormals retained and native FP8 disabled. The documented upstream Windows tests cover real Silent Hill 2 frames, K/M 4K output and sixteen hardware test gates.
- Tracks command-list state, queue-ordered texture layouts, indirect state and resource lifetimes. Per-thread weak lookup caches reduce shared routing-table contention without retaining game resources.
- Offers opt-in
-AsyncInteropfor K, with a CUDA worker, queued dependencies and resource retention through GPU completion. It currently requires a single D3D12 command queue. Feature release/reconfiguration drains pending consumers. - Supplies an installer/runner with backups and guarded restore, concurrent log draining, an ordinary process-job launch and optional crash/minidump capture. Optional output NaN/Inf checks, CPU/kernel/command-hook profiling and GPU boundary timings are documented separately from production FPS measurements.
After extracting the Windows ZIP, run from its folder, setting the game executable path:
.\windows-game.ps1 -GameExe "D:\Games\Game\Game.exe" -NgxCore "$PWD\d4r\ngx\_nvngx.dll" -DlssDll "$PWD\d4r\nvngx_dlss.dll" -Preset 11Preset 11 selects K; 13 selects M. The installer backs up the game files it replaces. Read the included README before installing over an existing upscaler setup.
Windows limitations
- This release ZIP is a Linux cross-build. Its build, package/hash checks and Wine CPU ABI smoke test are separate from GPU/gameplay tests of the upstream Windows development build. This exact cross-built ZIP has not been tested for GPU rendering or gameplay on Windows.
- gfx1201 only; K/M only. Windows L is unvalidated. The Linux INI options for encoder fallback and motion dilation are not provided by this Windows package. Do not use the Linux INI or Proton DLL bundle as Windows installation instructions.
- Bundled NVIDIA DLLs. NGX core 32.0.16.1714 and DLSS 310.9.1 are supplied unmodified. They are separate from d4r's own license and source build. The native manifest requires DLSS 310.9.1, SHA-256
3975567b8943c53acce397f2b72380092f84f162d00b0d2c7d08a1025c563983. Other DLL versions need regenerated and validated manifests. - Keep the pinned HIP runtime. Stable HIP 7.2 reproduced an external-memory mapped-view leak in the documented Windows tests; it is not a drop-in substitute for this bundle.
- No guaranteed FPS gain. Reported upstream scene results used local private K output-store objects, which are excluded here. Native M FP8 experiments did not demonstrate a full-network speedup and are not substituted for the baseline. Async scheduling remains opt-in.
- Use a D3D12 game without anti-cheat, and follow the Windows ZIP's
README.md,CROSS_BUILD.mdandwindows-game.ps1. GPU, API, OS and game coverage remain limited.
Shared limitations
Super Resolution only: Frame Generation, Ray Reconstruction and DLSS 5 are unsupported. Keep Ray Reconstruction disabled. d4r remains a proof of concept with limited game and hardware coverage.
Build and verification
Both packages use source commit c522101341d019d1ce0379e5932cd80f780349ee, which includes aa447b2 and the Windows integration. Linux's isolated packaging snapshot sets its release version to 0.1.4; the checked-out source remains unchanged. Windows dependency origins and every packaged file hash are recorded in package.json; the Linux toolchain is recorded in d4r/source/BUILD_INFO.txt.
- Fresh Linux build completed in the pinned glibc 2.41 container: device helpers, ZLUDA/LLVM, offline emitter, shim, Wine bridge with six embedded motion targets, patched vkd3d, and all 1,120 native kernel objects. All 16 performance/accuracy target folders include 70 objects, including the unfolded L variants.
- ZIP integrity, packaged file contents, native manifests and GPU target headers passed. Every bundled Linux library requires glibc 2.38 or older; the packaged ZLUDA library loaded in glibc 2.41 and returned driver API success/version 13000.
- 18 policy/configuration tests passed. Three optional GPU motion regressions passed separately against the exact support objects embedded in the final bridge.
- Eight Linux GPU harness runs passed on gfx1101: E/K/M/L, accuracy off and on, each with 16 finite, nonzero saved frames at 192×108 → 576×324. The K run also passed retained submitted/discarded ownership, a 350 ms delayed submission, discarded evaluation, and six feature-recreation cycles with finite output. These checks do not establish 4K L gameplay, RTX parity or Linux RDNA4 stability.
- Windows archive integrity, all manifest hashes, 16 gfx1201 kernel objects, and 15 PE dependency checks passed. Wine CPU smoke checks passed DLL loading, 20 exports, backend ABI 1, scratch API behaviour and six MSVC parameter roundtrips. The bundled NGX core was extracted from NVIDIA's official 617.14 driver package; DLSS 310.9.1 matches the required SHA-256. Windows GPU rendering/gameplay for this exact ZIP remains untested.
