protonscr

The Witcher 3: Wild Hunt — Remastered — DLSS/RR/FG unavailable: slInit() is never called and no Streamline plugin is loaded

protonclosed appid 292030
ValveSoftware/Proton#10194 · opened 2026-09-29 by carlosmsalado · updated 2026-09-29 · 1 comments · github · game page · search this game
Ccarlosmsalado 2026-09-29 github

Name of the game with the issue

The Witcher 3: Wild Hunt — Remastered (Steam AppID 292030), build 25575366. The appmanifest_292030.acf app name is The Witcher 3: Wild Hunt — Remastered, and launcher-configuration.json ships a single entry (DirectX 12, fallback DirectX 12) with "editions": [{"name": "remasteredEdition"}] — i.e. this edition is DX12-only (there is no bin/x64 DX11 executable on disk).

Proton version

Reproduced identically with two Proton builds, so this does not look like a Proton-version-specific regression:

  • Proton Experimental — experimental-11.0-20260924 (11.0-100), dxvk-nvapi reported at runtime as 14.0.0
  • GE-Proton11-7 — dxvk-nvapi reported at runtime as v0.9.2

Link to full Proton log

Gist: https://gist.github.com/carlosmsalado/785b4d391034f130b93fb32bea873a77

Raw: https://gist.githubusercontent.com/carlosmsalado/785b4d391034f130b93fb32bea873a77/raw/462ad4e2ce85574b3736dc3cb4223cfbbc607521/steam-292030.log

Captured with PROTON_LOG=1 (2.5 MB / 25,683 lines). Exact launch options used for the capture:

SL_ENABLE_CONSOLE_LOGGING=1 SL_LOG_LEVEL=10 SL_LOG_PATH=C:/sldbg PROTON_LOG=1 VKD3D_CONFIG=extra_rtas_sync %command% --launcher-skip

System Information

  • Distro: Omarchy (Arch-based, rolling)
  • Kernel: 7.2.5-1-cachyos
  • GPU: NVIDIA GeForce RTX 3080 (GA102, 10 GB) — PCI 01:00.0
  • Driver: 610.57.04 (proprietary, nvidia-open-dkms)
  • Integrated GPU (AMD Granite Ridge) disabled in BIOS — the system is single-GPU at test time (/dev/dri exposes only the NVIDIA card, amdgpu not loaded). This is therefore not a hybrid-GPU issue.
  • Motherboard: MSI MAG X870 Tomahawk WIFI (MS-7E51), BIOS 1.A82
  • Display: DisplayPort, 3440x1440 @ 240 Hz (Alienware AW3425DW)
  • Compositor: Hyprland (Wayland)

Steps to reproduce

  1. Launch The Witcher 3: Wild Hunt — Remastered (DX12 renderer) from Steam on an NVIDIA GPU under Proton.
  2. Open Options → Video → Anti-aliasing (upscaler list).
  3. DLSS, DLSS Ray Reconstruction and DLSS Frame Generation are all reported as not available / "not compatible".

No crash. The game renders fine (including ray tracing); only the NVIDIA upscalers are unavailable. The problem is permanent across restarts and after verifying game files.

Expected

DLSS Super Resolution selectable, as on Windows. RTX 3080 is Ampere, so DLSS-SR and DLSS-RR are hardware-supported.

Actual

Every DLSS-based upscaler is permanently reported as unsupported.

Evidence

(1) GPU and NVAPI are correct — this is not a GPU-detection problem:

info:nvapi64:DXVK-NVAPI v0.9.2 NVAPI gcc 14.0.0 x86_64 plain (witcher3.exe)
info:nvapi64:<-NvAPI_Initialize: OK
info:nvapi64:NvAPI Device: NVIDIA GeForce RTX 3080 10GB (610.57.4)
info:nvapi64:<-NvAPI_SYS_GetDriverAndBranchVersion: OK

(2) Only sl.interposer.dll is loaded. NONE of the Streamline plugin DLLs are ever loaded, although they exist on disk next to the interposer (The Witcher 3/bin/x64_dx12/) and are valid x86-64 PE DLLs:

Loaded L"S:\\steamapps\\common\\The Witcher 3\\bin\\x64_dx12\\sl.interposer.dll"

A grep over the complete +loaddll stream for the plugin DLLs returns zero hits:

grep -c 'Loaded L".*sl\.\(common\|dlss\|reflex\|pcl\)' steam-292030.log   ->   0

Present on disk but never loaded: sl.common.dll, sl.dlss.dll, sl.dlss_d.dll, sl.dlss_g.dll, sl.reflex.dll, sl.pcl.dll.

(3) Streamline reports the failure itself:

[streamline][error]sl.cpp:168[slValidateState] SL not initialized or no plugins found - please make sure to include all required plugins including sl.common

(4) slInit() is never called by the game. Proven by enabling Streamline's own environment-variable logging overrides (SL_ENABLE_CONSOLE_LOGGING=1, SL_LOG_LEVEL=10, SL_LOG_PATH=C:/sldbg). Streamline emits SL_LOG_HINT("Overriding logging settings from environment variables") from inside slInit(). That message never appears in the log, and C:\sldbg\sl.log is never created. The slInit() warnings ("Seems like some DX/VK APIs were invoked before slInit()!!!" and "slInit must be called before any DXGI/D3D12/D3D11/Vulkan APIs are invoked") never appear either.

The game creates the D3D12 device at ~0.5 s and then queries Streamline feature support without ever having initialized Streamline, so it receives eErrorNotInitialized for every feature and greys out all DLSS options.

Analysis

From the upstream NVIDIA Streamline SDK source:

  • slValidateState() (source/core/sl.api/sl.cpp) returns eErrorNotInitialized when plugin_manager::arePluginsLoaded() is false.
  • arePluginsLoaded() is s_status == ePluginsLoaded || s_status == ePluginsInitialized (source/core/sl.plugin-manager/pluginManager.cpp), and s_status is set to ePluginsLoaded inside loadPlugins() — very early, before plugin enumeration. So if loadPlugins() had run even once, the validation would already pass. The observed failure means loadPlugins() never ran.
  • loadPlugins() is called from exactly one place: slInit() (return manager->loadPlugins();), and only when interposer::isEnabled() is true.
  • Conclusion: the game never calls slInit() in this environment.

The binary does use the Streamline feature-query API (GetIsDLSSSupported, GetDLSSGSupported, GetDLSSRRSupported are visible in witcher3.exe), so the integration is present — it simply never gets initialized.

One plausible trigger for the game's internal "DLSS not available" gate: the game issues four NVAPI queries whose entry points dxvk-nvapi does not implement, and gets NULL back:

info:nvapi64:nvapi_QueryInterface (0xad298d3f): Unknown function ID
info:nvapi64:nvapi_QueryInterface (0x33c7358c): Unknown function ID
info:nvapi64:nvapi_QueryInterface (0x593e8644): Unknown function ID
info:nvapi64:nvapi_QueryInterface (0xd7c61344): Unknown function ID

It is likely the game treats at least one of these as a hard capability check and disables the entire DLSS/Streamline path rather than falling back. If these entry points can be identified and implemented (or stubbed), that would probably resolve the issue.

Additional information

  • The game ships DLSS 4.x (nvngx_dlss.dll carries the NGX rel_310_9 / juicy_penguin weights), i.e. this is the August 2026 "Remastered" release that added Path Tracing, DLSS 4.5, FSR 4 and XeSS 2. The integration may simply be newer than what Wine has been validated against.
  • Driver-side NGX is present and correct: /usr/lib/libnvidia-ngx.so.610.57.04, /usr/lib/nvidia/wine/{_nvngx,nvngx,nvngx_dlssg}.dll, and the prefix has _nvngx.dll + nvngx.dll in system32.
  • Non-NVIDIA upscalers do work: the log shows amd_fidelityfx_upscaler_dx12.dll, amd_fidelityfx_loader_dx12.dll, libxess.dll and libxess_fg.dll all loading successfully. FSR / XeSS are the practical workaround meanwhile.
  • Ray tracing itself is functional with VKD3D_CONFIG=extra_rtas_sync on driver 610 (per https://forums.developer.nvidia.com/t/solution-for-witcher-3-with-rt-under-610-drivers/378760).
  • sl.interposer.json cannot be used as an override here: the string table of sl.interposer.dll shows the JSON-config code path is compiled out (production build), so enableInterposer / pathToPlugins cannot be set externally.
Kkisak-valve maintainer 2026-09-29 github

Hello @carlosmsalado, we're using one issue report per unofficially supported game title, so I've gone ahead and transferred this issue report to https://github.com/ValveSoftware/Proton/issues/607#issuecomment-5890696508.