github mavismmg/MFGAdaUnlock-RenoDx 1.9.0
MFG Unlock 1.9.0 - NVIDIA's Frame Generation on RTX 20/30

one hour ago

This release runs DLSS Frame Generation on RTX 20 and 30 GPUs, with NVIDIA's own generator as well as with XMX. It fixes Dynamic MFG on RTX 50, which never saw the frame generation file's version (confirmed on an RTX 5090 D). The panel shows where each part of frame generation came from, warns about duplicate addon files, and the support report now includes the NVIDIA driver profile's frame generation settings.

RTX 20 and 30: NVIDIA's generator and XMX

Since 1.8.3 the addon admitted RTX 20/30 GPUs to NVIDIA's DLSS-G runtime for XMX, but NVIDIA's runtime then failed to create frame generation on an RTX 3060 Ti (0xbad00002, a platform error). Its frame generation file carries GPU code for RTX 40 and 50 only. The addon now prepares that code for the GPU before the runtime loads it: it rewrites it for RTX 30 (sm_86) or RTX 20 (sm_75) and hides the RTX 40 copy, so the driver builds kernels the card can run. This preparation comes from nefh's MFGAmpereUnlock-RenoDx (MIT, a fork of this project).

With the code prepared, NVIDIA's own generator runs too, so the admission no longer requires XMX:

  • With DLSS-G selected, NVIDIA's generator produces the frames on RTX 20/30.
  • With XMX selected, Intel's model produces them, as before. A tester confirmed XMX on an RTX 3060 Ti.

The game's menu offers DLSS Frame Generation and 3x–6x, as on RTX 40. The addon's quality patches for RTX 40 are not applied on these GPUs. Without the midpoint fix they include, 3x and above put every generated frame halfway between the real frames, so 4x looked worse than 2x in a test. nefh's temporal correction now takes its place: it edits the generation kernel already rewritten for the GPU, so each generated frame lands at its own time. [DLSSG] PreAdaAdmission=0 in MFGAdaUnlock.ini turns the whole RTX 20/30 path off.

These GPUs need the addon loaded before the game starts Streamline. On an RTX 20/30 without that setting, the addon now adds itself to [ADDON] LoadFromDllMain in ReShade.ini at start, if that file can be written, and the log and the panel say that one restart applies it. [DLSSG] AutoEarlyLoad=0 in MFGAdaUnlock.ini turns this off.

On RTX 20 the preparation takes about 3 seconds per frame generation file at every game start. The panel and the log say so; nothing is cached between starts.

Nothing changes on RTX 40 or 50: all of this runs only when every NVIDIA GPU in the PC is an RTX 20 or 30.

RTX 50: Dynamic MFG version

On RTX 50 the addon leaves the frame generation file untouched, so it never recorded the file's version, and Dynamic MFG stayed at "NVIDIA's frame generation file has not loaded yet". The version is now read from every loaded file on RTX 50. A tester confirmed on an RTX 5090 D that Dynamic MFG can now be turned on from the panel. The log also says whether the game's slInit call reached the addon.

Panel

  • Frame generation chain (General page, a section that opens on click): where the Streamline DLSS-G plugin the game uses came from (the game, the NVIDIA app's DLSS Override or its automatic update), the frame generation file and its source (the game, the NVIDIA app or the driver), whether the multi-frame gate is open, whether the addon saw the game start Streamline, Dynamic MFG support and the generator in use. Each line is coloured: the panel's usual colour when that part works, yellow when it limits something, red when it fails, grey while unknown.

  • More than one MFG Unlock file: a warning when another *mfgunlock*.addon64 sits beside this one, or when LoadFromDllMain names a file other than this one. Nothing is deleted.

  • Support page: "Save support files" and "Copy report" are always available there.

  • When the multi-frame gate is refused, the log names the file, its version and the step that refused it.

Support report: the driver profile

Saving or copying the report now adds the NVIDIA app's frame generation and Streamline override settings and the Dynamic MFG settings, for this game's driver profile and the global profile, with where each value comes from. They are read only when the button is pressed, and nothing is written to the driver profile.

Documentation and tools

  • The README explains how to write MFGAdaUnlock.profiles.json (XeMFG game profiles), with an example.
  • tools/Prepare-Release.ps1 checks and prepares a release and prints the publishing commands without running them.
  • The automated suite now includes nefh's unit tests for the code preparation.

Known limitations

  • NVIDIA's generator on RTX 20/30 has not been confirmed on a real card yet; XMX has, on an RTX 3060 Ti. Both ran in a simulated RTX 30 test on an RTX 4070 SUPER (Cyberpunk 2077, Onimusha: Way of the Sword), with the code rewritten for RTX 30.
  • RTX 20 has not been tested at all.
  • Older frame generation files stay at 2x. An RTX 3080 tester's Onimusha shipped nvngx_dlssg.dll 310.5.2, which the addon has no gate profile for, on any GPU. On RTX 20/30 the NVIDIA app offers no frame generation override, so replace the game's file with a current 310.9.x (see Requirements in the README). The temporal correction and NVIDIA's runtime did work on that card.

Validation

The automated suite ran 215 tests: 212 passed and 3 optional tests were skipped, as in earlier releases. New in it: nefh's unit tests for the code preparation; the preparation and the temporal correction on the 10 frame generation files of the development PC, for RTX 30 and RTX 20 (8 corrected; the driver's 310.2.1 and an older game file have no multi-frame kernel), checking that the corrected code is the one for the GPU; the multi-frame gate planned before and after the preparation on the same files; the chain card's file classification; and the read-only driver profile report.

Tested by players and testers:

  • RTX 3060 Ti: XMX on RTX 30 (an earlier 1.9.0 test build).
  • RTX 3080: Onimusha: Way of the Sword with XMX, after replacing the game's 310.5.2 frame generation file with 310.9.x (see Known limitations); the temporal correction applied on that card.
  • RTX 5090 D: Dynamic MFG can be turned on from the panel again.
  • RTX 4070 SUPER, simulated RTX 30 (SimulatePreAda): Cyberpunk 2077 with NVIDIA's generator at 2x–4x, smooth at 4x after the temporal correction; Onimusha with NVIDIA's generator and with XMX.

Installation and rollback

Close the game, replace the previous addon with renodx-mfgunlock.addon64, keep only one MFG Unlock addon installed, and restart. On RTX 20/30, start the game twice the first time (the addon adds itself to early loading on the first start).

For rollback, close the process, restore your previous addon or the 1.8.6 release, and restart. To undo the early loading, remove the addon's file name from [ADDON] LoadFromDllMain in ReShade.ini.

Building this version

As in 1.7.0: the addon is the mfgunlock_native_xemfg target of tests/CMakeLists.txt, published as renodx-mfgunlock.addon64; see Building the XeMFG backend.

Don't miss a new MFGAdaUnlock-RenoDx release

NewReleases is sending notifications on new releases.