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