Wayland: add switch to disable implicit sync interop Mali kbase and mutter 43 ignore implicit dma-buf fences, so committing before the GPU finishes shows half-drawn frames. With the switch, the GPU process waits for its own fences before commit. --- a/ui/ozone/platform/wayland/host/wayland_buffer_manager_host.cc +++ b/ui/ozone/platform/wayland/host/wayland_buffer_manager_host.cc @@ -11,6 +11,7 @@ #include #include +#include "base/command_line.h" #include "base/functional/bind.h" #include "base/i18n/number_formatting.h" #include "base/logging.h" @@ -73,6 +74,13 @@ } bool CheckImportExportFence() { + // Mali kbase ignores implicit dma-buf fences: let the GPU process wait for + // its own fences before commit instead. + if (base::CommandLine::ForCurrentProcess()->HasSwitch( + "disable-wayland-implicit-sync-interop")) { + return false; + } + KernelVersion ver = KernelVersionNumbers(); // DMA_BUF_IOCTL_{IMPORT,EXPORT}_SYNC_FILE was added in 6.0