github mavismmg/MFGAdaUnlock-RenoDx 1.8.0
MFG Unlock 1.8.0 — XMX Mode

3 hours ago

This release adds XMX, a new experimental mode that runs Intel's multi-frame model inside DLSS-G's own presentation. It also adds a selector for the three modes, a panel status that names what is generating, and a panel control for every INI setting.

Our recommendation: always prefer XMX in games with native DLSS frame generation. It is more stable and more compatible than the XeMFG backend, because the game keeps DLSS-G's presentation and there is no proxy swap chain. Keep the XeMFG backend for games with no native frame generation.

Use XMX

Select XeMFG via DLSS-G (XMX) under General → Frame generation method and restart the game. If Intel's files are missing or a different version, the panel offers Install / update files. The steps and full measurements are in the XMX section of the README.

What works, tested in Crimson Desert and Cyberpunk 2077 on an RTX 4070 SUPER:

  • The game's own multiplier menu, during play. Cyberpunk 2077 went through 2x, 4x and 6x. If the selector does nothing, is missing or gets stuck in your game, please open an issue.
  • Frame Multiplier in the panel, above what the menu offers, up to 6x.
  • Output FPS Cap (Reflex).
  • Alt+Tab, and changing resolution during play.
  • 1440p, and 4K with DLDSR.
  • Install / update files from the XMX notice. It replaced a wrong libxess_fg.dll in Cyberpunk 2077.

XMX is still experimental, so please report the games you try, whether they work or not.

Crimson Desert at 1440p, RTX 4070 SUPER, one capture of about 30 seconds per mode:

Mode Displayed FPS Base FPS Average latency
Generation off 44 44 45 ms
DLSS-G 4x 136 34 43 ms
XeMFG 4x 141 35 64 ms
XMX 4x 139 35 42 ms
XeMFG 6x 175 29 75 ms
XMX 6x 189 32 42 ms

At 6x the image looked similar to XeMFG with CUDA, and the input felt much better. This is one game and one capture per mode, and PresentMon may not measure latency the same way on routes with different presentation. XeMFG was slightly ahead in FPS and pacing at 2x and 4x, and XMX had more large frame intervals at 6x.

New

  • New, experimental: XMX mode. Intel's multi-frame model replaces NVIDIA's generator, and DLSS-G keeps presenting, so the game keeps its own menu, Reflex and display handling. It generates 2x to 6x. It needs a Direct3D 12 game with DLSS frame generation, and libxess_fg.dll 1.3.1.78 with libxell.dll.
  • Mode selector. Frame generation method now offers NVIDIA DLSS-G, Intel XeMFG (CUDA) and XeMFG via DLSS-G (XMX). The default stays DLSS-G, and existing choices are kept.
  • The panel says what is generating. The Backend card shows DLSS-G, XMX, XeMFG (CUDA), XeMFG (shaders) or XeFG 2x (stock). With XMX, Generating frames appears only when XMX actually generated in the last 2 seconds.
  • Every setting has a control. All settings (advanced), under Diagnostics, covers what could only be changed in MFGAdaUnlock.ini, with experimental options marked as such. A new automated test fails if a setting is added without a control. [DLSSG] ForceBorderless is back in the panel here.
  • Compare Intel's own 2x model. XeFGStock2xModel runs Intel's model 18 in place of the ported model at 2x. In Crimson Desert it looked better on the HUD and slightly better on artifacts. Above 2x it cannot run, because that model only generates the middle frame.

With XMX selected

  • Failure handling. If Intel's files are missing or a different version, XMX does not start, NVIDIA's generator keeps running, and the panel says why and offers Install / update files. If XMX fails during play, the real frame is shown again, no frames are generated until the game restarts, and the panel says why.
  • NVIDIA Dynamic MFG is locked, because it was not validated on this route. A saved Dynamic MFG setting applies again when you select DLSS-G. If a game asks for Dynamic MFG, a fixed multiplier is used and the panel says so.
  • Settings for NVIDIA's generator are locked, such as Adaptive Quality, the temporal fix and the Blackwell kernels. DLSS presets, Reflex and pacing remain.

DLSS-G backend

  • Fixed: flickering in Advanced pacing. The status table under Advanced pacing (testing) no longer moves the controls while it updates.

Compatibility

Existing configuration is kept and no default changed. The compatibility table now has separate XeMFG CUDA and XMX columns: XMX is Working in Crimson Desert and Cyberpunk 2077, and Maybe means that game has not been tested with XMX yet.

Known limitations

  • XMX was tested in Crimson Desert, Cyberpunk 2077 and the Streamline Sample, on an RTX 4070 SUPER. Other games and cards are unknown, and only Crimson Desert was measured.
  • XMX does not run in Vulkan games, where NVIDIA's generator keeps running, or in games that use XeMFG through FSR or the DLSS-SR input.
  • A similar motion blur was noticed with XMX, DLSS-G and XeMFG in Crimson Desert. The cause is unknown.
  • Dying Light 2 with XeMFG still closes on startup, and the cause is not known yet.

Validation

The automated suite ran 205 tests with no failures, plus the replay corpus. Three optional tests were skipped, as in earlier releases.

In the Streamline Sample 2.14.16 and 2.9.0, XMX ran at the expected cadence: Engine 112, 56 and 37 FPS against 225 FPS output at 2x, 4x and 6x, under the sample's 225 FPS limit. 3x ran without errors in the log. In 2.14.16, the sample's own menu changed 2x to 4x during play (Engine 61, True 246), and its Dynamic option became a fixed 2x (Engine 120, True 240). A missing libxess_fg.dll left NVIDIA's generator running normally, and a truncated one, which passes the check before the hook but cannot load, showed the real frame instead of a black image.

In Crimson Desert on NVIDIA driver 621.01 (RTX 4070 SUPER), 13 captures covered generation off, XeMFG, DLSS-G and XMX at 1440p and at 4K with DLDSR. Cyberpunk 2077 was tested by playing it, without captures: selecting XMX in the panel, installing Intel's file from the XMX notice, changing the multiplier from the game's menu and the panel, and the Reflex FPS cap.

Credits

The idea of calling XeFG directly comes from realdody/dlssg-to-xefg-xmx. It is GPLv3 and was read as a reference only: no code is included, and this implementation was written and verified independently. The multi-frame model is the port from dashdogy's MFG-Unlocker (MIT).

Installation and rollback

Close the game, replace the previous addon with renodx-mfgunlock.addon64, keep only one MFG Unlock addon installed, and restart.

For rollback, close the process, restore your previous addon or the 1.7.2 release, and restart.

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.