On 2021-05-27 11:51 p.m., Marek Olšák wrote: > > 3) Compositors (and other privileged processes, and display flipping) can't trust imported/exported fences. They need a timeout recovery mechanism from the beginning, and the following are some possible solutions to timeouts: > > a) use a CPU wait with a small absolute timeout, and display the previous content on timeout > b) use a GPU wait with a small absolute timeout, and conditional rendering will choose between the latest content (if signalled) and previous content (if timed out) > > The result would be that the desktop can run close to 60 fps even if an app runs at 1 fps. FWIW, this is working with https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1880 , even with implicit sync (on current Intel GPUs; amdgpu/radeonsi would need to provide the same dma-buf poll semantics as other drivers and high priority GFX contexts via EGL_IMG_context_priority which can preempt lower priority ones). -- Earthling Michel Dänzer | https://redhat.com Libre software enthusiast | Mesa and X developer