diff --git a/NOTICE b/NOTICE index 2a3cebb..afd8f21 100644 --- a/NOTICE +++ b/NOTICE @@ -17,6 +17,15 @@ patches/vkd3d-proton/*.patch under the GNU Lesser General Public License, version 2.1. These patches are offered under the same license. +third_party/fidelityfx/ + AMD FidelityFX SDK 2.3.0 API headers (ffx_api.h, ffx_api_types.h, ffx_denoiser.h), copied + unmodified; the SDK license lists them under the MIT license (third_party/fidelityfx/LICENSE.txt). + AMD's runtime DLLs are not included and remain under AMD's binary terms. + +kernels/support/fsr_rr_prepare.comp + Its diffuse/specular split follows the DLSS-RR to FSR-RR adapter in Zach Hembree's OptiScaler + branch ffx-denoise-experimental and burak113's continuation (GPL-3.0). + Release zips (scripts/package_release.sh) also bundle binaries of ZLUDA (Apache-2.0 or MIT, with LLVM under Apache-2.0 with LLVM exceptions), the patched vkd3d-proton (LGPL-2.1) and OptiScaler (https://github.com/optiscaler/OptiScaler, GPL-3.0, unmodified). Each zip carries their license diff --git a/README.md b/README.md index 65e9f1c..cb7b954 100644 --- a/README.md +++ b/README.md @@ -62,6 +62,7 @@ PreferAccuracy = true NativeSwinEncoders = false MotionVectorDilation = 2 +MotionDilationThinSky = false ; opt-in thin-only sky fill; keep false for current behavior ``` ## Known issues diff --git a/config/d4r.ini.default b/config/d4r.ini.default index 578c5ac..e0eba6d 100644 --- a/config/d4r.ini.default +++ b/config/d4r.ini.default @@ -44,6 +44,24 @@ Enable = auto ; auto preserves the game's choice; default = NVIDIA's default, D/E = transformer models. ; These presets are independent of [DLSS] Model. E requires a DLL that contains that model. Model = auto +; Which denoiser answers a game's Ray Reconstruction request (D4R_RR_BACKEND): +; dlss = NVIDIA's DLSS Ray Reconstruction (Model above), the default. +; fsr = experimental: AMD's FSR Ray Regeneration 1.2 (amd_fidelityfx_denoiser_dx12.dll, unmodified) +; denoises at render resolution, then Super Sampling ([DLSS] Model) upscales to the game's +; output size. D3D12 only. The game's combined colour is split into diffuse and specular +; by its albedos, which is an approximation; see docs/fsr-ray-regeneration.md. +; Changing it needs a game restart (or the game recreating its Ray Reconstruction feature). +Backend = dlss +; The AMD denoiser DLL for Backend = fsr (D4R_FSR_RR_DLL). auto: amd_fidelityfx_denoiser_dx12.dll in +; the d4r folder. +FsrDenoiser = auto +; Backend = fsr tuning. FsrStabilityBias: the AMD denoiser's temporal stability bias; auto = AMD's +; default (1), which blurs reflections and fine detail; 0 measured sharper and closer to the noise-free +; truth, moving or still (D4R_FSR_RR_STABILITY_BIAS). FsrDetail: the share (0-1) of the colour that goes +; around the denoiser, keeping detail it removes as noise (hair, water ripples, foliage) at the cost of some +; grain; 0 = off (D4R_FSR_RR_DETAIL). +FsrStabilityBias = auto +FsrDetail = 0 [Latency] ; How many frames old the upscaled image the game presents may be. @@ -90,6 +108,10 @@ ImplicitMaxBlock = 256 ; and same-frame linear VRAM inputs; unsupported features retain original vectors. ; Default off. May affect disocclusion edges. (D4R_MOTION_DILATION) MotionVectorDilation = 0 +; Opt-in sky-fill experiment for equal render/motion grids: borrow only from foreground +; runs <=3 pixels along either axis. Opaque dilation is unchanged. Restart to change. +; Unsupported routes retain nearest-foreground fill. (D4R_MOTION_THIN_SKY) +MotionDilationThinSky = false ; Keep DLSS inputs and output in VRAM (vkd3d-proton Vulkan interop) instead of copying through ; system memory. Falls back automatically when the game's resources do not qualify. VramInterop = true @@ -177,8 +199,11 @@ MangoHud = false MangoHudConfig = fps,frametime,frame_timing=0,gpu_stats=0,cpu_stats=0,position=top-right,font_size=36 [Debug] -; Per-frame timing lines in the shim log (d4r_nvngx.log) +; Measure stage timings and write sampled timing lines in the shim log (d4r_nvngx.log) Profile = false +; Log the first 5 frames, then every Nth frame. 1 = every frame. Restart after changing. +; FSR RR stage summaries average N completed GPU samples. Env: D4R_PROFILE_LOG_EVERY +ProfileLogEvery = 60 ; Log directory (auto = ~/.cache/d4r-dlss-captures/game--