diff options
| author | XxJSONDeruloxX <danielhimebauch@gmail.com> | 2026-04-19 12:15:34 -0400 |
|---|---|---|
| committer | XxJSONDeruloxX <danielhimebauch@gmail.com> | 2026-04-19 12:15:34 -0400 |
| commit | b342b80267829e10aa415dd17a5b9a72928da45d (patch) | |
| tree | 771d137b7d1d546a61f4889ed01abc12ea6f8b46 | |
| parent | 9e096ef3e8ca4564f5c77f456fea346a3f28952e (diff) | |
| download | Decky-Framegen-b342b80267829e10aa415dd17a5b9a72928da45d.tar.gz Decky-Framegen-b342b80267829e10aa415dd17a5b9a72928da45d.zip | |
fix: drop nvngx.dll remote binary and all shipping/staging references
The nvngx.dll bundled from the OptiScaler v0.7.8-pre0 nightly was the
real NVIDIA DLSS 3.10.3 production runtime (47 MB). Inspection of its
PE export table showed it is missing 18 NVSDK_NGX_* symbols introduced
in DLSS SDK 3.1+ that every modern DLSS-enabled title calls at init:
NVSDK_NGX_D3D12_AllocateParameters / DestroyParameters
NVSDK_NGX_D3D12_GetCapabilityParameters / GetParameters
NVSDK_NGX_D3D12_Init_with_ProjectID / Init_ProjectID
NVSDK_NGX_UpdateFeature
(plus D3D11 and Vulkan equivalents)
OptiScaler 0.9.0-final's own NGX proxy layer exports all of these and
handles all NGX interception internally. Shipping the bare NVIDIA DLL
alongside it caused export-not-found failures on Proton when any code
path bypassed OptiScaler's hooks and resolved directly against the file.
The OptiScaler 0.9.0-final release notes also explicitly advise Linux
users to delete nvngx.dll when upgrading.
Changes:
- package.json: remove nvngx.dll from remote_binary download list
- main.py SUPPORT_FILES: remove nvngx.dll (no longer staged to fgmod/)
- main.py extract_static_optiscaler: remove nvngx.dll from additional_files;
add explanatory comment for future reference
- main.py check_fgmod_path: remove nvngx.dll from required-file check
- fgmod.sh: remove the cp line that deployed nvngx.dll into game dirs
nvngx.dll is intentionally kept in INJECTOR_FILENAMES (main.py) and in
the fgmod.sh pre-patch rm and fgmod-uninstaller.sh cleanup so that any
copy placed by a previous plugin version is swept from game directories
on the next patch or uninstall.
| -rwxr-xr-x | defaults/assets/fgmod.sh | 1 | ||||
| -rw-r--r-- | main.py | 10 | ||||
| -rw-r--r-- | package.json | 5 |
3 files changed, 6 insertions, 10 deletions
diff --git a/defaults/assets/fgmod.sh b/defaults/assets/fgmod.sh index decb981..8d0b77b 100755 --- a/defaults/assets/fgmod.sh +++ b/defaults/assets/fgmod.sh @@ -183,7 +183,6 @@ cp -f "$fgmod_path/amd_fidelityfx_dx12.dll" "$exe_folder_path/" || true cp -f "$fgmod_path/amd_fidelityfx_framegeneration_dx12.dll" "$exe_folder_path/" || true cp -f "$fgmod_path/amd_fidelityfx_upscaler_dx12.dll" "$exe_folder_path/" || true cp -f "$fgmod_path/amd_fidelityfx_vk.dll" "$exe_folder_path/" || true -cp -f "$fgmod_path/nvngx.dll" "$exe_folder_path/" || true # === Nukem FG Mod Files (now in fgmod directory) === cp -f "$fgmod_path/dlssg_to_fsr3_amd_is_better.dll" "$exe_folder_path/" || true @@ -48,7 +48,6 @@ SUPPORT_FILES = [ "amd_fidelityfx_framegeneration_dx12.dll", "amd_fidelityfx_upscaler_dx12.dll", "amd_fidelityfx_vk.dll", - "nvngx.dll", "dlssg_to_fsr3_amd_is_better.dll", "fakenvapi.dll", "fakenvapi.ini", @@ -346,8 +345,12 @@ class Plugin: # Copy additional individual files from bin directory # Note: v0.9.0-final includes dlssg_to_fsr3_amd_is_better.dll, fakenvapi.dll, and fakenvapi.ini in the 7z # Only copy files that aren't already in the archive (separate remote binaries) + # nvngx.dll is intentionally excluded: it was a stale DLSS 3.10.3 stub from a + # pre-0.9 nightly that is missing DLSS 3.1+ exports (AllocateParameters, + # GetCapabilityParameters, Init_with_ProjectID, etc.) present in OptiScaler + # 0.9.0-final's own NGX proxy layer. OptiScaler handles all NGX interception + # internally; the bare nvidia DLL caused export-not-found failures on Proton. additional_files = [ - "nvngx.dll", # nvidia dll from streamline sdk, not bundled in opti "OptiPatcher_v0.30.asi" # ASI plugin for OptiScaler spoofing ] @@ -511,8 +514,7 @@ class Plugin: "OptiScaler.ini", "dlssg_to_fsr3_amd_is_better.dll", "fakenvapi.dll", # v0.9.0-final includes fakenvapi.dll in archive - "fakenvapi.ini", - "nvngx.dll", + "fakenvapi.ini", "amd_fidelityfx_dx12.dll", "amd_fidelityfx_framegeneration_dx12.dll", "amd_fidelityfx_upscaler_dx12.dll", diff --git a/package.json b/package.json index 618c88c..b48d9cd 100644 --- a/package.json +++ b/package.json @@ -66,11 +66,6 @@ "sha256hash": "c4afb71d179894ac68874d48295e101fedb0dd8e10bcec29163760465706267c", "url": "https://github.com/optiscaler/OptiPatcher/releases/download/v0.30/OptiPatcher_v0.30.asi", "name": "OptiPatcher_v0.30.asi" - }, - { - "sha256hash": "1d75e7c1f37f966517f625aa3cc9602ff89d42ad2a7fcbdfa5fc91dab4674149", - "url": "https://github.com/xXJSONDeruloXx/OptiScaler-Bleeding-Edge/releases/download/OptiScaler_v0.7.8-pre0_20250816_unsigned_dll-13b2b5d0/nvngx.dll", - "name": "nvngx.dll" } ] } |
