github 3zwr1/AMD-NR---OptiScaler Alpha0.3.3.2
AMDNR-v0.3.3.2

25 days ago

GitHub release — AMDNR v0.3.3.2

Title: AMDNR v0.3.3.2 — faster lmxxf on RX 9070 (XT), lmxxf on iGPU / two-GPU PCs, Edit accumulation interleave, RE Requiem skin classifier

Tag: v0.3.3.2


DLSS 5 Neural Rendering on AMD, built into OptiScaler.

Join the Discord (support, bug reports, test builds): https://discord.gg/AMDNR
Ko-fi: https://ko-fi.com/3zinr

The danielblnc runtime is Daniel Blanco's work. The AMD neural runtime in the *Runtime.zip files
(dlssnr_amd_pass1..3.dll) is DLSS-NR on AMD by Daniel Blanco (danielblnc) -
https://github.com/danielblnc/DLSS-NR-on-AMD. Copyright (c) 2026 Daniel Blanco, all rights reserved.
AMDNR ships it unmodified, with his permission; it is not AMDNR's work. Please support his project.
Full credits for everyone else are at the end of this page.

Highlights

  • lmxxf is faster on RX 9070 / RX 9070 XT (RDNA 4): network time 17.8 -> 15.3 ms at 1080p on an RX 9070 XT
    (720p: 8.0 -> 6.9 ms), the same image bit for bit. New "c32w" one-wave kernels for the network's C32
    layers, AMDNR's own work, ship in LmxxfNrRuntime.pak.
  • lmxxf on PCs where the game's GPU is not HIP device 0: a Ryzen desktop with its integrated graphics
    on, a laptop with an AMD APU and a Radeon, or two AMD GPUs. It used to fail on its first frame
    (hipErrorInvalidHandle (400)) and stay off for the whole session; it now selects the right GPU on every call
    (not yet tested on a PC with two AMD GPUs).
  • lmxxf no longer keeps about 100 MB of VRAM (and as much RAM) on every NR resolution, DLSS mode or
    resolution change.
    A smaller rest of about 10-25 MB per change remains (not yet tested in a game).
  • Model interleave: new default preset "Edit accumulation", against the one-frame ghost and the 30 Hz
    grain, at no extra cost over Guided fill v2 (not yet tested in a game).
  • danielblnc: no more style jump at Residual strength 0.99, or when NR resolution leaves 100% (not yet
    tested in a game).
  • Resident Evil Requiem, FSR Ray Regeneration: a new skin classifier that leaves streets, walls, coats and
    umbrellas alone; RR bias mask strength 0 by default; a warning when REFramework is missing.
  • Ray Reconstruction is offered on RX 9000 (RDNA 4) only by default, so RX 7000 keeps the game's own
    denoiser (not yet tested in a game on RX 7000).

Which files to replace

All three changed. Coming from 0.3.3.x, replace:

  1. OptiScaler.dll (rename it as before, e.g. dxgi.dll or winmm.dll)
  2. LmxxfNrRuntime.dll
  3. LmxxfNrRuntime.pak (the new pak carries the c32w kernels)

Your danielblnc files stay. Keep a backup of the old three. Your own OptiScaler.ini works; the new keys use
their defaults. LmxxfNrRuntime.dll 0.3.3.2 also works with the old pak, just without the speed-up
(c32w=off:nofile).

New install: extract AMDNR-v0.3.3.2.zip into the game folder, rename OptiScaler.dll to dxgi.dll (or
winmm.dll / version.dll / OptiScaler.asi with an ASI loader), then INSERT for the menu. For danielblnc,
also extract one runtime zip from the table below into the game folder.

Downloads

File What Who
AMDNR-v0.3.3.2.zip AMDNR: OptiScaler with AMD Neural Rendering and the complete lmxxf runtime (LmxxfNrRuntime.dll + LmxxfNrRuntime.pak) everyone
v0.4.0-Runtime.zip danielblnc's runtime 0.4.0 (by Daniel Blanco, unmodified, with his permission) + weights. Newest public build danielblnc users who want the newest runtime
v0.3.3-Runtime.zip danielblnc's runtime 0.3.3 (by Daniel Blanco, unmodified, with his permission) + weights. Not yet tested in a game danielblnc users who prefer 0.3.3
Runtime.zip danielblnc's runtime 0.3.1 (by Daniel Blanco, unmodified, with his permission) + weights danielblnc users, tested

Use all three pass DLLs from one zip.

What changed

lmxxf

  • c32w kernels (RX 9070 / RX 9070 XT): 17.8 -> 15.3 ms network time at 1080p, 8.0 -> 6.9 ms at 720p, on an
    RX 9070 XT, the same image bit for bit. LmxxfNrRuntime.dll checks the kernels' SHA-256 before it loads them
    and runs the old kernels if they do not match. lmxxf's status line and lmxxf_backend.log show c32w=on when
    they run (c32w=off:<reason> otherwise). RX 9060 XT keeps the old kernels for now: the environment variable
    AMDNR_C32W=1 turns them on there (untested); AMDNR_C32W=0 turns them off everywhere. RX 7000 is not
    affected.
  • PCs with more than one AMD GPU: LmxxfNrRuntime.dll now selects the network's GPU on every call and gives
    the thread its old GPU back afterwards (reported on an RX 7900 XTX). On our single-GPU PC the output is
    identical to 0.3.3.1's, also when frames are sent from a second thread. Not yet tested on a PC with two AMD
    GPUs.
  • VRAM leak: an AMD HIP driver never gives back a D3D12 buffer that was imported and mapped, so lmxxf now
    makes these buffers once per network size and reuses them (lmxxf_backend.log: hip buffers ... imports N, reuses M). Leak probe, 40 changes: about +0.4 GB instead of +1.8 GB; not yet tested in a game.
  • lmxxf no longer stays off for a whole session when the game never submits the list of the first neural frame
    (it re-arms after 8 frames and matches by COM identity after 16). Found by reading the code; not seen in a
    game.
  • lmxxf stops at once when the GPU is removed (driver reset or crash), as danielblnc already did.
  • The Neural tab says "lmxxf stopped after an error: ..."; amd_bridge.log lists every HIP device and marks the
    game's GPU; lmxxf's status line names the HIP device it uses.
  • LmxxfNrRuntime.dll is 0.3.3.2 r2 (Properties > Details); the runtime combo reads "lmxxf (0.3.3.2)".

danielblnc

  • Residual strength and the style jump: at 100% NR resolution, 0.99 now gives 99% of 1.00 and the NR styles
    look the way their strength says (no hidden Residual limit over the whole look). Below and above 100% (also
    Dynamic NR steps and the Balanced / Performance presets), Residual strength and limit act only on the model's
    own edit, before the look, temporal stability and sharpening, so changing NR resolution no longer clips the
    look. Default at 100% is unchanged, bit for bit. [DlssNr] AmdEditShaper=false switches this off away from
    100%. Not yet tested in a game.
  • Less VRAM for new NR sizes: away from 100% NR resolution, working sizes above about 1 MP are rounded to
    64-pixel steps, so dynamic resolution, DLSS modes and Dynamic NR reuse a few sizes instead of keeping
    75-350 MB of VRAM per pass for each new one ([DlssNr] AmdNrSizeStep, 0 = exact sizes as before). 100% is
    unchanged.
  • Clearer message when your danielblnc files are not a build this AMDNR drives: the Neural tab and
    amd_presr.log name the file and its version, say whether it is newer, older, a re-published copy or missing,
    and what to do.
  • Warning when danielblnc's standalone DLSS-NR on AMD is installed next to AMDNR (his version.dll,
    winhttp.dll or dxgi.dll, or dlssnr_on_amd_setup.exe). AMDNR already runs his runtime; remove the
    standalone copy.
  • Cost hints in the menu: danielblnc on RX 7000, and danielblnc with an NR input of 1440p or more.

Both runtimes

  • Model interleave: "Edit accumulation" is the new default ([DlssNr] AmdInterleavePreset=10; lmxxf runs it
    as 11). No picture is carried over any more: every frame is this frame's raw picture plus the model's carried
    correction, checked raw against raw on every frame. This removes the held picture's one-frame ghost and its
    30 Hz grain and costs no more than Guided fill v2. On danielblnc the model frames show the fitted correction
    too; for the model's exact picture pick "Guided fill v2" (Neural > Performance > Interleave preset, or
    AmdInterleavePreset=6); on lmxxf "Classic carry" is the old fill. Also fixed for every preset: the
    "Model-frame ghost" meter and the Self-tuning totals now show values, a refused model call is no longer
    counted as a model frame, and a wrong barrier state in interleave's motion accumulation is fixed. Not yet
    tested in a game.
  • Dynamic NR resolution no longer bounces between two steps: it steps down after 1.5 s over the target, back
    up only after 5 s of headroom, and waits a minute after a step up that could not hold. Its frame timer is
    precise now, so at high targets you may see a higher NR resolution and a lower frame rate than before. Not yet
    tested in a game.
  • Still-surface steadiness (Neural > Quality, [DlssNr] AmdStabilityStaticRelax): steadies shadows and flat
    areas that pulse while nothing moves. Off by default; try 0.5 if shadows flicker on still walls.

Resident Evil Requiem / FSR Ray Regeneration

  • Robust skin classifier (new default): the old SSS guide marked 25-39% of a night street as skin (walls,
    coats, umbrellas). The Robust classifier also checks how much the game's SSS pass moved the pixel, whether the
    surface around it agrees, and whether the albedo is skin-toned: 0.5-2.3% of the frame in the same scenes, with
    faces and hands still covered. Neural > Quality > Ray Regeneration > Skin classifier; "Guide only (0.3.3)" is
    the old mask.
  • Skin smoothing is on by default in Resident Evil Requiem (strength 1.0, radius 16, guide thresholds
    0.0265 / 0.0414) against face flicker. A value you set yourself wins. Other games keep it off.
  • RR bias mask strength 0 by default there (a tester saw less blotching and grain at 0). A value you set in
    [FSR-RR] FfxDenoiserBiasMaskStrength wins.
  • Texture route for the path-traced profile ([FSR-RR] FfxDenoiserProfileTextureRoute, default 1.0): with
    the profile on, textured and very dark surfaces go back to the normal routing, against the etched look the
    profile gave textures in 0.3.3. The profile itself stays opt-in.
  • REFramework warning: when re9.exe, re9demo.exe or pragmata.exe runs without REFramework's dinput8.dll,
    OptiScaler.log gets a warning, a notice shows for 20 s and the menu shows an orange line with the download
    link.
  • Ray Reconstruction on RX 7000 (RDNA 3) and older is no longer offered by default. AMD ships Ray
    Regeneration for RDNA 4 only; the driver refused it on an RX 7800 XT, and the game, having switched its own
    denoiser off, showed an undenoised picture. [FSR-RR] FfxDenoiserAllowPreRdna4=true offers it anyway; if the
    driver refuses it, AMDNR falls back to FSR 4 INT8 / FSR 3.1, warns once and stops retrying for the session.
    Not yet tested in a game on RX 7000.
  • A Ray Reconstruction fallback is no longer saved as your upscaler. If your OptiScaler.ini says
    Dx12Upscaler=fsr21 and you did not choose FSR 2.1.2 yourself, set it to auto under [Upscalers].
  • Save Settings now keeps a value you set even when it equals the default (skin smoothing turned off stays off).

Stability

  • A neural command list the game throws away (reset or released without running it) no longer leaves
    danielblnc waiting for the rest of the session; NR comes back after about 4 s, and lmxxf drops the job as a
    lost frame ([DlssNr] AmdNeuralListRecovery=false turns this off).
  • Upscaler barriers: XeSS, FSR 2.2 and FSR 2.1.2 no longer change the resource state of AMDNR's NR output
    (in Unreal Engine titles a wrong transition in and out), as the FSR 4 / FSR 3.1 path already did
    ([DlssNr] AmdNrColourGuard=false restores the old behaviour). Smaller resource-state fixes in FSR 4's
    auto-exposure workaround, FSR Ray Regeneration and the Vulkan bridge in Unreal Engine titles.
  • Quitting the game while NR runs: NR stops the moment the game starts to exit, and AMDNR waits at most about
    2 s for its runtime (lmxxf could wait up to 30 s before). A clean quit during lmxxf's warm-up over the Vulkan
    bridge no longer turns lmxxf off at the next start.
  • Frames from another D3D12 device (a second GPU, or a game that re-creates its device) go to the upscaler
    untouched ([DlssNr] AmdDeviceGate=false turns the check off).
  • Two neural streams in one frame (split screen, a scope view, a second upscaler context): NR runs on the
    largest one and the others pass through untouched ([DlssNr] AmdOneStreamPerFrame=false turns this off).
  • NR after Ray Regeneration no longer runs again on a frame the upscaler skipped
    ([DlssNr] AmdSkipUnwrittenFrames=false restores the old behaviour).
  • Linux / Proton (DXVK): Vulkan instances and devices OptiScaler creates for itself are no longer taken for
    the game's ([Hooks] SkipOwnVulkanObjects=false restores the upstream behaviour).
  • FPS limit with frame generation above 2X: OptiScaler's own limiter assumed 2X, so XeFG 4X with a 120 FPS
    limit ran at 240. The limit is now the displayed frame rate at every multiplier.
  • Neverness to Everness: the game's crash reporter no longer loads OptiScaler and wipes the game's log.
    OptiScaler.log is no longer emptied while another process still writes to it.

Menu, messages and logs

  • Menu Scale scales the whole window, its sliders and combos, not only the text; long notes wrap; the
    FrameTime graph ends with "fps" again; a window you dragged is pulled back on screen when it grows.
  • Update check points at AMDNR's own GitHub releases and compares against the AMDNR version
    ([Hotfix] CheckForUpdate=false turns it off).
  • DLSS Enabler options say where the DLL comes from. AMDNR does not ship dlss-enabler-headless.dll; the
    Frame Gen options that need it show how to get it (DLSS Enabler 4.9.0 or newer by Artur Graniszewski, its
    version.dll renamed), with a link.
  • The Streamline (slInit) message goes away once NR receives frames; the HOME notice says when the neural runtime
    is stopped; Ray Regeneration's log no longer says "GPU is RDNA 4" on RX 7000.
  • Logs for bug reports: NR on/off is logged, amd_bridge.log and amd_presr.log start with a session header,
    and on PCs with two GPUs the GPU line names the adapter NR runs on.
  • OptiScaler.dll reports AMD-NR v0.3.3.2.

Everything else: CHANGELOG.md in the zip.

Resident Evil Requiem needs REFramework

A known requirement, not an AMDNR bug. OptiScaler relies on REFramework to get past Capcom's anti-tamper
(OptiScaler wiki). Without it, Resident
Evil Requiem (and its demo) crashes 15-60 s after launch ("An unhandled exception occurred"). Put dinput8.dll
from REFramework.zip in the latest nightly (https://github.com/praydog/REFramework-nightly/releases) next to
dxgi.dll, and change REFramework's menu key (e.g. to Delete): it is also Insert. After a game update, expect
crashes until REFramework is updated. PRAGMATA, Monster Hunter Wilds and Onimusha probably need it too (not
confirmed). Since this release AMDNR warns when it is missing.

Known limits

  • The c32w speed-up runs on RX 9070 / RX 9070 XT only. RX 9060 XT keeps the old kernels unless you set
    AMDNR_C32W=1 (untested); RX 7000 is not affected. The times above are the network's time on an RX 9070 XT,
    measured outside a game, not a game's frame rate.
  • lmxxf: a smaller rest of about 10-25 MB of VRAM per NR size change remains (its cause is not known yet); after
    very many changes a restart still helps.
  • Ray Reconstruction on RX 7000 with FfxDenoiserAllowPreRdna4=true: if the driver refuses it, the ray-traced
    lighting is not denoised.
  • The RR bias mask default is not yet confirmed from a log to matter: if Resident Evil Requiem does not publish
    the mask, it changes nothing. The texture route is not yet confirmed in the game.
  • Dynamic NR at high targets may pick a higher NR resolution and a lower frame rate than before.
  • danielblnc is slow on RX 7000 (about 27 ms per frame even at 320x180 with 0.4.0 on an RX 7900 XTX) and with an
    NR input of 1440p or more (about 45 ms per frame with 0.3.1 on an RX 9070 XT): lower the game's render
    resolution, or set NR resolution to 67-85%.

Not yet tested in a game (built and checked on the desk only): Edit accumulation, the danielblnc style-jump
fix, Dynamic NR's new stepping, the lmxxf VRAM fix (verified with the leak probe), lmxxf on a PC with two AMD
GPUs, lmxxf's re-arm when the first neural list never arrives (found by reading the code), recovery from a
dropped neural list, the upscaler barrier fix, the device gate on PCs with two GPUs, one stream per frame, the
Proton / DXVK Vulkan change (not yet tested on Proton), the bounded exit, the still-surface slider, and the Ray
Reconstruction change on RX 7000 (also with FfxDenoiserAllowPreRdna4=true). Where a fix has an ini switch to
turn it off, it is named above. Reports with logs help: https://discord.gg/AMDNR (#bug-report).

Copyright

AMDNR is Copyright (c) 2026 3zwr1 (AMDNR), a GPL-3.0 fork of OptiScaler. Any copy, fork or derivative that uses
AMDNR's work must keep its notices and credit AMDNR by 3zwr1 (GPL-3.0 section 7(b); see
Licenses/AMDNR_NOTICE.txt in the zip). The upstream work below stays with its authors, under their own
licences. The source code will be published here with AMDNR 0.5.0.

The AMDNR menu - its layout, design, texts and the code AMDNR added for it - is Copyright (c) 2026 3zwr1 (AMDNR). It is part of this GPL-3.0 fork, with these additional terms (GPL-3.0 section 7): (b) anyone who reuses any part of it must keep this copyright line and credit AMDNR by 3zwr1 visibly, in the menu and the README; (c) you may not present it, or a modified copy, as your own work; modified versions must be clearly marked as changed; (e) no rights are granted to the AMDNR name or logo; other projects may not use them.

Credits

Not shipped by AMDNR, but needed for some features: REFramework by praydog (Resident Evil Requiem) and
DLSS Enabler by Artur Graniszewski (the Enabler frame-generation options).

None of this is endorsed by, affiliated with, or supported by NVIDIA, AMD, or any game publisher. NVIDIA's
nvngx_dlssnr.dll is not in these archives. Use it at your own risk.

Don't miss a new AMD-NR---OptiScaler release

NewReleases is sending notifications on new releases.