github maohgad-web/Neural-coprocessor 0.2.1
v0.2.1 - MGPU Bridge, engine depth and motion vectors (hotfix)

3 hours ago

The current release. Drop-in: no compilation needed.

What this release does

A second GPU runs the game's DLSS Neural Rendering while the first one renders. Not SLI - nothing is split mid-frame. Neural rendering is a terminal stage: it takes a finished frame and returns a finished frame, so it can be executed somewhere else entirely.

  • The game's own depth and motion vectors reach DLSS 5 on the second card. The model derives motion from colour on its own, which is what 0.1.0 ran on and it works. Feeding it the engine's real depth and velocity gives it ground truth instead of an estimate, and the gain is image stability: less jitter and sizzle on faces and fine geometry while the camera moves. Finding those buffers is most of what 0.2.x is - this engine writes velocity with a compute shader rather than to a render target, and rotates a pool of depth targets rather than keeping one. Both are identified per frame, copied across the link and bound, with a validity flag so a frame that cannot supply them falls back to the derived motion rather than being bound against the wrong buffer.

  • Both cards can have their own DLSS Super Resolution pass. The second card can do its neural work at a lower resolution and let DLSS enlarge the result - a way for a weaker second card to keep up with a stronger render card. Independent of the game's own DLSS, which can be set to anything or turned off.

  • General optimization, and lower latency at higher resolutions. The two cards balance load between them in either direction, so a speed mismatch no longer builds into a backlog. That is what paid for depth and motion vectors: what they cost to move still fits inside the one frame window 0.1.0 ran on. The latency improvement requires Reflex.

Across the five titles listed below, engine depth was valid on every frame and no frame was ever bound against a buffer that did not match what it was sealed as.

New in 0.2.1

The standard effects pack is no longer required. Reported by a user after 0.2.0 shipped: skipping that pack in the ReShade installer made the add-on fail silently. The report was correct. mgpu_depth_tap.fx included ReShade.fxh, which ships with the pack, so without it the shader did not compile, ReShade.log said TAP = ABSENT, and the bridge never armed. The shader is self-contained now.

Super Resolution has two named modes, and the panel no longer hides itself. Native Upscaling upscales from the game's own render resolution, so the game's motion vectors are used exactly as reported with nothing rescaled - the default, and the higher quality of the two. Experimental Upscaler works from a downscaled resolution chosen in the panel instead: more performance, possible cost in quality, untested beyond one rig. The preset and mode buttons now stay visible when Super Resolution is off rather than disappearing.

Upgrading

From 0.2.0: replace the files and restart. Nothing moved.

From 0.1.0: move nvngx_dlssnr.dll into a folder called mgpu beside the add-on, and delete the copy next to the game executable. Some titles load anything named nvngx_*.dll sitting next to their own executable, and then the neural stage binds to the wrong GPU. The panel says INSTALL PROBLEM if it finds one there.

Also new since 0.1.0: mgpu_depth_tap.fx goes in ReShade's Shaders folder. It is in this download, it needs no effect packages, and the add-on enables the technique itself. Without it ReShade never binds depth and the bridge never arms.

What's in the zip

file what it is
nvngx.dll_mgpu_bridge.addon64 the add-on
mgpu.ini its settings, read from beside the add-on
gpu1.ini empty ReShade preset for the bridge runtime
ReShade2.ini config for the bridge's own ReShade runtime
reshade-shaders\Shaders\mgpu_depth_tap.fx keeps ReShade's depth bound. Required
README.txt install steps and every known limitation
LICENSE MIT

Where it goes

Unpack into the folder containing the game's .exe; the zip keeps its own structure. In Steam: right-click the game, Manage, Browse local files, then keep going down until you see the .exe - on Unreal titles usually ...\<Game>\Binaries\Win64\.

<the folder with the game .exe>\
    Game.exe                          the game (already there)
    dxgi.dll                          ReShade, ADD-ON-ENABLED build. Yours.
    ReShade.ini                       yours, ReShade makes it on first run
    ReShadePreset.ini                 yours, ReShade makes it on first run

    nvngx.dll_mgpu_bridge.addon64     <- from this download
    mgpu.ini                          <- from this download
    gpu1.ini                          <- from this download
    ReShade2.ini                      <- from this download

    mgpu\
        nvngx_dlssnr.dll              <- NOT from this download. Yours.
                                         NOT beside the .exe.

    reshade-shaders\Shaders\
        mgpu_depth_tap.fx             <- from this download

The mgpu folder is the one step you do by hand. Nothing in this download creates it and the name has to be exactly mgpu.

Do not rename the add-on. The filename must contain the literal substring nvngx.dll - the DLSS-NR snippet checks the file path of whichever module called it. Rename it and the add-on loads, logs normally, and produces nothing.

Nothing from NVIDIA is included in this download, and none of it may be. _nvngx.dll is the driver core and is already resident on a current driver. nvngx_dlssnr.dll is the DLSS-NR snippet, loaded from the mgpu subfolder - on the development machines it was already in the game folder. This project does not ship it, cannot ship it, and does not document how to obtain it. Do not redistribute NVIDIA binaries.

What you need

  • Two RTX 50-series GPUs, with a monitor on each, extended. The neural output is displayed by the card that produced it. Headless works and is meaningfully slower. A single display is not supported: the bridge presents through its own swapchain in its own window. 40-series has been reported working by a contributor on an RTX 4080 SUPER with an RTX 5060 Ti.
  • ReShade 6.8.0 or newer, installed with add-on support. The effects-only build never loads .addon64 files and says nothing about it. No effect packages are needed.
  • A DirectX 12 game. D3D11 and Vulkan do nothing; the add-on stands down and says so in the panel.
  • No other add-on.

Before you run it

The bridge can take a while to arm, and that is normal. It waits for a depth buffer and a velocity buffer, and neither exists in a menu. Across the five titles below the wait ran from under two seconds to about forty-five. If it never clears, [R63] and [R78] in ReShade.log say which is missing, and TAP = ABSENT means the shader is not installed.

Do not change resolution, DLSS mode or graphics presets while armed - the stream is armed once against the swapchain as it stands, and rebuilding it can freeze the session. Frame generation is untested. Washed or flat colour? Take tone down in the panel. AutoArm=1 ships; set it to 0 to arm by hand with CTRL+ALT+F10, and before measuring anything.

Titles this build was run on

Each completed a bounded run, arming and exiting cleanly, with engine depth valid on every frame and zero contract mismatches. Logs in docs/0.2.0.

Title Resolution
Resonance - A Plague Tale Legacy 2560x1440
CONTROL Ultimate Edition (DX12 executable) 2560x1440
DragonSword Awakening 2560x1411
Cyberpunk 2077 3840x2160
The Blood of Dawnwalker 2560x1440

A launch and transport check, not a benchmark. The performance figures in the README were measured on 0.1.0 and have not been re-measured.

Status

Research code, not a product. It creates a second D3D12 device and allocates cross-adapter shared heaps on your hardware - the source is all here and reading it first is a reasonable thing to do.

Windows SmartScreen and some antivirus will flag an unsigned DLL, particularly one named after nvngx.dll. It is unsigned because signing certificates cost money, not because there is anything to hide; build it yourself from source if that matters to you.

Provenance

Built by GitHub Actions, not on a desktop. Everything in this zip came out of a public CI run against public source:

run:     https://github.com/maohgad-web/Neural-coprocessor/actions/runs/34777598911
SHA-256: b4943d57933d30f0223c53246002166a2f840338bd4522d20205b0fef95a9120

That hash is the digest GitHub recorded for the CI artifact, and this release attaches that artifact unmodified. Verify your download with:

Get-FileHash .\mgpu_bridge.zip -Algorithm SHA256 b4943d57933d30f0223c53246002166a2f840338bd4522d20205b0fef95a9120

Don't miss a new Neural-coprocessor release

NewReleases is sending notifications on new releases.