protonscr

Proton no longer respects immediate present mode

protonclosed
ValveSoftware/Proton#7850 · opened 2024-06-21 by rhoot · updated 2024-06-22 · 2 comments · github
Rrhoot 2024-06-21 github

In a wayland session, completely hidden windows running in proton usually drop to 1 FPS, e.g. when having them running in an inactive workspace. For many online games this is a problem as they will also only simulate at 1 FPS. Elden Ring will even flat out kick you from the online session after a few seconds.

As a workaround, there are a couple of env vars you can set to cause that not to happen. I don't know if the former is driver specific, but it works with Mesa's AMD vulkan driver at least:

MESA_VK_WSI_PRESENT_MODE=immediate
vk_xwayland_wait_ready=false

Setting those environment variables works in Proton 8.0-5, and stops the window from dropping to 1 FPS when in an inactive workspace. But it no longer works in Proton 9.0-2, nor in the current experimental release. In both of those, the FPS once again drops to 1 when the window's workspace becomes inactive.

Borrowing some system stats from KDE's settings and Steam's system info:

Operating System: EndeavourOS 
KDE Plasma Version: 6.1.0
KDE Frameworks Version: 6.3.0
Qt Version: 6.7.1
Kernel Version: 6.9.5-lqx1-1-lqx (64-bit)
Graphics Platform: Wayland
Processors: 32 × AMD Ryzen 9 5950X 16-Core Processor
Memory: 31,3 GiB of RAM
Graphics Processor: AMD Radeon RX 6900 XT

Video Card:
Driver: AMD AMD Radeon RX 6900 XT (radeonsi, navi21, LLVM 17.0.6, DRM 3.57, 6.9.5-lqx1-1-lqx)
Driver Version: 4.6 (Compatibility Profile) Mesa 24.1.1-arch1.1
HHansKristian-Work 2024-06-21 github

This is a Mesa issue. It does not account for VK_EXT_swapchain_maintenance1. In DXVK and vkd3d-proton we override the present on a per-present basis, and it overrides MESA_VK_WSI_PRESENT_MODE.

Rrhoot 2024-06-22 github

Thanks for that pointer! Reported as a mesa bug instead: https://gitlab.freedesktop.org/mesa/mesa/-/issues/11379

Proton versions

Launch options