From e92b272616ecd6618d2568c4e8d07228447ff72a Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Fri, 7 Oct 2022 14:19:26 +0200 Subject: [PATCH] output/render: make output_ensure_buffer() no-op when missing renderer Some compositors want to have full control over the buffers attached to the output, and don't want to use the internal swapchain. Such compositors include KWinFT (allocates its buffers on its own) and gamescope (uses a headless output without any buffers). Let's just make output_ensure_buffer() a no-op in that case. --- types/output/render.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/types/output/render.c b/types/output/render.c index 9e0b77c3..4ccfb70d 100644 --- a/types/output/render.c +++ b/types/output/render.c @@ -191,6 +191,12 @@ bool output_ensure_buffer(struct wlr_output *output, return true; } + // If the compositor hasn't called wlr_output_init_render(), they will use + // their own logic to attach buffers + if (output->renderer == NULL) { + return true; + } + // If we're lighting up an output or changing its mode, make sure to // provide a new buffer bool needs_new_buffer = false;