From 2bfaac0f5c4cd5ba2b6a478d70532e89b2ba5e0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Molinari?= Date: Sat, 3 Aug 2024 16:13:12 +0200 Subject: [PATCH] gl-renderer: Skip non-dummy rbs in get_dummy_renderbuffer() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit No backends currently create FBO or dma-buf renderbuffers on outputs associated to a window. This is theoretically possible though and should be allowed by the GL renderer. This commit prevents output_get_dummy_renderbuffer() from mixing up renderbuffer types. Signed-off-by: Loïc Molinari --- libweston/renderer-gl/gl-renderer.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/libweston/renderer-gl/gl-renderer.c b/libweston/renderer-gl/gl-renderer.c index 7c3d49b32..1b245f215 100644 --- a/libweston/renderer-gl/gl-renderer.c +++ b/libweston/renderer-gl/gl-renderer.c @@ -2183,15 +2183,17 @@ output_get_dummy_renderbuffer(struct weston_output *output) int max_buffers; wl_list_for_each(rb, &go->renderbuffer_list, link) { - /* Count dummy renderbuffers, age them, */ - count++; - rb->age++; - /* find the one with buffer_age to return, */ - if (rb->age == buffer_age) - ret = rb; - /* and the oldest one in case we decide to reuse it. */ - if (!oldest_rb || rb->age > oldest_rb->age) - oldest_rb = rb; + if (rb->type == RENDERBUFFER_DUMMY) { + /* Count dummy renderbuffers, age them, */ + count++; + rb->age++; + /* find the one with buffer_age to return, */ + if (rb->age == buffer_age) + ret = rb; + /* and the oldest one in case we decide to reuse it. */ + if (!oldest_rb || rb->age > oldest_rb->age) + oldest_rb = rb; + } } /* If a renderbuffer of correct age was found, return it, */