From 14e8560a58155682a0a4d7ca6c3191ad9cfe1584 Mon Sep 17 00:00:00 2001 From: Trigger Huang Date: Thu, 23 Apr 2026 13:19:02 +0800 Subject: [PATCH] renderer-gl: Add interface to set recovering status Expose a small recovery-state hook so the compositor and DRM backend can coordinate renderer rebuilds without duplicating GL renderer internals. Signed-off-by: Trigger Huang --- libweston/renderer-gl/gl-renderer-internal.h | 1 + libweston/renderer-gl/gl-renderer.c | 9 +++++++++ libweston/renderer-gl/gl-renderer.h | 2 ++ 3 files changed, 12 insertions(+) diff --git a/libweston/renderer-gl/gl-renderer-internal.h b/libweston/renderer-gl/gl-renderer-internal.h index 9c179183e..0afd4afe5 100644 --- a/libweston/renderer-gl/gl-renderer-internal.h +++ b/libweston/renderer-gl/gl-renderer-internal.h @@ -540,6 +540,7 @@ struct gl_renderer { int max_combined_texture_image_units; bool blend_state; + bool recovering; struct wl_list dmabuf_images; struct wl_list dmabuf_formats; diff --git a/libweston/renderer-gl/gl-renderer.c b/libweston/renderer-gl/gl-renderer.c index b9fec8941..1c1ba0d34 100644 --- a/libweston/renderer-gl/gl-renderer.c +++ b/libweston/renderer-gl/gl-renderer.c @@ -5730,11 +5730,20 @@ gl_renderer_setup(struct weston_compositor *ec) return 0; } +static void +gl_renderer_set_recovering(struct weston_compositor *ec, bool recovering) +{ + struct gl_renderer *gr = get_renderer(ec); + + gr->recovering = recovering; +} + WL_EXPORT struct gl_renderer_interface gl_renderer_interface = { .display_create = gl_renderer_display_create, .output_window_create = gl_renderer_output_window_create, .get_supported_rendering_formats = gl_renderer_get_supported_rendering_formats, .output_fbo_create = gl_renderer_output_fbo_create, .output_destroy = gl_renderer_output_destroy, + .set_recovering = gl_renderer_set_recovering, .create_fence_fd = gl_renderer_create_fence_fd, }; diff --git a/libweston/renderer-gl/gl-renderer.h b/libweston/renderer-gl/gl-renderer.h index 2afb9a953..689f43f58 100644 --- a/libweston/renderer-gl/gl-renderer.h +++ b/libweston/renderer-gl/gl-renderer.h @@ -184,6 +184,8 @@ struct gl_renderer_interface { void (*output_destroy)(struct weston_output *output); + void (*set_recovering)(struct weston_compositor *ec, bool recovering); + /* Create fence sync FD to wait for GPU rendering. * * Return FD on success, -1 on failure or unsupported