Eglantine Branch: oot-optimization-fixes

Wait 5 sec.

Test build of branch oot-optimization-fixes at 7b1aeff.This is not a release. It is for testing, and the next push to the branch replaces it.Commits on top of nx2nvdrv: 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)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)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)shader: lower Ocarina 2D array, per-pixel offset and depth gathers (f1a5c6e04f)shader: lower Ocarina guarded uniform compares and uniform SEL (edf4eacc7d)shader: lower Ocarina CALL helpers, 64-bit shifts and high uniform forms (bb5998f497)shader: lower more Ocarina compute and high-register graphics forms (3f065ef733)shader: lower Ocarina ISETP.EX accumulation and F32 global reductions (350b7d8ffd)LinuxThe 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 TypeStandardPGO (Recommended)Notesamd64AppImage · tar.gzARM (aarch64)AppImage · tar.gzWindowsWindows packages are in-place zip files: extract and run eglantine.exe, or eden-cli.exe from a terminal.Build TypeStandardPGO (Recommended)Notesamd64 / x86_64 (MSVC)MSVC zipUse if you run into graphical issues on other buildsmacOSBuild TypeStandardPGO (Recommended)Notesarm64 (Apple Silicon)zip · dmgmacOS 15 or newer. Not notarized: right-click and choose Open the first time, or run . is inside the app, in .