ValveSoftware / gamescope

SteamOS session compositing window manager
Other
3.17k stars 213 forks source link

WaylandBackend: Re-map toplevel upon becoming visible #1611

Open layercak3 opened 2 weeks ago

layercak3 commented 2 weeks ago

When becoming invisible, a NULL buffer is attached to the toplevel's surface which unmaps it. The compositor resets their state and the surface may also be considered unconfigured. Upon becoming visible, the surface must be re-mapped using the same process during initialization (commit without a buffer and wait for configure) before we begin attaching an actual buffer. The default properties should also be recovered.

Fixes: https://github.com/ValveSoftware/gamescope/issues/1456 Fixes: https://github.com/ValveSoftware/gamescope/issues/1451 (probably) Fixes: https://github.com/ValveSoftware/gamescope/issues/1488 (probably) Fixes: https://github.com/ValveSoftware/gamescope/issues/1533

layercak3 commented 1 week ago

I was able to hit assert( !m_Planes[0].GetCurrentState() ); somewhere according to some recent coredump, so I need to change that at some point.