Skip to content

Use custom page flip function when retrying failed flips

Erik Kurzinger requested to merge ekurzinger/mutter:master into master

When using its EGLStream-based presentation path with the proprietary NVIDIA driver, mutter will use a different function to process page flips - custom_egl_stream_page_flip. If that fails due to an EBUSY error, it will attempt to retry the flip. However, when retrying, it unconditionally uses the libdrm-based path. In practice, this causes a segfault when attempting to access plane_assignments->fb_id, since plane_assignments will be NULL in the EGLStream case. The issue can be reproduced reliably by VT-switching away from GNOME and back again while an EGL application is running.

This patch has mutter also use the custom page flip function when retrying the failed flip.

Merge request reports