Skip to content

Releases: MatheusFerreiraS/OpenNR-OptiScaler

OpenNR OptiScaler 0.5.7-opennr

Choose a tag to compare

@MatheusFerreiraS MatheusFerreiraS released this 24 Oct 00:03

OpenNR OptiScaler 0.5.7-opennr: danielblnc 0.8.0 (NeuralHub), lmxxf 0.45, games whose FSR and XeSS load before OptiScaler

danielblnc 0.8.0 (NeuralHub)

  • danielblnc's NeuralHub 0.8.0 runtime runs as OptiScaler's NGX host: with NVIDIA's nvngx_dlss.dll, nvngx_dlssd.dll and nvngx_dlssg.dll (the game's or OptiScaler's) it serves DLSS-SR, DLSS-RR and DLSS-FG on AMD, up to 4x frame generation, and DLSS-FG on the final image in games without an upscaler. [DlssNr] HostComputeBackend (auto, D3D12 or HIP) chooses the host's compute: DLSS-FG needs D3D12, and danielblnc's own NR needs HIP, so the two don't run together yet; mochizuki or lmxxf run NR beside its FG. 4x frame generation stutters in 0.8.0 itself.
  • Fixes for it: the host now learns the game's swapchain (its frame counters moved and DLSS-FG stopped risking DEVICE_HUNG), switching Ray Reconstruction back to DLSS-RR keeps the render size, and NR runs between FSR-RR's denoise and its upscale.
  • danielblnc's Async timing is removed: the runtime always runs on the same frame, with the passes and placement chosen. An AmdAsync line left in an ini is ignored.

lmxxf 0.45

  • Compact byte paths for more processing shapes, the ViT V-fragment layout with Q/K on three validated shapes, and C512 paired FP8 packing: output byte-identical to 0.44 in all 32 harness cases, 0.05-0.35 ms faster a frame on an RX 9070 XT (720p Small 4.31 to 4.12 ms, 1080p 71-block 10.41 to 10.30 ms). Kernels rebuilt for RX 9070 and RX 9060.

Fixes

  • Games that load their FSR before OptiScaler (BeamNG.drive, Crimson Desert import amd_fidelityfx_loader_dx12.dll): OptiScaler hooked only its own copy of the loader, so the game's FSR 3 / FSR 4 never reached it and NR did nothing with them. The game's own copy is hooked too now.
  • BeamNG.drive: XeSS no longer crashes at start (xessSetMaxResponsiveMaskValue went to the real library with OptiScaler's context); the graphics options page is no longer empty (the game can't draw an empty list of unavailable modes, so FSR 4 is left out of the game's own list: OptiScaler's menu still offers it); Chromium child processes (--type=) no longer load OptiScaler and overwrite OptiScaler.log.
  • Crimson Desert: XeSS inputs off by default (its XeSS 3.0 option had no name and crashed when picked) and mochizuki's pre-process on by default.
  • Resident Evil Requiem: mochizuki's RenoDX feed takes the game's exposure, as before 0.5.4, instead of a content meter that pumped in dark scenes.
  • MochizukiPreprocess and MochizukiRenoFeedMode ship as auto and are saved as the player set them, so a game's default never undoes a choice made in the menu.
  • lmxxf / mochizuki and open queries: a pipeline or stream-output statistics query left open over the frame no longer stops the list split NR needs; occlusion queries still do, and the log names the query and the runtime.
  • mochizuki out of video memory: the log names the allocation that failed (size, memory type, heap).

The mochizuki runtime, lmxxf's Small model, danielblnc's 0.8.0 and the 32-bit proxies come from the OpenNR installer (OptiScaler 0.5.7 shows as an update). Built on danielblnc's DLSS-NR-on-AMD / NeuralHub runtime, lmxxf's HIP port and mochizuki0323's Vulkan port (MIT, Licenses\).

OpenNR OptiScaler 0.5.6-opennr

Choose a tag to compare

@MatheusFerreiraS MatheusFerreiraS released this 20 Oct 03:54

OpenNR OptiScaler 0.5.6-opennr: lmxxf 0.44's Small model, mochizuki 0.0.7, 10-bit SDR games and Xbox installs

lmxxf 0.44

  • Small model: lmxxf now runs the 31-block model from NVIDIA's 310.9.16 DLL by default, at one, two or three passes. About a third faster on an RX 9070 XT (1080p one pass 10.3 to 6.5 ms, three passes 30.1 to 18.7 ms), with a lighter edit than the 71-block model. It needs native-game-tiled-assets\small\, which the OpenNR installer adds on RX 9070 and RX 9060 cards; without it lmxxf runs the 71-block model as before.
  • Old model (lmxxf page, Effect section, [DlssNr] LmxxfOriginalModel, off by default) goes back to the 71-block model at any pass count. Switching rebuilds the network, a hitch of a second or two.
  • Estimate pass 3, Skin protect, person protection, temporal history and smoothing all work with the Small model.
  • VRAM leak fixed: every network rebuild with temporal history on (Style, compact 1080, a resolution change, a model change) left about 35 MB of VRAM behind for good.
  • Auto exposure uses a soft knee: a lit outdoor scene a stop or two under mid-grey is no longer lifted 1.5-2x, so NR keeps its strength outdoors (Kingdom Come: Deliverance II). Dark scenes still get the full lift.

mochizuki 0.0.7

  • Natural and Cinematic are graded after the network the way NVIDIA's DLL does, so the two styles finally look apart (Style grade, mochizuki page, Model section, [DlssNr] MochizukiStyleGrade, on by default; off gives the earlier picture). Standard is unchanged.
  • Switching the model, int4 or the pass count reuses the running network's memory, so VRAM peaks lower during the switch.
  • Motion vectors are read at the nearest texel, typeless exposure textures are read (Dying Light: The Beast), and the log names the networks as NVIDIA does.
  • The prewarm list was made again for the new shaders.

Fixes

  • NR without upscaling on 10-bit SDR games (inZOI, Mortal Shell 2: "backbuffer format 24 is not RGBA8 or BGRA8"): R10G10B10A2 backbuffers are taken on D3D12, D3D11 and D3D10, with XeFG's guides from the same frame. HDR10 is still left alone.
  • Forza Horizon 6 flicker with Streamline: the command lists the game makes through sl.interposer.dll before the swapchain are now wrapped.
  • eFootball stays on the feature level it asks for instead of falling back to WARP ("GPU: Shader 5.0").
  • Xbox / Game Pass games (Yakuza: Like a Dragon): when the game's executable sits in a subfolder of the package, OptiScaler finds its OptiScaler\ folder beside OptiScaler.dll, so frame generation loads its DLLs instead of leaving a black screen.

The mochizuki runtime, lmxxf's Small model and the 32-bit proxies come from the OpenNR installer (OptiScaler 0.5.6 shows as an update). Built on danielblnc's DLSS-NR-on-AMD runtime, lmxxf's HIP port and mochizuki0323's Vulkan port (MIT, Licenses\).

OpenNR OptiScaler 0.5.5-opennr

Choose a tag to compare

@MatheusFerreiraS MatheusFerreiraS released this 19 Oct 05:26

OpenNR OptiScaler 0.5.5-opennr: the project is OpenNR, an NR ON badge, a dockable menu, lmxxf Auto exposure and mochizuki float colour

OpenNR

  • The project is called OpenNR now. Versions are tagged -opennr, the menu's title reads OpenNR v0.5.5 OptiScaler, and the repositories moved: this one to MatheusFerreiraS/OpenNR-OptiScaler, the installer to zmodelerlover/OpenNR-Installer, the ReShade add-on to zmodelerlover/OpenNR-ReShade. The old addresses redirect.

NR ON badge

  • NR ON badge (below Old model in the Neural menu, [DlssNr] Badge, off by default): the "NR ON" badge in a corner of the frame while Neural Rendering runs, so a screenshot or a video says it was on. It goes away by itself when NR is off, needs no restart, and has a corner (BadgeCorner) and a size (BadgeScale). Every API.

Menu

  • The menu docks the way ReShade's overlay does: drag its title bar to a side of the screen to dock it, and out again to float it ([Menu] MenuAnchor: 0 floating, 1 left, 2 right, 5 top, 6 bottom).
  • The side bar's buttons can be dragged into another order (MenuSectionOrder).
  • Frame time, upscaler time and NR time graphs are always at the bottom, calmer, side by side; the Discord and GitHub links are beside them and the bottom row fits the menu's width.
  • The title bar is taller with the version in bold; the wiki button and the Upscalers heading are gone.

Fixes

  • lmxxf Auto exposure: measured in a pass of its own over 256 points, log averaged and eased over half a second, and it only lifts dark scenes (up to 8x). It used to pull every scene toward mid-grey every frame, so KCD2 pulsed with the camera and lost the effect outdoors.
  • mochizuki, a game whose colour switches between R11G11B10_FLOAT and R16G16B16A16_FLOAT (Neverness to Everness with its phone open): one RGBA16F network serves both instead of a rebuild at every switch, and the game's later sessions build it from the first frame.
  • mochizuki's RenoDX highlight guard says what it does in the menu.

The mochizuki runtime and the 32-bit proxies come from the OpenNR installer (OptiScaler 0.5.5 shows as an update). Built on danielblnc's DLSS-NR-on-AMD runtime, lmxxf's HIP port and mochizuki0323's Vulkan port (MIT, Licenses\).

OptiScaler 0.5.4-amd-nr

Choose a tag to compare

@MatheusFerreiraS MatheusFerreiraS released this 18 Oct 20:30

OptiScaler 0.5.4-amd-nr: mochizuki's new model and RenoDX stage, person protection, Dynamic MFG, screenshots, 32-bit D3D11 and OpenGL

mochizuki

  • The new model from NVIDIA's 310.9.16 DLL (mochizuki0323's v0.0.6) runs by default when dlssnr-amd\dlssnr-small.bin is installed: about a third faster (1080p 9.8 to 6.3 ms, 4K 36 to 23 ms) with a slightly lighter edit. Old model in the menu (MochizukiOriginalModel) goes back to the 310.8 one; int4 mixed always runs on the 310.8 model.
  • The network always runs inside upstream's RenoDX stage, on every path (before Super Resolution and on the final image). Its settings are RenoDX's own, MochizukiReno*, with RenoDX's defaults: model, passes (1 to 4, up to 30 with Unlock passes, each later pass with its own settings), composition, resolution, look and encoding. The keys it covers are gone: MochizukiDetailStrength, ColourStrength, Passes, ModelScale, Intensity, Style, Local*, SkinStructure, AutoMask, Pass2*, Pass3*, MaxRatio, WhitePoint, LinearInput and GameExposure are no longer read. RenoComposition is not used with mochizuki.
  • Upstream's NoiseEveryFrame (frames without motion vectors move the noise seed every frame) and LayerMode (read and ignored) are exposed.
  • The mochizuki page of the Neural menu is grouped in collapsing sections (Model, Passes, Composition, Person protection, Encoding and exposure, Temporal, Performance and advanced, Info).

Person protection (experimental, off by default, lmxxf and mochizuki before Super Resolution)

  • With two or more passes, people keep the first pass's result and the rest of the frame the last pass's, from a person mask made on the CPU by person-worker.exe. Models: PP-HumanSeg (default), YOLO11n-seg, or YuNet (faces only). Strength and detail sliders (below 1 they act in single pass too) and a debug mask. Needs the person-model\ folder from the AMD-NR installer.

Frame generation

  • Dynamic MFG (XeFG 3.x on D3D12, [XeFG] DynamicMFG, off by default): picks the multiplier every frame, up to the interpolation count, so the presented frame rate follows a target (FramerateTargetDMFG, by default the FPS limit or just under the refresh rate), with a rounding choice and an optional 1X that turns frame generation off when the game alone is close enough.

Keys and screenshots

  • Screenshot key (F6 by default, PrintScreen works too): saves the presented frame, NR included, without OptiScaler's menu or overlays, as <exe> <date> <time>.png in Pictures\OptiScaler\<game>\ or a folder picked in the menu. HDR games also get a .jxr with the full HDR image. With the menu open a second copy with the menu is saved. D3D9, D3D10, D3D11, D3D12, Vulkan and OpenGL.
  • Every shortcut takes a combination with Ctrl, Shift, Alt or Tab, bound in the menu or written as Ctrl+Shift+Home in the INI. A key fires only with exactly its modifiers held.
  • The NR on/off key ([DlssNr] ToggleKey) is also in the Keybinds section.

32-bit games

  • 32-bit D3D11 games run through the package's x86\dxgi.dll, and 32-bit OpenGL games through the new x86\opengl32.dll, both on the same 64-bit host in OptiScaler64\ as D3D9 and D3D10 (NR without upscaling, XeFG, the menu).

Fixes

  • Kingdom Come: Deliverance II, lmxxf: intermittent flicker ("same-frame boundary unavailable"). A command list the game creates before its swapchain was never wrapped; the early wrap, Unreal-only before, now covers the module that created the D3D12 device in every engine.
  • Forza Horizon 6: NR never ran with an upscaler. The game uses enhanced barriers, and command lists with them were refused; split barriers are now tracked and only one left open at the cut is refused.
  • NBA 2K27, lmxxf: a second Evaluate of the same frame on another command list reset the temporal history every frame. It is now declined with the history kept.
  • lmxxf, very dark linear colour (KCD2 at night: grain, a green tint): new LmxxfAutoExposure (off) gives the model a white point measured from the frame.
  • mochizuki, jitter-aligned history: frames with no jitter step skipped the vector shift, changed the vectors' format and dropped the history.
  • mochizuki on a PC with duplicate Vulkan drivers for the same GPU: the runtime now picks the device that passes its checks (the newest driver) instead of failing on the first.
  • mochizuki: when the VRAM check refuses a rebuild (a resolution or setting change), the running network stays instead of NR stopping.
  • The note shown when NR turns itself off after a long GPU stall says when VRAM was over budget.
  • FidelityFX override paths (FfxDx12SRPath, FGPath, RRPath, RCPath) are honoured, and ASI plugins are looked for beside the DLL when OptiScaler\plugins does not exist (mods built for upstream OptiScaler, such as WrongGPU).

Runtimes

  • lmxxf 0.43 (lmxxf): FP8 W16 decoder and downsample kernels, the same picture, about 0.1 ms faster at 1080p.
  • mochizuki v0.0.6 / 310.9.16 model (mochizuki0323).

Person protection, the RenoDX stage integration, the upstream options and Dynamic MFG are ported from TheAutomatic's dlss-5-amd-project (GPL-3.0). The person models are PP-HumanSeg (Apache-2.0) and YuNet (MIT) from the OpenCV Zoo and Ultralytics YOLO11n-seg (AGPL-3.0), run by Microsoft ONNX Runtime (MIT); they ship with the installer, with their licences.

The mochizuki runtime with its shaders, the new model and prewarm list, the person-model folder and the 32-bit proxies come from the AMD-NR installer (OptiScaler 0.5.4 shows as an update). Built on danielblnc's DLSS-NR-on-AMD runtime, lmxxf's HIP port and mochizuki0323's Vulkan port (MIT, Licenses\).

OptiScaler 0.5.3-amd-nr

Choose a tag to compare

@MatheusFerreiraS MatheusFerreiraS released this 16 Oct 04:00

OptiScaler 0.5.3-amd-nr: mochizuki fixes, sharper multi-pass, depth-aware history, a faster third pass

Fixes

  • mochizuki on D3D12 games without an upscaler ran on the first frame only when frame generation was off (BeamNG.drive): the finished-frame path took it for a runtime on another device.
  • A game that renders into two colour textures in turn (Forza Horizon 6) kept mochizuki waiting for the frame size to settle forever. The wait now takes A, B, A as one frame size, and the runtime keeps its buffers for the render subrect.
  • NR without upscaling with mochizuki used danielblnc's stabilizer at 0.8, smearing its edit along the optical flow's misses in foliage. It now takes mochizuki's own Stabilizer (off by default), and the result is viewed in its own format when the stabilizer is off.
  • A system-wide ReShade (C:\ProgramData\ReShade, from ReShade's setup) no longer loads into the game through mochizuki's Vulkan device (DISABLE_VK_LAYER_reshade_1 around its instance).

mochizuki

  • Intensity above 1 is applied on the last pass only; over three passes it used to compound to about the eighth power of the network's change.
  • Later passes add detail only (on): passes 2 and 3 see the first pass's input with the previous pass's detail, so they sharpen without stacking the network's tone and colour shift. Its low-pass is edge-aware: a box blur left a band around thin dark edges.
  • Anti-halo (on, with a strength slider): with 2 or 3 passes each pixel's brightness stays inside what the first pass made around it, so wires and other thin edges lose the rim that grew every pass.
  • Estimate pass 3 (on): with 3 passes, two run and the third is estimated from them in 16x16 blocks, after lmxxf's. 720p network time 10.7 to 7.0 ms.
  • The game's depth reaches the history: the motion vectors are read at the nearest of five depth taps, so a moving character no longer trails a light rim. D32, D32S8, R32 and D16 go as they are, D24S8 is read through its shader view, and dynamic resolution's bucket takes it too.
  • Jitter-aligned history (experimental, off): adds the camera jitter's step to the motion vectors before Super Resolution.
  • The prewarm list no longer reports a refusal with ACO, whose pipelines load as binaries.

Menu

  • Reset all beside each runtime's name puts every setting on its page back to its default (where NR runs, the installer's async choice, ACO and captured exposure anchors stay).
  • The Preprocess exposure bias slider covers -3..3 EV; MochizukiPreprocessBias in the INI still takes -8..8.

Logs

  • The settle gate's changes (input size, format) are logged for mochizuki and lmxxf.

The mochizuki runtime with its 80 shaders and prewarm list comes from the AMD-NR installer (OptiScaler 0.5.3 shows as an update). Built on danielblnc's DLSS-NR-on-AMD runtime, lmxxf's HIP port and mochizuki0323's Vulkan port (MIT, Licenses\).

OptiScaler 0.5.2-amd-nr

Choose a tag to compare

@MatheusFerreiraS MatheusFerreiraS released this 15 Oct 21:14

OptiScaler 0.5.2-amd-nr: DX10 and 32-bit games, mochizuki on the finished frame, ACO and int4

New

  • DX10 games, 64-bit and 32-bit, and 32-bit DX9 games. A 64-bit DX10 game's frame crosses to a D3D11 device of OptiScaler's own, where NR and the menu run. A 32-bit game gets x86\d3d9.dll or x86\dxgi.dll beside it, and everything else of this package in OptiScaler64\ with OptiScalerDx9Host.exe, the 64-bit host that runs OptiScaler. The installer (v0.8.2) puts them in place.
  • Fullscreen in 32-bit games becomes a borderless window over the monitor (ForceWindowed=0 under [Dx9X86] or [DxgiX86] opts out), and DirectInput devices read as untouched while the menu is open.
  • mochizuki on the finished frame (NR without upscaling) on every API, between two command lists of its own.
  • mochizuki synced to v0.0.5 plus its gfx1200 ACO hotfix: MochizukiAco (on by default) runs ACO's machine code from dlssnr-amd\aco\, 1080p 13.9 to 10.5 ms; MochizukiInt4 (off, needs ACO) runs the int4 mixed network from dlssnr-amd\dlssnr-int4.bin, 10.1 to 9.2 ms, with a live switch. The menu shows the network's build with a progress bar.
  • lmxxf synced to 0.42 (3a1be68c): one pass 10.45 to 9.85 ms at 1080p. LmxxfPassEstimate (on) runs two of three passes and extrapolates the third (30.1 to 21.1 ms); LmxxfSkinProtect (off) keeps skin-coloured pixels from the first pass.
  • The FPS overlay names the runtime the finished frame runs on.

Fixes

  • lmxxf with 2 or 3 passes left part of the screen without NR at high resolutions (a 2^20-row copy limit).
  • OptiFG is selectable with NR without upscaling, its output set to XeFG.
  • XeFG on the D3D11 bridge's finished frame paces as on D3D12 and turns off when Active is unticked.
  • A second window's swapchain (BeamNG's ImGui editor) gets no frame generation.
  • Vulkan XeFG ended the game with abort() at exit (its threads were still joinable).
  • The winmm proxy's own-DLL answer is logged once at info, then at debug.

Known issues

  • RivaTuner Statistics Server stalls XeFG's present: close it while frame generation runs.
  • XeFG on DX11 at a low base frame rate (under about 40 fps) can pace unevenly.

Built on danielblnc's DLSS-NR-on-AMD runtime, lmxxf's HIP port and mochizuki0323's Vulkan port (MIT, Licenses\).

OptiScaler 0.5.1-amd-nr

Choose a tag to compare

@zmodelerlover zmodelerlover released this 07 Oct 20:47

OptiScaler 0.5.1-amd-nr: no more green noise on danielblnc 0.6.0, and NR without upscaling that comes back

  • Green noise with danielblnc 0.6.0. Runtime 0.6.0 reads FSR's pre-exposure one float past the end of the record packet OptiScaler sent, and got stack bytes: a different garbage value every frame, an exposure near zero, and green noise. The packet now carries 1 there. Older runtimes never read it.
  • NR without upscaling no longer switches off for the session.
    • A stall now turns Enable NR off with a note, as on the upscaler path, and turning it on again retries.
    • The 2 s stall clock starts when NR's queue reaches its job. A slow frame of the game's own (AMD's recording or screenshot, a loading screen, a mode change) is no longer blamed on NR.
    • After a 4 s GPU timeout, NR picks up again once that frame finishes, and it gives the back buffer back. A resize waits for it instead of failing with DXGI_ERROR_INVALID_CALL.
    • A runtime failure that left no job behind is retried 10 s later, up to 3 times.
    • A swapchain on another D3D11 device (an overlay's or a capture's) is left alone instead of stopping NR.
    • When the game moves to a new D3D11 device, NR moves with it (after 120 frames and 2 s without the old one) instead of stopping.
    • A pass whose start-up failed is never retried in a loop.
    • A resize that comes while NR's frame is timed out is no longer lost: NR picks up at the new size once the frame finishes.
  • D3D11 games with an sRGB backbuffer (Virt-A-Mate and other Unity games in linear colour) now run NR without upscaling. Before, it refused them with no log line.
  • DX11-to-DX12 bridge: a failed step no longer quits the game on the first frame. The D3D12 swapchain is resized again when the sizes stop matching, and only after 30 failed frames in a row does Present return DXGI_ERROR_DEVICE_REMOVED, as before. Turning HDR on mid-game resizes the D3D12 swapchain to the new format too.
  • A resize waits at most 4 s for NR's frame, with a warning in the log.
  • amd_bridge.log no longer repeats the same line every frame (29 MB in one Cyberpunk session).
  • The log says which runtime NrBackend got, when the menu opens and closes, and when the AMD graphics tracker hooks go in.
  • Build: the scripts accept VS_ROOT when vswhere finds nothing, look for the Windows SDK where vcvars found it, and package the zip with forward-slash entries under Windows PowerShell 5.1.

OptiScaler 0.5.0-amd-nr

Choose a tag to compare

@MatheusFerreiraS MatheusFerreiraS released this 07 Oct 02:14

NR without upscaling and XeFG frame generation on every 64-bit D3D9, D3D11, D3D12, Vulkan and OpenGL game, lmxxf updated to upstream 0.41, and the 0.4.11 fixes.

What changed

  • NR without upscaling ([DlssNr] PresentWithoutUpscaler, "NR without upscaling" in the Neural tab). OptiScaler now runs danielblnc's network on the game's finished frame, HUD included, in games that have no DLSS, FSR or XeSS: 64-bit D3D9, D3D11, D3D12, Vulkan and OpenGL. Where the game's upscaler is on, NR keeps running inside it and the finished-frame path stands aside by itself. The full OptiScaler menu works on every one of those APIs.
  • XeFG frame generation on the same games, 2X up to 8X, on the NR output and with NR off too (then XeFG runs on its own optical-flow guides). The FPS overlay shows XeFG's output beside the game's frame rate.
  • OpenGL: a game whose window covers the whole monitor (Wolfenstein: The Old Blood) had its generated frames hidden by AMD's driver. While XeFG shows, the window is moved one row above the monitor so the driver hands it to Windows' compositor; it goes back when frame generation stops. The D3D12 device and swapchain AMD's OpenGL driver makes for itself are no longer hooked.
  • lmxxf synced to upstream 0.41: all 71 blocks, faster numerics, and free resolution for inputs up to 1080p, which also makes Style work at 720p renders (it had almost no effect there).
  • danielblnc on the upscaler path: fixed noise seed (AmdFixedSeed, "Fixed noise seed" in the menu, on by default). This removes the flicker with temporal on in Cyberpunk 2077.
  • Fixes: Red Dead Redemption's XeFG generated nothing (Streamline started a second FG frame every frame); Unity games (Cities: Skylines) kept the old size after a resize on the DX11 bridge; XeFG no longer stays locked at a low frame rate after a hitch; NR's GPU time is in the FPS overlay and the menu.
  • Everything from 0.4.11: The Witcher 3's dynamic resolution and ray tracing, lmxxf and mochizuki on the DX11 bridge, Assetto Corsa's menu with CSP.

Turning on XeFG with NR without upscaling

  1. Install with the AMD-NR ReShade Installer v0.8.0, OptiScaler route. It turns NR without upscaling on in a fresh OptiScaler.ini and picks the right file name for the API (dxgi.dll, d3d9.dll, opengl32.dll, winmm.dll for Vulkan).
  2. In game, press Insert, open the Neural tab and turn on Enable NR.
  3. In Frame Generation, set FG Input to OptiFG (Upscaler) and FG Output to XeFG, press Save Settings and restart the game.
  4. After the restart, tick Active under Frame Generation (XeFG) and pick the count under MFG (Auto is 3X). End switches XeFG on and off, Numpad 5 switches NR. D3D11 and D3D12 games need borderless or windowed mode.

Upgrade notes

  • The AMD-NR ReShade Installer v0.8.0 installs this release and recommends it on every API above. Picking an older OptiScaler there brings back the old recommendation.
  • By hand: extract the zip and run Setup.bat, then set PresentWithoutUpscaler=true under [DlssNr] for a game without an upscaler. danielblnc 0.6.0 down to 0.3.0 keep working; NR without upscaling runs on danielblnc only. mochizuki stays at 0.4.10-amd-nr.
  • 32-bit games stay on the ReShade route.

Experimental: do not use it in online games with anti-cheat.

SHA-256 of the zip: 0a652047fd5353005ca77f8d1e7292d4a377ca2b3343d02137353fdcc10eed4d

OptiScaler 0.4.11-amd-nr

Choose a tag to compare

@MatheusFerreiraS MatheusFerreiraS released this 06 Oct 03:53

The Witcher 3 with dynamic resolution and ray tracing, lmxxf and mochizuki in DX11 games, and the Assetto Corsa menu with CSP.

What changed

  • Games with dynamic resolution (The Witcher 3). The Witcher 3 changes its render resolution every second or so, and every step used to count as a settings change.
    • danielblnc switched NR off for a moment at every step, so it kept flickering on and off. The model now stays at the largest frame seen and a smaller one is scaled up to it, so a step no longer interrupts it.
    • lmxxf rebuilt its whole network at every step (about 1.7 s each), so it never got to run. It now keeps the network of the largest frame seen and only rebuilds its codec, which takes a few milliseconds.
    • A lasting drop in resolution (a lower upscaler mode) keeps the larger size until the game restarts: it works, it just costs a little more GPU.
  • lmxxf with ray tracing. lmxxf splits the game's command list at the upscaler, and it refused any list that also traced rays, so in The Witcher 3 with ray tracing on it said split ineligible: state_object and ran no NR. The split now carries the ray tracing state over, and predication too.
  • lmxxf and mochizuki in DX11 games that reach the upscaler through OptiScaler's own DX12 bridge (Assetto Corsa). The bridge's command lists now get the same-frame hook these runtimes need. Before, they ran no NR there. Thanks to GhostNappa, whose patch this is based on.
  • Assetto Corsa with CSP: the menu takes clicks. 0.4.10's low-level mouse hook only started when the game held its DirectInput mouse exclusively, and CSP's devices don't report as a mouse, so the clicks still got lost. It now starts whenever the menu is open and another WndProc holds the window. Again from GhostNappa's testing.

Upgrade notes

  • The AMD-NR ReShade Installer v0.7.12 installs this release. It now finds The Witcher 3's DX12 build (bin\x64_dx12\witcher3.exe) instead of its launcher, and no longer installs the unstable danielblnc builds in async: Timing stays on its default and you can still pick async in the menu.
  • By hand: extract the zip and run Setup.bat. danielblnc 0.6.0 down to 0.3.0 keep working; mochizuki stays at 0.4.10-amd-nr.

Experimental: do not use it in online games with anti-cheat.

SHA-256 of the zip: c8e8b773bde5eb76441b13c57017d5ad0f832227706124a2b6af9aa663c26727

OptiScaler 0.4.10-amd-nr

Choose a tag to compare

@MatheusFerreiraS MatheusFerreiraS released this 04 Oct 03:40

mochizuki works again on AMD's newest driver, an async mode for danielblnc's runtime, NR you can switch back on after a GPU freeze, and menu fixes for Assetto Corsa and wheels.

What changed

  • mochizuki on AMD driver 32.0.32015. On this driver mochizuki crashed the game while building its network, on every RX 9000. Some of its shaders hit a compiler bug in the driver, and one of them also computed a wrong picture (dark blotches and flicker). The shaders are rewritten around the bug: the network builds again and its output is byte for byte the same on 32.0.32015 and on 32.0.31041.
    • Quality, Balanced and Ultra Performance looked blotchy even after that (render resolutions like 720p, 635p and 360p). That came from the last block of the ViT attention, which mochizuki's own shader gets wrong on every driver when the token count isn't a multiple of 64. Fixed too, so those modes are more accurate than before on any driver.
    • Needs mochizuki 0.4.10-amd-nr (the installer pins it).
  • Async mode for danielblnc's runtime (Ins menu -> NR -> Timing, or AmdAsync=true). The game's queue no longer waits for the network every frame and the result lands one frame later. danielblnc traces the freezes some players met to those waits. In async the model runs after the finished frame with one pass, and frames that arrive while the network is still busy go out without NR, so a slower card gets NR on fewer frames. Read when the game starts.
  • A GPU freeze no longer turns NR off for the whole session. When one danielblnc job holds the GPU for 2 s, NR switches off and the menu says why; tick Enable NR again to retry, no restart needed.
  • Wheels and pedals no longer go to full lock while the menu is open. The menu used to block DirectInput wheels, pedals and joysticks by zeroing them, and zero on an axis is its extreme (full throttle on some pedal sets). They now pass through.
  • The menu no longer reopens right after you close it when the shortcut arrives by two paths.
  • Assetto Corsa: the menu answers the mouse. When the game holds its DirectInput mouse exclusively and another mod (CSP) has taken the window, the menu reads the clicks from a low-level mouse hook, only while it's open. Thanks to GhostNappa, whose patch this is based on.
  • When a mochizuki build dies (a driver crash), the next start logs every shader it compiles, so a report shows which one.

Upgrade notes

  • The AMD-NR ReShade Installer v0.7.11 installs this release and lets you pick danielblnc's runtime version per game. An OptiScaler.ini you already have keeps your settings.
  • By hand: extract the zip and run Setup.bat. danielblnc 0.6.0 down to 0.3.0 keep working.

Experimental: do not use it in online games with anti-cheat.

SHA-256 of the zip: 77063b67cf85934eca349a77f946bebdfad4c3da10a0f9af09e4760744e1ae18