From bf7b2311e7a31a76211608053b5a76d378d794e2 Mon Sep 17 00:00:00 2001 From: Marius Vlad Date: Sun, 1 Dec 2024 23:05:23 +0200 Subject: [PATCH] gl-renderer: Take direct-display into consideration The buffer_init function added with commit 83b37c0ac4, "renderers: pull dmabuf initial setup out of attach", doesn't take into consideration the the buffer's direct-display property. Previously, gl_renderer_attach_dmabuf, wasn't being called when dmabuf's direct-display was turned on, but with commit 83b37c0ac4 this has been changed. So with commit 83b37c0ac4, linux_dmabuf_buffer_get_user_data will never return a valid gb (gl buffer state), causing a crash using direct-display extension. This adds an explicit check to return early when this happens. Fixes: 83b37c0ac4, "renderers: pull dmabuf initial setup out of attach" Signed-off-by: Marius Vlad --- libweston/renderer-gl/gl-renderer.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libweston/renderer-gl/gl-renderer.c b/libweston/renderer-gl/gl-renderer.c index f92e5a307..75188116d 100644 --- a/libweston/renderer-gl/gl-renderer.c +++ b/libweston/renderer-gl/gl-renderer.c @@ -3617,7 +3617,8 @@ gl_renderer_buffer_init(struct weston_compositor *etc, { struct gl_buffer_state *gb; - if (buffer->type != WESTON_BUFFER_DMABUF) + if (buffer->type != WESTON_BUFFER_DMABUF || + (buffer->type == WESTON_BUFFER_DMABUF && buffer->direct_display)) return; /* Thanks to linux-dmabuf being totally independent of libweston,