Tested hardware and games
What has actually been run, by whom, and what happened. Numbers are frames per second on screen
(MangoHud) unless stated. Add yours: an issue
with GPU, driver, game, runtime and the result is enough, a log with AFMF_LOG=2 AFMF_PROFILE=1
is better.
By the maintainer
Fedora 44, KDE Plasma 6.7 Wayland, Mesa 26.1.8 RADV, 3440×1440 at 165 Hz.
| GPU | Game | API, runtime | Result |
|---|---|---|---|
| RX 9070 XT (RDNA4) | Monster Hunter Wilds, max + RT, Native AA | DX12, vkd3d-proton, Proton-CachyOS Wineland | 120 → 265 |
| RX 9070 XT | Cyberpunk 2077, RT Ultra, FSR 4 Quality | DX12, vkd3d-proton, Proton-GE | 116 → 243 |
| RX 9070 XT | DOOM: The Dark Ages, Ultra Nightmare | Vulkan (id Tech 8), Proton-GE | 268 (FSR Quality), 255 (Native AA + VRS); keep AFMF_EXTRA_IMAGES ≤ 5 and no rtcps |
| RX 9070 XT | Overwatch 2, Epic | DX11, DXVK, Proton-GE | 223 → 449 |
| RX 9070 XT | Borderlands 4, Badass | DX12, vkd3d-proton (UE5), Proton-GE | 125 |
| RX 7800 XT (RDNA3) | Cyberpunk 2077, same settings | DX12, vkd3d-proton | 60-110 → 120-220; 1.2 ms of GPU per frame, three times the 9070 XT |
| RX 9070 XT | Cyberpunk 2077 under Gamescope 3.16 (nested, AFMF_GAMESCOPE=1) |
DX12, vkd3d-proton, Xwayland bypass | 35,283 of 35,285 presents got a companion at 1920×1080; 200-215 real fps in game |
Reported by users
| GPU | Game | API, runtime | Result | Source |
|---|---|---|---|---|
| NVIDIA GeForce GTX 1050 Ti (Pascal) | The Witcher 3 | DX11, DXVK | Works, “a smoother feeling gameplay”; smearing and artifacts on text and UI (the colour-only limit, see below) | r/linux_gaming, 2026-09-15 |
Not tested yet
RDNA2 (including the Steam Deck), Intel Arc, NVK, GNOME and Sway compositors. Nothing in the layer is vendor-specific except the tuning; a report from any of these is welcome.
What the artifacts are
The layer works from the colour buffer alone: no depth, no motion vectors, no HUD mask from the
game. Every pixel of a generated frame is the average of the two real frames warped halfway
along the block’s motion. Where the two warped samples disagree (a wrong vector, the silhouette
of an object the camera follows against a fast background, a background uncovered from behind a
passing object, which only one frame holds) the pixel leans on the current frame’s own unmoved
value instead of drawing both, so a double edge is the exception rather than the rule. A pixel
that is identical in both frames while its block moves is a static overlay (HUD, crosshair,
subtitles) and is kept as it is (AFMF_HUD_DETECT). Motion beyond 128 pixels between frames, and
the frames after a scene cut, are not interpolated: the pixel falls back to a blend of the two
frames (AFMF_FAST_MOTION_RESPONSE=blend, the default) or to the previous frame (repeat). What
is behind an object as it passes is in neither frame and cannot be invented. AMD’s AFMF on
Windows has the same limits. The gain is larger the further the game is from the display’s
refresh rate.