Fix OptiScaler NGX routing and align marker polling defaults

- Explicitly route OptiScaler to d4r\nvngx.dll in release packages.

- Extract INI generation into a helper that preserves line endings
  and rejects missing or duplicate settings.

- Check NGX routing separately from file presence and return failure
  when the installation is incomplete or misconfigured.

- Add an optional OptiScaler patch for external DLSS backends while
  preserving AMD identity for FSR4, with matching launch guidance.

- Align portable and launcher marker polling defaults at 200 us.

- Log when d4r's model override replaces game or OptiScaler presets.

- Add configuration, package, routing and coexistence regression tests.

- Update installation documentation, add FSR/DLSS comparison videos
  and ignore local .tools artifacts.

Refs: #7, #14
This commit is contained in:
ayo committed 2026-10-02 16:32:49 -04:00
1 parent f66cccaf28
commit cb08e1c313
17 files changed
+738 -31

No files matched your search

+4 -1
View File
@@ -1,9 +1,12 @@
# OptiScaler.ini values the d4r release sets (Section.Key=Value); everything else keeps OptiScaler's
# default. scripts/package_release.sh applies them to the OptiScaler.ini of the bundled release.
# DLSS as the DX12 upscaler, loaded from the d4r folder (OptiScaler looks for nvngx.dll there)
# DLSS as the DX12 upscaler. Select the shim by filename: OptiDllPath alone allows
# OptiScaler's first _nvngx.dll probe to load Proton's system core before trying nvngx.dll.
Upscalers.Dx12Upscaler=dlss
DLSS.Enabled=true
Libraries.OptiDllPath=d4r
Libraries.NvngxPath=d4r\nvngx.dll
# Do not use d4r\ngx\_nvngx.dll here: that NVIDIA core is loaded internally by the shim.
# The game's DLSS calls reach OptiScaler; d4r's own load of NVIDIA's NGX core is left alone
Inputs.EnableDlssInputs=true
Hooks.HookOriginalNvngxOnly=true