v0.2.4 - MGPU Bridge, Single Display Support and Super Resolution Improvements (hotfix) #22
maohgad-web
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
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. On a frame that cannot supply them, a menu or a load screen, they are unbound rather than left pointing at the last frame's, and the derived motion takes over for as long as that lasts.
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.4
One display is supported. Set
DcompOverlay=1inmgpu.ini. The bridge stops opening a window of its own and draws the neural output onto the game's own window instead, so the game keeps the mouse and the keyboard - no third-party tool and no controller. The display goes on the neural card, and the card that renders the game has nothing plugged into it. Two monitors, one per card, is still what every published figure was measured on.Native Upscaling is improved. It now reads the render resolution the game declares to DLSS rather than inferring it, which makes it available on more titles and improves stability in motion.
SRMvLowReschanges default from0to2- take the newmgpu.ini.The panel reports your game's setting. It says DLAA or DLSS, and when Native Upscaling cannot run it names the setting to change instead of implying a fault. The bridge window also stops going red while it waits for motion vectors, which it can do for a minute or more before you reach gameplay.
New in 0.2.3
iGPU detection is improved. If you have an integrated GPU enabled alongside your two graphics cards, it no longer causes problems - and you do not have to disable it.
Depth and motion vector support for 007 First Light (issue #16). The same fix also covers Cyberpunk 2077, where depth would not bind if you had Ray Reconstruction enabled.
The bridge window reports a bad install instead of waiting.
ERROR 204when the game's ReShade runtime never compiled the depth tap - almost alwaysEffectSearchPathsin the game'sReShade.ininot pointing at the folder the file is in.ERROR 205for a missingmgpu.ini. Read-only: the add-on reads your config and never writes it.New in 0.2.2
Run Games with Anti-cheat and online games at your own risk
A startup crash on titles that ship NVIDIA Streamline is fixed. Reported on Battlefield 6(issue #14), where it happened on every launch on the reporter's machine and roughly one launch in ten here. Confirmed fixed on the machine it happened to every time.
Battlefield 6 SP Campaign now receives the game's real motion vectors. On engines where the usual route never delivers them, the bridge takes them from the DLSS pass instead, and decides that for itself.
One limitation came with it, and it is worth knowing before you rely on it: the second card can only be handed the engine's motion vectors when the game itself is running DLSS or DLAA. With TAA, or with upscaling off, the model derives motion from colour instead - which is what 0.1.0 ran on throughout. Neural rendering itself is unaffected. Measured on Battlefield 6: 96-98% of frames with DLSS or DLAA, none with TAA.
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.fxincludedReShade.fxh, which ships with the pack, so without it the shader did not compile,ReShade.logsaidTAP = 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 Upscalingupscales 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 Upscalerworks 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.3: replace the files, and take the new
mgpu.ini. 0.2.4 changesSRMvLowResfrom0to2, which affects image quality under Native Upscaling. If you keep an editedmgpu.ini, change that one key by hand. Nothing moved.From 0.2.2, 0.2.1 or 0.2.0: as above.
mgpu.inihas also gainedMvecFromEval,CalibRungandDcompOverlayalong the way, so take the new one rather than keeping yours.From 0.1.0: move
nvngx_dlssnr.dllinto a folder calledmgpubeside the add-on, and delete the copy next to the game executable. Some titles load anything namednvngx_*.dllsitting 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.fxgoes in ReShade'sShadersfolder. 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
nvngx.dll_mgpu_bridge.addon64mgpu.inigpu1.iniReShade2.inireshade-shaders\Shaders\mgpu_depth_tap.fxREADME.txtLICENSEWhere 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
mgpufolder is the one step you do by hand. Nothing in this download creates it and the name has to be exactlymgpu.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.dllis the driver core and is already resident on a current driver.nvngx_dlssnr.dllis the DLSS-NR snippet, loaded from themgpusubfolder - 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
DcompOverlay=1, put the display on the neural card, and leave nothing plugged into the card that renders the game. See the README for both. 40-series has been reported working by a contributor on an RTX 4080 SUPER with an RTX 5060 Ti..addon64files and says nothing about it. No effect packages are needed.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]inReShade.logsay which is missing. The bridge window says it too:ERROR 204means the game's ReShade runtime never compiled the depth tap, and[MGPU][R142]in the log prints yourEffectSearchPathsbeside the folder the file ships in.On some titles the engine's motion vectors need the game to be running DLSS or DLAA. With TAA, or with upscaling off, the model falls back to deriving motion from colour. Everything still runs; the vectors are what you lose.
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
tonedown in the panel.AutoArm=1ships; set it to0to arm by hand withCTRL+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.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.
Battlefield 6 was verified on 0.2.2 by the reporter of issue #14, on the machine that crashed every launch before it, at 3840x2160.
007 First Light was reported on issue #16 and runs clean on 0.2.3 at 3840x2160, path tracing with Ray Reconstruction - the game on an RTX 5090, the neural stage on an RTX 5070 Ti.
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:
That hash is the digest GitHub recorded for the CI artifact, and this release attaches that artifact unmodified. Verify your download with:
and compare the result with the digest above.
This discussion was created from the release v0.2.4 - MGPU Bridge, Single Display Support and Super Resolution Improvements (hotfix).
All reactions