protonscr

Overlay Vulkan layer stack-overflows in VulkanSteamOverlayPresent and kills DELTARUNE (publicbeta 20260929221822)

steamclosed overlayProton
ValveSoftware/steam-for-linux#13669 · opened 2026-09-30 by chickenr1ce · updated 2026-10-02 · 6 comments · github
Cchickenr1ce 2026-09-30 github

Your system information

  • Steam client version (build number or date): 1790721607 (publicbeta; updater built Sep 29 2026 22:18:16, gameoverlayui 20260929221822)
  • Distribution (e.g. Ubuntu): CachyOS
  • Opted into Steam client beta?: Yes (publicbeta)
  • Have you checked for system updates?: Yes
  • Steam Logs: steam-logs.tar.gz
  • GPU: AMD (Radeon RX 9070, Mesa radv 26.2.3, kernel 7.2.8)

Please describe your issue in as much detail as possible:

With this client build, DELTARUNE (GameMaker, D3D11 through DXVK) exits a few
seconds after its window appears, whether or not the per-game overlay setting is
on. The game does not crash on its own. The overlay's Vulkan layer overflows the
stack inside gameoverlayrenderer.so on a vkQueuePresentKHR, which kills the
process. 0xc00000fd is STACK_OVERFLOW.

From PROTON_LOG=1 with DELTARUNE (appid 1671210) on Proton Experimental:

5245.897:0150:01b8:warn:seh:handle_syscall_fault backtrace: --- Exception 0xc00000fd at 0x7fa32cd2a7b0: /tmp/pressure-vessel-libs-yXl0n9/lib/gameoverlayrenderer.so + 0x577b0.
5245.897:0150:01b8:warn:seh:dwarf_virtual_unwind backtrace: 0x7fa32cd31b33: /tmp/pressure-vessel-libs-yXl0n9/lib/gameoverlayrenderer.so + 0x5eb33 (VulkanSteamOverlayPresent + 0xe3).
5245.897:0150:01b8:warn:seh:dwarf_virtual_unwind backtrace: 0x7fa2f24f19da: /home/alexiz/.local/share/Steam/ubuntu12_64/steamoverlayvulkanlayer.so + 0x509da (vkQueuePresentKHR + 0x32a).
5245.897:0150:01b8:err:vulkan:vkQueuePresentKHR Exception 0xc00000fd in Unix call.

This is a regression in the client beta. The same machine, the same Proton, the
same prefix and the same game files ran fine two days earlier.

  • 2026-09-28, publicbeta, gameoverlayui 20260927212149. DELTARUNE ran normally.
  • 2026-09-30, publicbeta, gameoverlayui 20260929221822. The game exits a few seconds after launch, every time.

The overlay is responsible, not the game or Proton.

  • Launching the same executable directly through SteamLinuxRuntime_4's
    _v2-entry-point --verb=waitforexitandrun -- <proton> waitforexitandrun ./DELTARUNE.exe, with no overlay injected, runs indefinitely. I tested this
    with both proton-cachyos-slr and Proton Experimental.
  • Setting
    VK_LOADER_LAYERS_DISABLE=VK_LAYER_VALVE_steam_overlay_64,VK_LAYER_VALVE_steam_overlay_32
    for the Steam launch makes the same launch run normally.

I could not reproduce this with another Proton title on the same client, so the
trigger appears specific to how DELTARUNE presents rather than to DXVK generally.
Coral Island (appid 1158160), D3D11 through DXVK v3.1.1, ran past 60 seconds on
the same runtime (SteamLinuxRuntime_4) and the same Proton (Experimental), with
ENABLE_VK_LAYER_VALVE_steam_overlay_1=1 and gameoverlayrenderer.so in
LD_PRELOAD, and it presented frames. The layer was active and it did not crash.

One detail may be relevant. In the DELTARUNE log the overflow happens immediately
after DXVK recreates the swapchain, going from 640x480 to 2560x1440 as the game
goes fullscreen. Coral Island created its swapchain once at 2560x1440 and never
recreated it.

Unticking "Enable the Steam Overlay while in-game" for the game does not avoid
this, which is worth noting because it is the workaround suggested for this class
of crash. Steam sets SteamNoOverlayUI=1, but it still sets
ENABLE_VK_LAYER_VALVE_steam_overlay_1=1 and still adds gameoverlayrenderer.so
to LD_PRELOAD. The Vulkan layer therefore loads and VulkanSteamOverlayPresent
still runs. I read this from /proc/<pid>/environ of the launched game process
with the checkbox cleared.

The layer's own disable switch does not work either. With
DISABLE_VK_LAYER_VALVE_steam_overlay_1=1 set (the disable_environment in
steamoverlay_x86_64.json), vulkaninfo --summary still lists both
VK_LAYER_VALVE_steam_overlay_64 and VK_LAYER_VALVE_steam_overlay_32. Only
VK_LOADER_LAYERS_DISABLE removes them.

For reference, the stable client at the time (1788652215, gameoverlayui
20260903013152) did not have this issue.

Steps for reproducing this issue:

  1. Launch DELTARUNE (appid 1671210). The per-game overlay setting does not matter.
  2. The window opens, then the process exits within roughly 5 to 20 seconds.
  3. With PROTON_LOG=1 the log shows Exception 0xc00000fd raised from
    VulkanSteamOverlayPresent (gameoverlayrenderer.so) via vkQueuePresentKHR
    (steamoverlayvulkanlayer.so).
GGol-D-Ace 2026-09-30 github

I can confirm this behavior as well for the Cemu 2.6 Appimage.

Also as soon as Cemu tries to render the first frame.

cemu.txt

VVixenin 2026-09-30 github

I have the same issue on every single game that uses proton

SSirius902 2026-10-01 github

I think I'm having this same issue in Phasmophobia (appid 739630) after a surprise Steam Client update on September 29 (Steam Beta Update 1790721607, SteamRT3). Crashes 100% of the time, on several different compat tools, anywhere from instantly after launch to a second or so after the lobby's 3D scene loads. I'm on NixOS unstable, kernel 6.18.54, Radeon RX 9070 XT, Mesa radv 26.2.3.

Unlike in the original report, launching with DISABLE_VK_LAYER_VALVE_steam_overlay_1=1 seems to fix the issue completely for me.

Here's one of the crashes I recorded:

warn:seh:handle_syscall_fault backtrace: --- Exception 0xc0000005 at 0x7b3e08d2d980: ~/.local/share/Steam/steamrt64/gameoverlayrenderer.so + 0x5f980.
warn:seh:dwarf_virtual_unwind backtrace: 0x7b3e08d2daab: ~/.local/share/Steam/steamrt64/gameoverlayrenderer.so + 0x5faab.
warn:seh:dwarf_virtual_unwind backtrace: 0x7b3e08d3215c: ~/.local/share/Steam/steamrt64/gameoverlayrenderer.so + 0x6415c.
warn:seh:dwarf_virtual_unwind backtrace: 0x7b3e08d35dc2: ~/.local/share/Steam/steamrt64/gameoverlayrenderer.so + 0x67dc2 (VulkanSteamOverlayPresent + 0x142).
warn:seh:dwarf_virtual_unwind backtrace: 0x7b3dee8219da: ~/.local/share/Steam/ubuntu12_64/steamoverlayvulkanlayer.so + 0x509da (vkQueuePresentKHR + 0x32a).
err:vulkan:vkQueuePresentKHR Exception 0xc0000005 in Unix call.
Aalureon 2026-10-01 github

This looks like a use-after-free in gameoverlayrenderer.so. When the swapchain is recreated and the old renderer object is freed, a global still holds a pointer to it and on the next frame accesses it and causes the crash.

GGol-D-Ace 2026-10-01 github

Just want to note that this is not isolated to proton.
This affects everything started through steam with the game overlay being injected.

Unfortunately I need it because of the steam controller and the fixed rumble (the beta client).

[Gamescope WSI] Swapchain received new refresh cycle: 16.66ms
[Gamescope WSI] Destroying swapchain: 0x7f2f6827a6f0
[Gamescope WSI] Destroyed swapchain: 0x7f2f6827a6f0
[Gamescope WSI] Creating swapchain for xid: 0x400045 - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_SRGB - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: true
[Gamescope WSI] Created swapchain for xid: 0x400045 swapchain: 0x7f2f680292c0 - imageCount: 3
Error: signal 11:
/home/ace/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so(+0x577b0) [0x7f2f902017b0]
/usr/lib/libc.so.6(+0x3e6f0) [0x7f2f8fc3e6f0]
/home/ace/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so(+0x577b0) [0x7f2f902017b0]
/home/ace/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so(+0x578b7) [0x7f2f902018b7]
/home/ace/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so(+0x5b2dc) [0x7f2f902052dc]
/home/ace/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so(VulkanSteamOverlayPresent+0xe3) [0x7f2f90208b33]+0xe3) [0x7f2f90208b33]
/home/ace/.local/share/Steam/ubuntu12_64/steamoverlayvulkanlayer.so(vkQueuePresentKHR+0x32a) [0x7f2f6475a9da]+0x32a) [0x7f2f6475a9da]
/tmp/.mount_Cemu-2kpFnME/AppRun.wrapped(VulkanRenderer::SwapBuffer(bool)+0x37b) [0x559bccd0123b]
/tmp/.mount_Cemu-2kpFnME/AppRun.wrapped(VulkanRenderer::SwapBuffers(bool, bool)+0x49) [0x559bccd014d9]
/tmp/.mount_Cemu-2kpFnME/AppRun.wrapped(LatteCP_ProcessRingbuffer()+0xc18) [0x559bccc71c98]
/tmp/.mount_Cemu-2kpFnME/AppRun.wrapped(Latte_ThreadEntry()+0x2ff) [0x559bcc9712af]
/usr/lib/libstdc++.so.6(+0xea859) [0x7f2f8e6ea859]
/usr/lib/libc.so.6(+0x98042) [0x7f2f8fc98042]
/usr/lib/libc.so.6(+0x12072c) [0x7f2f8fd2072c]
Segmentation fault!

Stacktrace and additional info written to:
/home/ace/.local/share/Cemu/log.txt
09/30 07:24:35 minidumps folder is set to /tmp/dumps
09/30 07:24:35 Init: Installing breakpad exception handler for appid(gameoverlayui)/version(20260929221822)/tid(3456149)
09/30 07:24:35 Init: Installing breakpad exception handler for appid(gameoverlayui)/version(1.0)/tid(3456149)
[gamescope] [Info] launch: Primary child shut down!
(EE) failed to read Wayland events: Broken pipe
09/30 07:24:35 minidumps folder is set to /tmp/dumps
09/30 07:24:35 Init: Installing breakpad exception handler for appid(gameoverlayui)/version(20260929221822)/tid(3456155)
09/30 07:24:35 Init: Installing breakpad exception handler for appid(gameoverlayui)/version(1.0)/tid(3456155)
Game Recording - game stopped [gameid=16170775972277125120]
Removing process 3454638 for gameID 16170775972277125120
Removing process 3454546 for gameID 16170775972277125120
Removing process 3454547 for gameID 16170775972277125120
Removing process 3454544 for gameID 16170775972277125120
Removing process 3454545 for gameID 16170775972277125120
Removing process 3454542 for gameID 16170775972277125120
Removing process 3454540 for gameID 16170775972277125120
Removing process 3454541 for gameID 16170775972277125120
Removing process 3454533 for gameID 16170775972277125120
Removing process 3454530 for gameID 16170775972277125120
Removing process 3454516 for gameID 16170775972277125120
Removing process 3454448 for gameID 16170775972277125120
reaping pid: 3456149 -- gameoverlayui
reaping pid: 3456078 -- gameoverlayui
reaping pid: 3456155 -- gameoverlayui

GGol-D-Ace 2026-10-02 github

Cemu Appimage and other Proton games that showed this behavior for me got fixed with 1790904859

Thank you

Cchickenr1ce 2026-10-02 github

Fixed for me as well on 1790904859. DELTARUNE now launches and runs with the overlay enabled and no launch options set, gonna close this.

Related threads

Proton versions

Launch options

Error codes