added my Recipes
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
From 454b7a0237be35a9b2d76b5ad5611c0b0ea7a802 Mon Sep 17 00:00:00 2001
|
||||
From: Yannick Fertre <yannick.fertre@foss.st.com>
|
||||
Date: Wed, 10 May 2023 17:26:33 +0200
|
||||
Subject: [PATCH 1/4] Clone mode not supported
|
||||
|
||||
Display controller doesn't support several outputs.
|
||||
During a head changed, get & close the weston head which is enabled.
|
||||
Then an output can enabled (only one even if several output have
|
||||
connected).
|
||||
|
||||
Signed-off-by: Yannick Fertre <yannick.fertre@foss.st.com>
|
||||
---
|
||||
compositor/main.c | 23 +++++++++++++++--------
|
||||
1 file changed, 15 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/compositor/main.c b/compositor/main.c
|
||||
index 15f9d4e..3c239ba 100644
|
||||
--- a/compositor/main.c
|
||||
+++ b/compositor/main.c
|
||||
@@ -2570,22 +2570,29 @@ drm_heads_changed(struct wl_listener *listener, void *arg)
|
||||
/* We need to collect all cloned heads into outputs before enabling the
|
||||
* output.
|
||||
*/
|
||||
+ while ((head = weston_compositor_iterate_heads(compositor, head))) {
|
||||
+ enabled = weston_head_is_enabled(head);
|
||||
+
|
||||
+ if (enabled) {
|
||||
+ drm_head_disable(head);
|
||||
+ weston_head_reset_device_changed(head);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
while ((head = weston_compositor_iterate_heads(compositor, head))) {
|
||||
connected = weston_head_is_connected(head);
|
||||
enabled = weston_head_is_enabled(head);
|
||||
- changed = weston_head_is_device_changed(head);
|
||||
forced = drm_head_should_force_enable(wet, head);
|
||||
|
||||
if ((connected || forced) && !enabled) {
|
||||
+ /*
|
||||
+ * Prepare & enable only the first head connected.
|
||||
+ * CRTC doesn't support several output.
|
||||
+ */
|
||||
drm_head_prepare_enable(wet, head);
|
||||
- } else if (!(connected || forced) && enabled) {
|
||||
- drm_head_disable(head);
|
||||
- } else if (enabled && changed) {
|
||||
- weston_log("Detected a monitor change on head '%s', "
|
||||
- "not bothering to do anything about it.\n",
|
||||
- weston_head_get_name(head));
|
||||
+ weston_head_reset_device_changed(head);
|
||||
+ break;
|
||||
}
|
||||
- weston_head_reset_device_changed(head);
|
||||
}
|
||||
|
||||
if (drm_process_layoutputs(wet) < 0)
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
From 953cbf79c877b4bb4af7c54cfaa779da346513f5 Mon Sep 17 00:00:00 2001
|
||||
From: Christophe Priouzeau <christophe.priouzeau@foss.st.com>
|
||||
Date: Fri, 24 Mar 2023 11:58:06 +0100
|
||||
Subject: [PATCH 2/4] Disable request to EGL_DRM_RENDER_NODE_FILE_EXT
|
||||
|
||||
Depending on GPU userland implementationn the reqest of EGL_DRM_RENDER_NODE_FILE_EXT
|
||||
return /dev/dri/renderD128 but this interface are not always present.
|
||||
|
||||
Signed-off-by: Christophe Priouzeau <christophe.priouzeau@foss.st.com>
|
||||
---
|
||||
libweston/renderer-gl/egl-glue.c | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/libweston/renderer-gl/egl-glue.c b/libweston/renderer-gl/egl-glue.c
|
||||
index 8a0381c..90f499f 100644
|
||||
--- a/libweston/renderer-gl/egl-glue.c
|
||||
+++ b/libweston/renderer-gl/egl-glue.c
|
||||
@@ -481,9 +481,9 @@ gl_renderer_set_egl_device(struct gl_renderer *gr)
|
||||
gl_renderer_log_extensions(gr, "EGL device extensions", extensions);
|
||||
|
||||
/* Try to query the render node using EGL_DRM_RENDER_NODE_FILE_EXT */
|
||||
- if (weston_check_egl_extension(extensions, "EGL_EXT_device_drm_render_node"))
|
||||
- gr->drm_device = gr->query_device_string(gr->egl_device,
|
||||
- EGL_DRM_RENDER_NODE_FILE_EXT);
|
||||
+/* if (weston_check_egl_extension(extensions, "EGL_EXT_device_drm_render_node"))*/
|
||||
+/* gr->drm_device = gr->query_device_string(gr->egl_device,*/
|
||||
+/* EGL_DRM_RENDER_NODE_FILE_EXT);*/
|
||||
|
||||
/* The extension is not supported by the Mesa version of the system or
|
||||
* the query failed. Fallback to EGL_DRM_DEVICE_FILE_EXT */
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
From 3ca655e561099b11c70961c5132bbab8fa3f0c63 Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Yves MORDRET <pierre-yves.mordret@foss.st.com>
|
||||
Date: Tue, 9 May 2023 15:06:09 +0200
|
||||
Subject: [PATCH 3/4] Revert "compositor: improve opacity handling for scaled
|
||||
surfaces"
|
||||
|
||||
This reverts commit 81912dc2a69f24c8fbcb43a2bc1f7860f3085c01.
|
||||
---
|
||||
libweston/compositor.c | 13 +------------
|
||||
1 file changed, 1 insertion(+), 12 deletions(-)
|
||||
|
||||
diff --git a/libweston/compositor.c b/libweston/compositor.c
|
||||
index 6cfcba2..ff029f7 100644
|
||||
--- a/libweston/compositor.c
|
||||
+++ b/libweston/compositor.c
|
||||
@@ -1581,6 +1581,7 @@ weston_view_update_transform_enable(struct weston_view *view)
|
||||
surfbox = pixman_region32_extents(&surfregion);
|
||||
|
||||
view_compute_bbox(view, surfbox, &view->transform.boundingbox);
|
||||
+ pixman_region32_fini(&surfregion);
|
||||
|
||||
if (view->alpha == 1.0 &&
|
||||
matrix->type == WESTON_MATRIX_TRANSFORM_TRANSLATE) {
|
||||
@@ -1598,19 +1599,7 @@ weston_view_update_transform_enable(struct weston_view *view)
|
||||
matrix->d[12],
|
||||
matrix->d[13]);
|
||||
}
|
||||
- } else if (view->alpha == 1.0 &&
|
||||
- matrix->type < WESTON_MATRIX_TRANSFORM_ROTATE &&
|
||||
- pixman_region32_n_rects(&surfregion) == 1 &&
|
||||
- (pixman_region32_equal(&surfregion, &view->surface->opaque) ||
|
||||
- view->surface->is_opaque)) {
|
||||
- /* The whole surface is opaque and it is only translated and
|
||||
- * scaled and after applying the scissor, the result is still
|
||||
- * a single rectangle. In this case the boundingbox matches the
|
||||
- * view exactly and can be used as opaque area. */
|
||||
- pixman_region32_copy(&view->transform.opaque,
|
||||
- &view->transform.boundingbox);
|
||||
}
|
||||
- pixman_region32_fini(&surfregion);
|
||||
|
||||
return 0;
|
||||
}
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,78 @@
|
||||
From 0e3325c8409aa73e9a4168caa4b41f26155770ca Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Yves MORDRET <pierre-yves.mordret@foss.st.com>
|
||||
Date: Tue, 9 May 2023 15:06:25 +0200
|
||||
Subject: [PATCH 4/4] Revert "compositor: set transform.opaque for surfaces
|
||||
without alpha channel"
|
||||
|
||||
This reverts commit e2426960d479a84ad66ee865404a925d66d9a55b.
|
||||
---
|
||||
libweston/compositor.c | 46 +++++++++++++++++-------------------------
|
||||
1 file changed, 18 insertions(+), 28 deletions(-)
|
||||
|
||||
diff --git a/libweston/compositor.c b/libweston/compositor.c
|
||||
index ff029f7..867cb57 100644
|
||||
--- a/libweston/compositor.c
|
||||
+++ b/libweston/compositor.c
|
||||
@@ -1525,20 +1525,15 @@ weston_view_update_transform_disable(struct weston_view *view)
|
||||
view->geometry.x, view->geometry.y);
|
||||
|
||||
if (view->alpha == 1.0) {
|
||||
- if (view->surface->is_opaque) {
|
||||
- pixman_region32_copy(&view->transform.opaque,
|
||||
- &view->transform.boundingbox);
|
||||
- } else {
|
||||
- pixman_region32_copy(&view->transform.opaque,
|
||||
- &view->surface->opaque);
|
||||
- if (view->geometry.scissor_enabled)
|
||||
- pixman_region32_intersect(&view->transform.opaque,
|
||||
- &view->transform.opaque,
|
||||
- &view->geometry.scissor);
|
||||
- pixman_region32_translate(&view->transform.opaque,
|
||||
- view->geometry.x,
|
||||
- view->geometry.y);
|
||||
- }
|
||||
+ pixman_region32_copy(&view->transform.opaque,
|
||||
+ &view->surface->opaque);
|
||||
+ if (view->geometry.scissor_enabled)
|
||||
+ pixman_region32_intersect(&view->transform.opaque,
|
||||
+ &view->transform.opaque,
|
||||
+ &view->geometry.scissor);
|
||||
+ pixman_region32_translate(&view->transform.opaque,
|
||||
+ view->geometry.x,
|
||||
+ view->geometry.y);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1585,20 +1580,15 @@ weston_view_update_transform_enable(struct weston_view *view)
|
||||
|
||||
if (view->alpha == 1.0 &&
|
||||
matrix->type == WESTON_MATRIX_TRANSFORM_TRANSLATE) {
|
||||
- if (view->surface->is_opaque) {
|
||||
- pixman_region32_copy(&view->transform.opaque,
|
||||
- &view->transform.boundingbox);
|
||||
- } else {
|
||||
- pixman_region32_copy(&view->transform.opaque,
|
||||
- &view->surface->opaque);
|
||||
- if (view->geometry.scissor_enabled)
|
||||
- pixman_region32_intersect(&view->transform.opaque,
|
||||
- &view->transform.opaque,
|
||||
- &view->geometry.scissor);
|
||||
- pixman_region32_translate(&view->transform.opaque,
|
||||
- matrix->d[12],
|
||||
- matrix->d[13]);
|
||||
- }
|
||||
+ pixman_region32_copy(&view->transform.opaque,
|
||||
+ &view->surface->opaque);
|
||||
+ if (view->geometry.scissor_enabled)
|
||||
+ pixman_region32_intersect(&view->transform.opaque,
|
||||
+ &view->transform.opaque,
|
||||
+ &view->geometry.scissor);
|
||||
+ pixman_region32_translate(&view->transform.opaque,
|
||||
+ matrix->d[12],
|
||||
+ matrix->d[13]);
|
||||
}
|
||||
|
||||
return 0;
|
||||
--
|
||||
2.25.1
|
||||
|
||||
Reference in New Issue
Block a user