hc
2023-02-13 e440ec23c5a540cdd3f7464e8779219be6fd3d95
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
From 30b6987c571fc838077d39c036a4fe8ce57cde5b 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/74] 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