Skip to content

Releases

Steam Deck OLED — green boy (ocarina) test build (13034afe, #614+201)

Choose a tag to compare

@github-actions github-actions released this 05 Nov 14:28

Steam Deck OLED test build. Target: the green boy with the ocarina, on
SteamOS / RADV (Van Gogh). Use the x86_64 (amd64) Linux AppImage; the
aarch64 builds are not for the Deck. This is not a build for Switch or
Switch 2 hardware.

Status: base build (13034afe, Eglantine-Community#614 + vi2 201). Title screen and 2D UI render;
starting a new game crashes on the new-engine / invalid-format path. Superseded by
later test/deck-oled builds.

See DECK-OLED.md.


Test build of branch test/deck-oled at e2e9d1d.

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

Changes on top of nx2

  • base stand-in + display command 201 (638a8f4264)
  • test build trigger (e2e9d1d31e)

Steam Deck OLED — storage-buffer fix (5f90244, non-PGO)

Choose a tag to compare

@github-actions github-actions released this 05 Nov 16:31

Steam Deck OLED test build. Target: the green boy with the ocarina, on
SteamOS / RADV (Van Gogh). Use the x86_64 (amd64) Linux AppImage; the
aarch64 builds are not for the Deck. This is not a build for Switch or
Switch 2 hardware.

Tested status

  • Boots; audio works; intro videos play (the docked/1x profile can lose video).
  • New Game survives the intro with EDEN_NX2_TENSOR=stub.
  • Interactive gameplay is not reached; the 3D world is still black.
  • This build adds the storage-buffer pointer tracking (ShuffleIndex) and native
    graphics SSBO sizing, plus the query-cache/MEE flush.
  • With stub, the earlier unmapped-read loop is gone. The next failure is a
    puller-method burst at ~252 s, a bogus depth format 0x200205f2, and a host
    SIGSEGV. With no tensor override the world-load path still needs work.

Profiles

  • EDEN_NX2_PROFILE=handheld (default): 0.75x/FSR/BC3, EDEN_NX2_TENSOR=stub.
    Known: videos + audio, world black.
  • EDEN_NX2_PROFILE=docked: 1x, tensor unset, the config the upstream RADV
    report says renders the world. Last test: videos audio-only.

Launcher environment used

  • EDEN_NX2_SPLIT=2
  • EDEN_NX2_FENCE_BATCH=1
  • EDEN_NX2_REJECT_HASH=c72b6ea746c00433
  • EDEN_NX2_INLINE_PAGE_WRITES=0
  • no PULSE_SERVER override

See HANDOFF.md.


Test build of branch test/deck-oled at 5f90244 (non-PGO).

Steam Deck OLED — guard build (83c1a00)

Choose a tag to compare

@github-actions github-actions released this 05 Nov 15:34

Steam Deck OLED test build. Target: the green boy with the ocarina, on
SteamOS / RADV (Van Gogh). Use the x86_64 (amd64) Linux AppImage; the
aarch64 builds are not for the Deck. This is not a build for Switch or
Switch 2 hardware.

Tested status (Steam Deck OLED)

  • Boots; audio and all intro videos work (Ganon, title, owl scenes).
  • Title screen, menus and 2D UI render.
  • New Game survives the intro movies without the emulator process dying.
  • It does not enter interactive gameplay. The screen goes black and there
    are no gameplay sounds (no footsteps, roll, text blips), so input is not
    reaching a running game world.

Known issue

At the world-load transition the culling compute shaders broadcast a buffer
pointer to their subgroup. Eglantine loses the storage-buffer bounds, falls back
to global memory and then loops on an unmapped read (0x200120ad21143a9a). The
GPU/render thread stalls at that point, which is why the screen stays black and
silent.

The next build adds the two fixes from upstream:

  • follow ShuffleIndex when finding native storage-buffer pointers
  • size native graphics storage buffers like compute ones

Launcher environment used for this test

  • EDEN_NX2_TENSOR=stub
  • EDEN_NX2_SPLIT=2
  • EDEN_NX2_FENCE_BATCH=1
  • EDEN_NX2_REJECT_HASH=c72b6ea746c00433
  • EDEN_NX2_INLINE_PAGE_WRITES=0
  • no PULSE_SERVER override

See DECK-OLED.md.


Test build of branch test/deck-oled at 83c1a00.

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

Steam Deck OLED — guard + fog fix (3ba4df78)

Choose a tag to compare

@github-actions github-actions released this 05 Nov 15:41

Steam Deck OLED test build. Target: the green boy with the ocarina, on
SteamOS / RADV (Van Gogh). Use the x86_64 (amd64) Linux AppImage; the
aarch64 builds are not for the Deck. This is not a build for Switch or
Switch 2 hardware.

Status: guard build + the native-MME query-cache flush at 3ba4df78. The flush
stops stale occlusion predicates from clearing depth and drawing fog over the scene.

Set current to this build's squashfs-root and launch the Steam shortcut.

See DECK-OLED.md.


Test build of branch test/deck-fog at 3ba4df78.

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

Changes on top of nx2

  • flush pending query writes before native MME DMA reads
  • crash guards for invalid image extents and unimplemented new-engine methods
  • Deck labeling and build docs
  • display command 201 + base stand-in (Eglantine-Community#614)

Eglantine Branch: test/deck-oled

Pre-release

Choose a tag to compare

Test build of branch test/deck-oled at 1edb89b.

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

Commits on top of nx2

  • docs: handoff state for parallel investigation (2026-11-06) (1edb89b310)
  • [Steam Deck OLED] fix native storage-buffer tracking for broadcast pointers (5f90244581)
  • macro: flush pending query writes before native MME DMA reads (2d8a06a38f)
  • [Steam Deck OLED] docs: use the neutral build name in repo text (b5b0c95521)
  • [Steam Deck OLED] ci: label OoT Deck releases and point to DECK-OLED.md (83c1a00f71)
  • [Steam Deck OLED] docs: label fork/branch/build scope (OoT 0400486024DEC000) (9ec939b0d2)
  • test: guard invalid image extents and non-fatal new puller engine (OoT 3D) (080f51562a)
  • ci: trigger OoT full build (e2e9d1d31e)
  • test: OoT full (Eglantine-Community#614 stand-in + vi2 201) (638a8f4264)

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

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