You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The D3D12 device handed to NGX is ReShade's underlying device, not its proxy. ReShade wraps every D3D12 device created through the export, this add-on's own included, and then broadcasts init_device, init_pipeline, init_sampler and the rest to every loaded add-on for everything built from it. Luma is a DX11-only framework whose compile-time API guard is off unless a game opts in, and Prey 2017 does not: its OnInitDevice returns early for a non-D3D11 device, so ReShade never gives it per-device data, and every other handler then dereferences that null. NVSDK_NGX_D3D12_Init_Ext creating pipeline state on the device was the first such event, and it faulted at an address inside Luma-Prey.addon. The proxy is now unwrapped through ReShade's own IID_UnwrappedObject, so no other add-on is handed D3D12 objects it never asked for. unwrap=0 in dlss5-dx11-bridge.cfg restores the old behaviour. Aimed at Prey 2017; not verified there.
No module is patched while this add-on's own NGX initialisation is running. The loader notification runs under the loader lock and was enumerating modules, reading version resources from disk and writing jumps into code. The guard was missing from the 1.0.24 binary; it is present here and a log line marks it running.
Added
probe=1 creates a D3D12 device and calls NVSDK_NGX_D3D12_Init_Ext on its own, without waiting for the game to call DLSS. Prey has no DLSS of its own, so removing the add-on that provides it also removed every call and left nothing to test. Off by default.
Fault addresses are reported as an offset into the owning module, and every add-on's load address is listed. An absolute address changes each run and tells the owner of that module nothing.
Notes
Verified on Baldur's Gate 3, whose device is also wrapped: the unwrap runs, the session opens, and 17,000 frames and three feature rebuilds follow.
Prey 2017 is unverified. The diagnosis predicts the session now opens there; if it does not, the diagnosis is wrong.
On ReShade older than 6.6 there is no proxy to unwrap and behaviour is unchanged.