added my Recipes

This commit is contained in:
2024-07-11 14:16:35 +02:00
parent 38bc4f53ac
commit 09b621d929
7118 changed files with 525762 additions and 3 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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