DadSchoorse / vkBasalt

a vulkan post processing layer for linux
zlib License
1.24k stars 52 forks source link

[GNU/Linux + Wayland] vkBasalt causes Wayland compositors stall when fullscreen windows are closed with ALT+F4 #234

Open vanfanel opened 8 months ago

vanfanel commented 8 months ago

Hello there,

Closing any Wayland fullscreen program (by closing it's window via ALT+F4 or similar key combination) with vkBasalt effects running makes the compositors choke: the same last two desktop frames are showed in an infinite loop, and keyboard input doesn't work until the wayland compositor is re-started. Quitting via normal menu options work.

Using killall -s QUIT or killall -s KILL, both kill the programs with no problems (no compositor choking on quit), so only closing a fullscreen window seems to be causing the problem.

It only happens when the program is doing screen updates: quitting during an static screen, there's no problem at all.

I am currently using a simple stacking Wayland compositor called labwc, which is wlroots-based, but I have seen the same on other wl-roots based compositors like cage. It also happens on Weston, the reference Wayland compositor (it's ALT+K on Weston to kill the topmost window).

Rabcor commented 7 months ago

What ALT+F4 does depends on the compositor when you're on wayland, on some of them it doesn't even do anything at all by default, it's probably SIGTERM though, but it could be SIGHUP or SIGKILL. Either way, if it causes wlroots compositors to stall, it points to an issue in wlroots (it's not supposed to stall)whether or not vkbasalt has an issue.

vanfanel commented 7 months ago

Thing is, the stall only happens with Intel graphics, doesn't seem to happen with VC4 Raspberry Pi), and using SIGKILL seems to avoid it. Puzzling indeed.

Rabcor commented 7 months ago

Well if you want a temporary workaround, just rebind your alt+f4 to do sigkill or sigquit instead of sigterm.