Skip to content
ย 
ย 

Latest commit

ย 

History

2,902 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation


Logo

Magpie

License build All Contributors Translation status

๐ŸŒ English | ็ฎ€ไฝ“ไธญๆ–‡

Magpie is a lightweight window upscaling tool that comes equipped with a variety of efficient scaling algorithms and filters.

About this experimental fork

This repository is an independent experimental fork of Blinue/Magpie. Magpie and the majority of this codebase were created by Blinue and the upstream contributors. This fork is not an official Magpie release and is not endorsed or supported by the upstream project.

The fork owner used OpenAI Codex as a development assistant to add and test experimental captured-frame integrations for:

  • NVIDIA DLSS Super Resolution with shared NVIDIA Optical Flow motion and optional estimated depth.
  • NVIDIA DLSS Frame Generation with configurable 2x/3x/4x output and the same shared guidance.
  • NVIDIA DLSSNR as a same-resolution SDR AI filter through a locally supplied direct-runtime path.
  • AMD FidelityFX Super Resolution 2.2.1 with zero motion vectors, synthetic jitter metadata, or 50%-resolution colour optical flow.
  • AMD FidelityFX Super Resolution 3.1.5 upscaling (without frame generation) through D3D11/D3D12 interoperability, with zero motion vectors, synthetic jitter metadata, or 50%-resolution colour optical flow.
  • AMD FidelityFX Super Resolution 4.1.1 INT8 with experimental Zero-MV, synthetic-jitter, and 50%-resolution colour-optical-flow modes.
  • Intel XeSS 3.0.1 Super Resolution with zero motion vectors, synthetic jitter metadata, or 50%-resolution colour optical flow through D3D11/D3D12 interoperability.
  • Intel XeSS Frame Generation with a cross-vendor x2 path and an Intel Arc x2-x4 multi-frame path.
  • NVIDIA VideoSuperRes for same-resolution denoising and VSR upscaling.
  • MLAA and captured-colour-frame approximations of SMAA T2x/4x, with jittered and non-jittered variants.

These integrations do not have access to engine depth, engine motion vectors, exposure, reactive masks, camera matrices, or projection jitter. Renderer-owned optical flow and Depth Anything V2 are estimates from captured colour, so ghosting and unstable detail remain possible. These are research prototypes, not replacements for native in-game DLSS or FSR support.

Initial test observations

The following observations are subjective results from a limited set of systems and games; they are not general performance or image-quality claims.

For normal use, choose either DLSS SR_Experimental or RTXVideo_VSR_Ultra; stacking them is not recommended. DLSS SR defaults to motion guidance on and estimated depth off. The synthetic-Jitter and old Optical Flow names remain legacy experiments.

DLSS Super Resolution

DLSS SR_Experimental keeps the compatible internal identifier DLSS_ZeroMV but exposes two independent inputs. Use Motion Vectors supplies current-to-previous source-pixel optical flow and defaults to on. Use Estimated Depth supplies normalized inverse relative depth and defaults to off. Depth can still use optical flow internally for temporal stabilization when motion delivery is disabled. Real guidance is only bound when the DLSS input size matches the captured source; otherwise the channel safely falls back to Zero.

Effect Observed advantages Observed disadvantages Recommendation
DLSS SR_Experimental Reuses one Renderer-level motion/depth group and safely falls back per channel Estimated inputs are not engine data and can still produce ghosting Current non-Jitter test path
DLSS_ZeroMV_Jitter Retains the earlier metadata-only experiment The source projection is not jittered, so the metadata is not self-consistent Legacy; not used by the new guidance path
DLSS_OpticalFlow Compatible alias that now requests the shared motion provider No estimated-depth control and the old name is retained only for profiles Legacy

Moving objects, camera motion, and disocclusion can still produce ghosting because the inputs are inferred from captured colour. The non-Jitter path is the current development target.

Supplement: driver-level DLSS model/preset overrides

M, L, J/K, and CNN below are DLSS models or presets selected through driver-level overrides. They are not separate Magpie Effects and do not change the priority of the three Effects above.

DLSS model/preset Observed advantages Observed disadvantages Recommendation
M Good antialiasing with the best overall balance; its temporal weighting appeared lower than L, resulting in less ghosting Slightly less smooth than L Recommended; balanced
L Smoothest antialiasing and edges Slightly more temporal ghosting than M; expensive when used for DLAA or near-native-resolution rendering For users who prioritize smoothness and have sufficient GPU headroom
J/K Functional, but produced no compelling advantage over M/L in this colour-only integration Overall reconstruction quality was unremarkable Not recommended
CNN Conservative but generally unremarkable in these tests Antialiasing and reconstruction were weaker than M/L Not recommended

Creating a dedicated Magpie application profile in NVIDIA Profile Inspector is recommended when testing driver-level DLSS model or preset overrides. Switch between M and L per game: M is the more balanced choice, while L prioritizes smoother antialiasing. The public code still requests Balanced mode and Preset J; driver overrides are external to Magpie.

DLSSNR AI filter

DLSSNR_AI_Filter is a same-resolution SDR post-process and does not upscale. It consumes the shared Frame Guidance group. The Effect exposes Style, Intensity, Local Tone, Local Structure, Automatic Mask, and Frame Guidance controls; NR Preset is fixed internally.

Feature 18 uses the direct D3D12 exports of a locally supplied nvngx_dlssnr.dll; NGX Core only allocates and destroys the parameter block. The filter cannot separate UI already composited into the captured frame and may alter text/UI or produce ghosting and structural drift. HDR is not currently supported.

Frame Generation experiments

DLSS FG runs after the effect chain. It can bind the same captured-frame motion and optional estimated depth used by DLSS SR while keeping final colour at backbuffer resolution. XeSS FG remains on its earlier Zero-MV/flat-depth path. Do not combine a Frame Generation Effect with NVIDIA Smooth Motion or another Frame Generation Effect.

While Frame Generation is active, Magpie forces exact duplicate-frame filtering and stops synthesizing repeated base frames through its minimum-FPS timer. XeSSFG also ignores frontend Presents caused only by Magpie's software cursor or overlay, preventing mouse movement from inflating the SDK input rate; the cursor updates with the next genuine captured frame.

Effect Hardware and multiplier Current status
DLSS FG_Experimental NVIDIA RTX; configurable x2/x3/x4 Motion defaults on; estimated depth defaults off. Shared D3D11/D3D12 resources use the same captured base-frame ID. Failure protection preserves real frames and disables DLSSFG only for the current scaling session after repeated failures.
XeSS Frame Generation x2 Zero-MV Compatible Intel, NVIDIA, and AMD GPUs; x2 Experimental cross-vendor path using the XeSS-FG D3D12 proxy swap chain.
XeSS Multi-Frame Generation x2-x4 Zero-MV Intel Arc; x2/x3/x4 Experimental Arc multi-frame path. The requested multiplier is clamped to the capability reported by the GPU and driver; non-Arc hardware is limited or falls back to x2.

These paths can increase displayed frame rate but cannot reconstruct correct object motion, UI separation, disocclusion, or camera changes without game integration. They may add latency or visible interpolation artefacts and should be tested per application.

FSR 2.2.1

Effect Observed advantages Observed disadvantages Recommendation
FSR2_ZeroMV The result was reasonably good and visually smooth; cross-vendor and lighter than the Optical Flow path Motion can still leave history artefacts because real disocclusion data is unavailable Recommended, especially when DLSS is unavailable
FSR2_OpticalFlow Experimental colour-motion input Image quality was substantially worse than Zero-MV while adding flow-estimation cost Not recommended

FSR 3.1.5 Upscaler

FSR3 uses AMD's signed DirectX 12 FSR API runtime. Magpie remains a D3D11 renderer, so this backend shares and copies resources and synchronizes fences across D3D11 and D3D12. Frame generation is not integrated.

Effect Observed advantages Observed disadvantages Recommendation
FSR3_ZeroMV The backend may be functioning and remains useful as an integration experiment Current image quality was poor, and the D3D11-to-D3D12 bridge adds copies, synchronization, and uncertainty about whether every input is handled correctly Not recommended
FSR3_OpticalFlow Tests the upscaler with estimated motion input Combines the cross-API overhead with unreliable colour flow and produced poor results Not recommended

NVIDIA RTX Video

RTX Video provides same-resolution denoising and true VSR upscaling. Its strongest use cases were Galgames, visual novels, and streaming video, where it improved compressed imagery, blurred lines, text, and character edges.

Effect/quality Observed result Recommendation
Same-resolution Denoise Improvement was generally modest and it does not upscale Not recommended
VSR Low Lower cost, but image-quality gains were limited Not recommended
VSR Medium Better than Low, but not compelling compared with High/Ultra Not recommended
VSR High Strong image-quality improvement with lower cost than Ultra Recommended when Ultra is too expensive
VSR Ultra Best reconstruction and denoising in Galgames and streaming video First choice for Galgames and streaming video

The trade-off is that RTX Video is NVIDIA-only and its VFX runtime and models greatly increase the distribution size. VSR worked on the developer's Windows 11 test machine, while one Windows 10 system failed to create VideoSuperRes; GPU, driver, OS, and runtime versions may all affect compatibility.

NVIDIA Smooth Motion compatibility mode

When Smooth Motion is enabled for Magpie through NVIDIA Profile Inspector, repeatedly starting and stopping scaling may cause driver-retained GPU memory to grow. Enable Smooth Motion compatibility mode under Settings โ†’ General to restart Magpie after each scaling session, allowing process exit to release those driver resources. The restart path preserves whether Magpie was windowed, minimized, or in the tray; the replacement waits for the previous process to exit before initializing and the old process releases shortcuts before replacement. The option is disabled by default and is intended only for Smooth Motion users.

Intel XeSS 3.0.1

XeSS uses the cross-vendor D3D12 DP4a path and can run on compatible Intel, NVIDIA, and AMD GPUs. Magpie shares textures and fences with D3D12; the Intel-only native D3D11 XeSS path is deliberately not used.

Effect Observed advantages Observed disadvantages Recommendation
XeSS_ZeroMV The backend may be functioning and demonstrates the cross-vendor DP4a path Current image quality was poor; constant depth cannot identify disocclusion, and the D3D11-to-D3D12 bridge adds overhead and integration uncertainty Not recommended
XeSS_OpticalFlow Tests XeSS with estimated motion input Still lacks real depth, adds flow and cross-API overhead, and produced poor results Not recommended

Optical Flow and DLDSR

None of the current 50%-resolution colour Optical Flow variants are recommended, including the DLSS, FSR2, FSR3, and XeSS versions. Colour flow cannot replace engine-provided motion vectors and disocclusion data; it did not produce consistent image-quality gains and sometimes made the result substantially worse while consuming additional GPU time.

On NVIDIA systems, if a game and display mode support it and additional GPU cost is acceptable, DLDSR is generally a more sensible image-quality path than estimating motion from captured frames. DLDSR renders the game at a higher resolution and then downsamples it, so it is not a direct replacement for temporal upscaling, but it starts with more reliable source samples.

External development dependencies

Third-party SDKs, models, wheels, and proprietary NVIDIA binaries are not part of this source repository. Obtain them from their original publishers and accept their respective licenses:

To build the optional backends, create src/BuildOptions.props.user and define the feature switches and local SDK paths there. The file is excluded by .gitignore; it is machine-specific and must not be committed to the public repository.

The v0.5.6 experimental binary package uses a community-modified nvngx_dlssnr.dll 310.8.0.0 intended for RTX 40-series and RTX 50-series testing. That DLL is a Release asset only: it is not included in this source tree or the automatically generated source archives. Because it was modified, its Authenticode file hash no longer matches NVIDIA's original signature.

Native upscalers and RTX Video are dispatched through the shared NativeEffectBackend interface and NativeEffectBackendFactory. This keeps SDK-specific detection, creation, resize, and draw logic out of the main Renderer path. Frame-generation presenters remain separate because they publish additional frames at the terminal presentation stage.

See Third-party components and redistribution for the per-component inventory and release checklist.

Source and binary distribution

The Magpie-derived source remains licensed under GPLv3. Source distributions must preserve the upstream copyright and license notices. AMD FSR2/FSR3 and Intel XeSS have their own notices and terms. NVIDIA SDKs and runtime files remain under NVIDIA's proprietary terms.

Do not treat a GitHub download link as permission to redistribute a third-party SDK. In particular, do not commit SDK folders, models, wheels, or NVIDIA DLLs to this repository. Public binary releases that combine GPLv3 Magpie code with proprietary NVIDIA components require a separate license-compatibility and redistribution review. The FSR 4 capability-check override likewise requires a specific terms/permission review before binary distribution. Until those reviews are complete, publish source code only, or publish builds without the affected components. This is a project-maintainer precaution, not legal advice.

๐Ÿ‘‰ Original Magpie releases

๐Ÿ‘‰ FAQ

๐Ÿ‘‰ Built-in effects

๐Ÿ‘‰ Compilation guide

Features

  • Supports both fullscreen and windowed scaling
  • Includes a variety of built-in algorithms and filters, including Anime4K, FSR, CRT shaders, and more
  • WinUI-based user interface with support for light and dark themes
  • Multi-monitor support

Screenshots

Main window Main window

Hints

  1. If you have set DPI scaling and the window you want to scale does not support high DPI (which is common in older games), it is recommended to first enter the program's compatibility settings and set "High DPI scaling override" to "Application".

  2. Some games support zooming the window, but with extremely naive algorithms. Please set the resolution to the built-in (best) option.

System requirements

  1. Windows 10 v1903+ or Windows 11
  2. DirectX feature level 11

Localization

Thanks to Weblate for hosting! Click the image below to visit the translation page.

Translation status

Acknowledgement

Thanks go to these wonderful people:

Xu
Xu

๐Ÿšง
hooke007
hooke007

๐Ÿ“– ๐Ÿ’ฌ ๐Ÿ““ ๐Ÿ’ป
Pal Lockheart
Pal Lockheart

๐Ÿ““
Steve Donaghy
Steve Donaghy

๐Ÿ’ป ๐ŸŒ
gyroๆฐธไธๆŠฝ้ฃŽ
gyroๆฐธไธๆŠฝ้ฃŽ

๐Ÿ’ป
ButtERRbrod
ButtERRbrod

๐ŸŒ
NightFox
NightFox

๐ŸŒ
Tzugimaa
Tzugimaa

๐Ÿ’ป
WHMHammer
WHMHammer

๐ŸŒ
kato-megumi
kato-megumi

๐Ÿ’ป
Mike Wang
Mike Wang

๐Ÿ““
Sammy Hori
Sammy Hori

๐ŸŒ
NeilTohno
NeilTohno

๐ŸŒ
a0193143
a0193143

๐ŸŒ
soulset001
soulset001

๐ŸŒ
WluhWluh
WluhWluh

๐ŸŽจ
Serdar SaฤŸlam
Serdar SaฤŸlam

๐ŸŒ
Andrus Diaz German
Andrus Diaz German

๐ŸŒ
Kefir2105
Kefir2105

๐ŸŒ
animeojisan
animeojisan

๐ŸŒ
MuscularPuky
MuscularPuky

๐ŸŒ
Zoommod
Zoommod

๐ŸŒ
fil08
fil08

๐ŸŒ
ๆ”ธ็พš
ๆ”ธ็พš

๐Ÿ’ป
OHaiiBuzzle
OHaiiBuzzle

๐ŸŒ
Rastadu23
Rastadu23

๐ŸŒ
hauuau
hauuau

๐Ÿ’ป
nellydocs
nellydocs

๐ŸŒ
funnyplanter
funnyplanter

๐Ÿ’ป
Erich Yu
Erich Yu

๐Ÿ’ป
เฎคเฎฎเฎฟเฎดเฏ เฎจเฏ‡เฎฐเฎฎเฏ
เฎคเฎฎเฎฟเฎดเฏ เฎจเฏ‡เฎฐเฎฎเฏ

๐ŸŒ
mhtvsSFrpHdE
mhtvsSFrpHdE

๐Ÿ“–
Krzysztof
Krzysztof

๐ŸŒ
Howard Wu
Howard Wu

๐Ÿ’ป
Arif Budiman
Arif Budiman

๐ŸŒ
Raphael
Raphael

๐ŸŒ
Pate L
Pate L

๐ŸŒ

This project follows the all-contributors specification. Contributions of any kind are welcome!

License

This project is licensed under GPLv3.

About

Experimental DLSSNR Feature 18 filter for arbitrary Windows application windows, with 1-4 pass control and telemetry.

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages