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 /main.py | |
| 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.
Diffstat (limited to 'main.py')
| -rw-r--r-- | main.py | 10 |
1 files changed, 6 insertions, 4 deletions
@@ -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", |
