github Djihads80/Eglantine build-219
Eglantine nx2 build 219 (3081c8e)

pre-release4 hours ago

What's changed

Fire Emblem's DLSS ghosting, a minutes-long Intel shader compile in Mario Kart World, Splatoon Raiders' yellow tint, and a batch of shader and build fixes.

  • Fire Emblem: Fortune's Weave no longer ghosts at 1x (#535, fixes #520) — Switch 2 compute programs get their storage-buffer size from the memory behind the pointer (capped at 8 MiB and clipped to the mapping's contiguous range) instead of from the word that follows the address. In Fortune's Weave's DLSS that word is a texture handle, so the buffer feeding the network the current frame was bound as 266 bytes and everything past it was dropped: the network mostly saw empty input and kept blending in old frames, giving moving characters see-through trails and smeared shadows. Older NVN-style buffers and graphics shaders keep the old sizing, and there was no frame-time change in testing.
  • The "Use the game's own DLSS" checkbox is gone (#535) — with the ghosting fixed, the game's own DLSS simply runs at 1x unless NVIDIA DLSS is turned on, so the checkbox and the status line under it were removed from the Graphics tab as confusing. FSR 3.1 still takes over on its own with resolution scaling, on GPUs that can't run the network, and if the network's output fails its health checks. EDEN_NX2_DLSS_REPLACEMENT still forces the replacement.
  • No more multi-minute compute compiles on Intel — every compute pipeline asked for a required subgroup size of 32 whenever VK_EXT_subgroup_size_control was present, even for kernels that never look at a lane; on Intel that compiles SIMD32 unconditionally and a register-heavy Mario Kart World program spilled badly enough to take minutes instead of milliseconds. The fixed size is now only requested for shaders that use warp-level operations (vote, invocation id, shuffles, mask, quad shuffles), and the required-subgroup-size struct is only chained when the device lists the compute stage in requiredSubgroupSizeStages (#475).
  • Splatoon Raiders' scene is no longer yellow — FP16 texture results come back as c0 in the low half and c1 in the high half, and the merge into the destination needs the high half first. The halves were swapped, so every destination ended up with H0 = c1; Splatoon Raiders reads only .H0 for its blue component.
  • One more pipeline saved in Donkey Kong Bananza (#492) — the SPIR-V backend only knew how to emit a Phi for U1 and U32, so a F32x4 Phi threw Phi node type F32x4 is not implemented and dropped the whole graphics pipeline (four times per session). Every type the emit context already has an id for is mapped now. This is one wall among several for that title, not a playability fix: Bananza still ends its boot on unrelated IR errors.
  • Pokopia's large scene shader compiles (#145) — UISETP that combines its result with another uniform predicate (AND/OR/XOR, including a negated accumulate predicate) and FSETP whose second operand sits in a uniform register are both lowered now, so that shader is no longer rejected. No visible change was identified from it: the black sky it was found while chasing turned out to be fixed by #125.
  • Hyrule Warriors UISETP regression caught before it shipped — the accumulate-predicate change also rejected any UISETP whose bits 68-71 aren't PT, a field nx2 never read (only the .EX form does, and that is still rejected). The check is dropped again.
  • Generic attribute bound — IsGeneric now spans Generic0X…Generic31W instead of stopping at 31X, so a W component is recognised as a generic attribute.
  • Clean MSVC Release builds finish (#429) — the vendored zstd tripped /we4505 and nvhost_gpu.cpp tripped /W4 on a LOG_TRACE-only binding, so a first-time Windows build produced no executable at all. The warning is demoted to /w4505 (still visible), the binding is [[maybe_unused]], and neither change alters generated code.
  • Game list tooltip — NUP titles now show their update's display version (Update (x.y.z), read from the NACP) alongside the patch versions.

Changes since build-212 (d6efc8e…3081c8e), full compare.

All commits in this build
  • 3081c8e616 Merge pull request #535 from Duck912/native-ssbo-mapped-size
  • 979d652d90 buffer_cache: keep native storage bindings in one device range
  • 3c45b94cae yuzu, video_core: always use the game's own DLSS where it can run
  • 2e12e0def5 buffer_cache: size native compute storage buffers from the mapping
  • 3060454754 Merge pull request #145 from rdenno/pokopia-shaders
  • 5fc9193545 Merge nx2 into pokopia-shaders
  • adacbaae7b shader_recompiler: don't require PT in UISETP bits 68-71
  • 35cde43095 game_list: surface the NUP display version in the tooltip
  • 088ffcb042 Merge pull request #429 from CloudP4bbs/pr/msvc-release-fixes
  • 7a02cffe2a Merge pull request #475 from ymatrix1/split-shader
  • d2fcf00abe Merge pull request #492 from CloudP4bbs/pr/phi-all-types
  • 4c768872d8 Merge nx2 into pokopia-shaders
  • 47ad28fe37 shader_recompiler/spirv: emit a Phi for every IR type, not only U1 and U32
  • 60a7c42bd0 Merge nx2: the audio and shader commits of this branch landed there in #393
  • dce00ecf7a vulkan: only attach the required subgroup size when the device supports it for compute
  • 986289ac5f shader: pack FP16 texture results with c0 in the low half
  • 333ac6963f shader_recompiler: include all components in IsGeneric upper bound
  • 806a3f8166 vulkan: only force the guest subgroup size for warp-level compute
  • 964a39cc6b CMake/MSVC: let a clean Release build finish
  • a961994705 Merge branch 'nx2' into pokopia-shaders

Automatic build of nx2 at 3081c8e.

Linux

Linux packages come as an AppImage (self-contained, needs glibc 2.39 or newer: Ubuntu 24.04, Fedora 40, Debian 13, Arch) and a tar.gz (uses your system libraries, so Qt 6 and the usual libraries must be installed).

Build Type Standard PGO (Recommended) Notes
amd64 AppImage · tar.gz AppImage · tar.gz Make the AppImage executable (chmod +x) and run it
ARM (aarch64) AppImage · tar.gz AppImage · tar.gz

Windows

Windows packages are in-place zip files: extract and run eglantine.exe, or eden-cli.exe from a terminal.

Build Type Standard PGO (Recommended) Notes
amd64 / x86_64 (MSVC) MSVC zip Use if you run into graphical issues on other builds
amd64 / x86_64 (MinGW) PGO zip Built with MinGW clang; bundles its own DLLs, no Visual C++ redistributable needed

macOS

Build Type Standard PGO (Recommended) Notes
arm64 (Apple Silicon) zip macOS 15 or newer. Not notarized: right-click and choose Open the first time, or run xattr -dr com.apple.quarantine eglantine.app. eden-cli is inside the app, in Contents/MacOS

The PGO builds are the same programs compiled with profile-guided optimization (clang plus Eglantine's profile); prefer them when your CPU supports it.

Don't miss a new Eglantine release

NewReleases is sending notifications on new releases.