github Djihads80/Eglantine build-212
Eglantine nx2 build 212 (d6efc8e)

pre-release4 hours ago

What's changed

Two compatibility fixes (Switch 2 titles packed as NUP, and Intel/Mesa graphics), one shader fix, and test/CI cleanup.

  • Switch 2 titles packed as NUP are classified correctly again (#512, fixes #504) — platform detection now prefers the newest update's ExeFS, like AppLoader_NUP, and only falls back to the base when the update has no ExeFS. Previously, a NUP whose base ExeFS is empty was detected through that empty directory, so a Switch 2 title came up with the Switch 1 memory layout and guest clock: a guest-memory exception and a boot stuck at 0 FPS. Mario Kart World 1.8.0 (update 917504) now selects the automatic 12 GiB layout and the 31.25 MHz clock and reaches the title screen at roughly 30 FPS, from the same empty-base NUP.
  • The NUP packer no longer writes empty exefs/romfs directories — a contentless ExeFS is treated as absent both when packing and when reading a container (GetExeFSDir returns nothing for it), and exefs/romfs are only recorded when they actually contain files. RomFS-only updates keep working through the base fallback.
  • Intel banding fixed on Mesa ANV (#469) — conditional barriers were being stripped on ANV, and on Intel the shader recompiler deletes barriers inside loops and branches, so a compute shader sharing data between warps read stale shared memory. In Mario Kart World 1.8.0 this showed up as a banding pattern over the whole image on an ARC 390. Barriers are now only stripped for Intel's proprietary Windows driver, so the Windows reports in #130 and #66 take the same path.
  • Shader: H0_NH1 mixed-sign half source — it now swaps the packed FP16 halves before negating the new low half, instead of negating only the upper component. Programs using it previously failed with "native half mixed-sign source mode" and were skipped.
  • Tests — global_address_tracking gained a stub shader environment, so the test target builds again after its outdated GlobalMemoryToStorageBuffer-era call.
  • CI — the fork-only local build workflow was removed.

Known limitation of the NUP fix: a full race and long-session stability were not tested; the platform-classification checks and a boot to the Mario Kart World title screen were.

Changes since build-206 (c54bc22…d6efc8e), full compare.

All commits in this build
  • d6efc8ef08 refactor: remove unused variable is_intel_anv from Device constructor
  • 4b1a1823ea test: enhance StubEnvironment with additional methods for shader testing
  • 9279b24e4c nup_container: treat a contentless ExeFS as absent
  • d9558f05a2 Merge pull request #469 from ah-/fix/anv-conditional-barriers
  • d2f6956a1a ci: remove fork-only local build workflow
  • 662545c5b0 shader: correct H0_NH1 mixed-sign half source
  • 77952c8d8c shader: fix H0_NH1 mixed-sign native half source
  • 39c42e645b Merge pull request #512 from Mcm190/fix/nup-update-platform
  • 24c9b2b0ba core: detect NUP platform from the update ExeFS
  • 9de583e1b9 vulkan: stop stripping conditinal barriers on Mesa ANV

Automatic build of nx2 at d6efc8e.

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.