github Djihads80/Eglantine branch-nx2-experimental-efb9fb18
Eglantine Branch: nx2-experimental

pre-release46 minutes ago

Test build of branch nx2-experimental at efd41e3.

This is not a release. It is for testing, and the next push to the branch replaces it.

Commits on top of nx2

  • Revert "Revert "vk_pipeline_cache: keep Switch 2 pipelines built"" (0ba4606e27)
  • Revert "video_core: reduce native readbacks and fix MKW pacing" (edd84b7567)
  • Revert "vk_pipeline_cache: keep Switch 2 pipelines built" (095fd4b5ed)
  • nvdrv: count command list entries copied after a queued GPU map (7b1aeff913)
  • dma_pusher: count entries parsed from memory that differ from their submit-time copy (2c9263140d)
  • nvdrv: keep submit-time copies of entries no pending map covers (49d1e8cb74)
  • nvdrv: copy command lists submitted behind a queued GPU map later (74cd3b432e)
  • vulkan: keep task and mesh pipelines in their own disk cache file (bc121caf3e)
  • video_core: reuse the last memory layout interval during draw setup (d713f4462a)
  • video_core: batch GPU-written page marks by bitmap word (abb9ae8426)
  • video_core: count only memory-writing compute and DMA methods as split writers (dc5938b8bb)
  • perf(video_core): cache storage buffer bindings and continuous ranges per page table serial (c8415d0e80)
  • buffer_cache: skip unchanged words while binding clean buffers (1725659895)
  • video_core: skip resetting untouched buffer usage trackers (1b7995d89c)
  • video_core: define usage masks for empty and partial blocks (5778922694)
  • vk_pipeline_cache: keep sixteen sessions of used pipelines and save the list every 15 s (88ad4037e4)
  • vulkan: round the alpha test reference to 1/255 in the pipeline key (upstream #544) (3a4c00a3c9)
  • shader: find visited blocks and sibling order without full list scans (dc96fb139e)
  • vulkan: build a pipeline a draw or dispatch waits on instead of queueing behind others (56881674fe)
  • vulkan: build the cached pipelines boot skips on background threads (72f3c47996)
  • kepler_compute: stand in for Mario Kart World's docked photo mode upscale (5512454976)
  • externals: FFmpeg with AV1 on MinGW Windows (7f6f1d1289)
  • video_core: keep 4096 MaxContinuousRange answers per thread (292a68df46)
  • shader: mesh programs that output points or lines (743d5bbaed)
  • texture_cache: skip the upload of a new render target a clear overwrites whole (#141) (7d26d3b2fb)
  • core: serialize GPU dirty memory gathers (cc0fc78005)
  • vulkan: drop draws recorded after a graphics pipeline that failed to build (#142) (53c1fa18b4)
  • vk_scheduler: pause, don't reset, the occlusion counter at each submission (Ocarina white flashes) (#121) (226f92afdb)
  • common: retry early UMWAIT wakes until the Event deadline (#137) (5e2cdc9f1a)
  • common: retry unsignalled MWAITX wakes until the Event deadline (#120) (687a4943e0)
  • shader: count nested returns before moving demotes to the end (AMD black scene) (#127) (a539f224b9)
  • vulkan: skip tessellation pipelines the driver would refuse (3a7477111f)
  • vulkan: say why a draw was skipped, and cap async-build skips separately (8d356dfa56)
  • nx2: keep other threads out of the Vulkan scheduler while the split's back submits (23457ccf7b)
  • shader, video_core: run Ocarina's end-of-frame network through a compact software HMMA (e88024e6b0)
  • shader: gather each tap with its own offset when per-tap offsets stay dynamic (993a31c593)
  • shader: apply F2I constant-buffer abs and neg (9b27d7eac8)
  • shader: lower Ocarina's extended uniform, LEA and conversion forms by default (61bfe3dce6)
  • shader: fold multiplies by 0 and 1 again so Ocarina's sky ambient binds its buffer (954985d351)
  • skills: Balanced fences cost ~11 ms of front-thread time (545b852ba0)
  • buffer_cache: don't download GPU data over newer CPU writes (fe2cd8be2b)
  • shader, buffer_cache: turn the post-90ff431884 runtime changes back off by default (87bd90ae35)
  • skills: unattended lab runs are silent (fc6da12033)
  • skills: add the walk survey script, with captures that report failures (7e63dcff49)
  • skills: flash watch for 1-2 frame artifacts (83d10df33c)
  • nx2_gsv: EDEN_NX2_FLASH_WATCH counts near-white pixels and keeps the flashing frames (4749c9436c)
  • buffer_cache: let the native bank re-upload cover banks of any size (8b3aff59e4)
  • skills: LOD vegetation flashes = compute programs rejected every frame (8dafde5150)
  • skills: oot_burst.sh takes a PRE camera sequence before the burst (346d825ed2)
  • shader: lower Ocarina's byte uniform loads, ULEA carries, F2IP pairs and I2F.U8 of a UR byte (9a69d8eaf0)
  • skills: white one-frame material flashes = stale native uniform bank (b213a58ab5)
  • buffer_cache: re-upload a native program's 64 KiB uniform bank on every bind (031e07436c)
  • skills: vendor the lab skill's split-hang reference and gdb wrapper (4a2dafae3e)
  • nx2_gsv: save a burst of consecutive presents on request (8fcdba8f88)
  • skills: reach OoT gameplay in ~130 s instead of ~180 s (9fa1702cce)
  • puller: release fences again while an acquire waits with delayed fence operations (90ff431884)
  • fence_manager: submit deferred work before waiting on our own fence (1b594aa6b6)
  • Revert "video_core: release fences that carry downloads after the downloads land (#72)" (3601b06b0f)
  • skills: switch GPU accuracy from the lab; split restart verification (17593e251b)
  • video_core: release fences that carry downloads after the downloads land (#72) (2cb4cc8bbb)
  • yuzu_cmd: set the GPU accuracy from the live keys file (0f40940b1e)
  • engines: hand the macros back to the engines when the GPU split stops (66b9ff826f)
  • skills: OoT white wash comes from culled vegetation; split check on Linux (65e5b1011d)
  • shader, video_core: bind storage buffers behind loaded pointers for OoT's vegetation (4ac9e703fe)
  • gpu_split: report back-owned scheduler use on Linux too (1789b05d94)
  • video_core: run the front's fence work, macro DMA flushes and maps on the split's back (3087c1cf07)
  • video_core: bump pipeline cache versions past the reverted constant folding (caec666a25)
  • Revert "shader: fold multiplies by 0 and 1 so Ocarina's sky ambient binds its buffer" (270732f525)
  • video_core: run front-side buffer flushes on the GPU split back thread (727a9a4eb4)
  • Revert "buffer_cache: bind native read-only storage buffers to the end of their mapping" (34f24ae551)
  • buffer_cache: bind native read-only storage buffers to the end of their mapping (1992f6ef99)
  • shader: fold multiplies by 0 and 1 so Ocarina's sky ambient binds its buffer (b1a0e3fbf8)
  • shader: shadow ISBEWR data registers (Ocarina door NaN) (#100) (582ecc4568)
  • shader: follow subgroup broadcasts when finding native storage buffer pointers (c58d474d32)
  • macro: flush pending query writes before native MME DMA reads (d83a7a346d)
  • buffer_cache: size native graphics storage buffers like compute ones (405e5f7ac8)
  • buffer_cache: upload CPU writes onto GPU-written pages instead of downloading them (575d0a5bfd)
  • buffer_cache: download only the Preflushable parts of a GPU write at fences (5d742e369e)
  • video_core: invalidate caches after MemoryManager::WriteBlock copies the data (8acfc248b3)
  • video_core: cache MaxContinuousRange until the GPU page table changes (47b4169b3f)
  • kernel: spin briefly before idling cores for Switch 2 titles (8dc1e6e9c4)
  • video_core: reduce native readbacks and fix MKW pacing (c10e07f400)
  • buffer_cache: re-upload a native program's 64 KiB uniform bank once per frame (5c7da2713a)
  • shader: pack FP16 texture results with c0 in the low half (29ed33831a)
  • shader: drop the U64 clamp from lowered SHF.R funnel immediates (223c752f44)
  • agents: OOT notes after the upscale stand-in fix (179dbdbb63)
  • video_core: upscale stand-in takes its images from the native program (dbf3417099)
  • agents: vendor the NX2 shader triage and lab automation skills (f3cc85c2a7)
  • nx2: scriptable shader lab control, live keys for eden-cli (ed5974a7ae)
  • nx2: save a screenshot with each diagnostics capture (29ca661970)
  • nx2: start the shader lab when the process starts (a2cf8b5a64)
  • nx2: remove a stale lab address before starting the shader lab (99ed21bad9)
  • nx2: start the shader lab from the emulator, add clear buttons (baf8906b2d)
  • nx2: add a per-draw pixels-written probe to the diagnostics (a06cd8323a)
  • nx2: add a live shader lab for the diagnostics (cd19eb541a)
  • nx2: add program keys to the diagnostics draw list (efb36199b4)
  • nx2: add draw and dispatch diagnostics (450331d35b)
  • tools/nx2: add shader triage and VMA analysis tools (fd1d5d4637)
  • shader: route untracked 32-bit global atomics to their storage buffer (6b934346d7)
  • shader: lower the rest of Ocarina's dumped native programs (19e25d0cfb)

Linux

The AppImage is self-contained (needs glibc 2.39 or newer: Ubuntu 24.04, Fedora 40, Debian 13, Arch): make it executable with chmod +x and run it. The 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
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) 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 · dmg macOS 15 or newer. Not notarized: right-click and choose Open the first time, or run . is inside the app, in .

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.