From 163b138cfb22873de1e1bf253d57bf03154d1acd Mon Sep 17 00:00:00 2001 From: Adrian Rangel Date: Thu, 22 Oct 2026 10:31:03 -0600 Subject: [PATCH] headless: reuse parent Wayland buffer formats when nested (#451) --- src/backend/Headless.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/backend/Headless.cpp b/src/backend/Headless.cpp index 179b8505..c48b44e6 100644 --- a/src/backend/Headless.cpp +++ b/src/backend/Headless.cpp @@ -161,6 +161,16 @@ std::vector Aquamarine::CHeadlessBackend::getRenderFormats() { return impl->getRenderableFormats(); } + // A nested compositor allocates on its parent Wayland device. Reuse + // the advertised modifiers instead of assuming implicit/linear support. + for (const auto& impl : backend->getImplementations()) { + if (impl->type() != AQ_BACKEND_WAYLAND) + continue; + auto formats = impl->getRenderFormats(); + if (!formats.empty()) + return formats; + } + // formats probably supported by EGL return {SDRMFormat{.drmFormat = DRM_FORMAT_XRGB8888, .modifiers = {DRM_FORMAT_INVALID}}, SDRMFormat{.drmFormat = DRM_FORMAT_XBGR8888, .modifiers = {DRM_FORMAT_INVALID}},