HYL_OK3568_LINUX/yocto/meta-rockchip/recipes-graphics/wayland/weston_10.0.2/0046-HACK-gl-renderer-Fix-random-hang-during-hotplug.patch
2025-05-10 21:49:39 +08:00

39 lines
1.4 KiB
Diff

From 73fc5e13c266d83b46bae30b984b249ea337b965 Mon Sep 17 00:00:00 2001
From: Jeffy Chen <jeffy.chen@rock-chips.com>
Date: Mon, 19 Apr 2021 09:40:10 +0800
Subject: [PATCH 46/79] HACK: gl-renderer: Fix random hang during hotplug
Try to bind to a valid output before attaching buffers for mali.
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
---
libweston/renderer-gl/gl-renderer.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/libweston/renderer-gl/gl-renderer.c b/libweston/renderer-gl/gl-renderer.c
index 0947efd..15b2292 100644
--- a/libweston/renderer-gl/gl-renderer.c
+++ b/libweston/renderer-gl/gl-renderer.c
@@ -1913,6 +1913,7 @@ gl_renderer_flush_damage(struct weston_surface *surface)
const struct weston_testsuite_quirks *quirks =
&surface->compositor->test_data.test_quirks;
struct gl_surface_state *gs = get_surface_state(surface);
+ struct gl_renderer *gr = get_renderer(surface->compositor);
struct weston_buffer *buffer = gs->buffer_ref.buffer;
struct weston_view *view;
bool texture_used;
@@ -1934,6 +1935,10 @@ gl_renderer_flush_damage(struct weston_surface *surface)
texture_used = false;
wl_list_for_each(view, &surface->views, surface_link) {
if (view->plane == &surface->compositor->primary_plane) {
+ /* HACK: Mali needs a valid context for uploading */
+ if (gr->is_mali_egl && view->output)
+ use_output(view->output);
+
texture_used = true;
break;
}
--
2.20.1