* [meta-ti][scarthgap/master][PATCH] recipes-graphics: Add weston fix for SGX from meta-arago
@ 2025-07-28 17:33 Andrew Davis
2025-07-28 19:32 ` Denys Dmytriyenko
2025-07-28 19:35 ` Ryan Eatmon
0 siblings, 2 replies; 6+ messages in thread
From: Andrew Davis @ 2025-07-28 17:33 UTC (permalink / raw)
To: Denys Dmytriyenko, Ryan Eatmon, meta-ti; +Cc: Andrew Davis
This change is needed due to the SGX driver, any distro, not just Arago,
using a TI SoC with SGX will need this fix, so it should go in meta-ti.
Signed-off-by: Andrew Davis <afd@ti.com>
---
.../wayland/weston-ti-version.inc | 7 ++
...equire-GL_EXT_unpack_subimage-commit.patch | 95 +++++++++++++++++++
.../wayland/weston_13.0.%.bbappend | 4 +
3 files changed, 106 insertions(+)
create mode 100644 meta-ti-bsp/recipes-graphics/wayland/weston-ti-version.inc
create mode 100644 meta-ti-bsp/recipes-graphics/wayland/weston/0001-Revert-require-GL_EXT_unpack_subimage-commit.patch
create mode 100644 meta-ti-bsp/recipes-graphics/wayland/weston_13.0.%.bbappend
diff --git a/meta-ti-bsp/recipes-graphics/wayland/weston-ti-version.inc b/meta-ti-bsp/recipes-graphics/wayland/weston-ti-version.inc
new file mode 100644
index 00000000..fafef724
--- /dev/null
+++ b/meta-ti-bsp/recipes-graphics/wayland/weston-ti-version.inc
@@ -0,0 +1,7 @@
+FILESEXTRAPATHS:prepend := "${THISDIR}/weston:"
+
+PR:append = ".ti-soc1"
+
+SRC_URI += " \
+ file://0001-Revert-require-GL_EXT_unpack_subimage-commit.patch \
+"
diff --git a/meta-ti-bsp/recipes-graphics/wayland/weston/0001-Revert-require-GL_EXT_unpack_subimage-commit.patch b/meta-ti-bsp/recipes-graphics/wayland/weston/0001-Revert-require-GL_EXT_unpack_subimage-commit.patch
new file mode 100644
index 00000000..ad252030
--- /dev/null
+++ b/meta-ti-bsp/recipes-graphics/wayland/weston/0001-Revert-require-GL_EXT_unpack_subimage-commit.patch
@@ -0,0 +1,95 @@
+From 5a05e5b66dd3831a9c9c2b3f64bd42419d9ade2d Mon Sep 17 00:00:00 2001
+From: Denys Dmytriyenko <denys@konsulko.com>
+Date: Thu, 6 Jul 2023 01:48:41 +0000
+Subject: [PATCH] Revert require GL_EXT_unpack_subimage commit
+
+This reverts commit 593d5af43a8e2c2a3371088fa7ae430d0517c82d.
+
+That commit removed support for GPU drivers without GL_EXT_unpack_subimage
+which SGX does not support. Add back support for GPUs without this
+extension.
+
+Upstream-Status: Inappropriate [specific to TI SGX]
+
+Signed-off-by: Andrew Davis <afd@ti.com>
+Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
+
+---
+ libweston/renderer-gl/gl-renderer-internal.h | 2 ++
+ libweston/renderer-gl/gl-renderer.c | 29 ++++++++++++++++----
+ 2 files changed, 26 insertions(+), 5 deletions(-)
+
+diff --git a/libweston/renderer-gl/gl-renderer-internal.h b/libweston/renderer-gl/gl-renderer-internal.h
+index 5032035..85616c9 100644
+--- a/libweston/renderer-gl/gl-renderer-internal.h
++++ b/libweston/renderer-gl/gl-renderer-internal.h
+@@ -160,6 +160,8 @@ struct gl_renderer {
+ PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC create_platform_window;
+ bool has_platform_base;
+
++ bool has_unpack_subimage;
++
+ PFNEGLBINDWAYLANDDISPLAYWL bind_display;
+ PFNEGLUNBINDWAYLANDDISPLAYWL unbind_display;
+ PFNEGLQUERYWAYLANDBUFFERWL query_buffer;
+diff --git a/libweston/renderer-gl/gl-renderer.c b/libweston/renderer-gl/gl-renderer.c
+index ccb41e6..38a0e0c 100644
+--- a/libweston/renderer-gl/gl-renderer.c
++++ b/libweston/renderer-gl/gl-renderer.c
+@@ -2106,6 +2106,7 @@ gl_renderer_flush_damage(struct weston_surface *surface,
+ {
+ const struct weston_testsuite_quirks *quirks =
+ &surface->compositor->test_data.test_quirks;
++ struct gl_renderer *gr = get_renderer(surface->compositor);
+ struct gl_surface_state *gs = get_surface_state(surface);
+ struct gl_buffer_state *gb = gs->buffer;
+ struct weston_paint_node *pnode;
+@@ -2152,6 +2153,24 @@ gl_renderer_flush_damage(struct weston_surface *surface,
+
+ glActiveTexture(GL_TEXTURE0);
+
++ if (!gr->has_unpack_subimage) {
++ wl_shm_buffer_begin_access(buffer->shm_buffer);
++ for (j = 0; j < gs->buffer->num_textures; j++) {
++ glBindTexture(GL_TEXTURE_2D, gs->buffer->textures[j]);
++ glTexImage2D(GL_TEXTURE_2D, 0,
++ gs->buffer->gl_format[j],
++ gs->buffer->pitch / pixel_format_hsub(buffer->pixel_format, j),
++ buffer->height / pixel_format_vsub(buffer->pixel_format, j),
++ 0,
++ gl_format_from_internal(gs->buffer->gl_format[j]),
++ gs->buffer->gl_pixel_type,
++ data + gs->buffer->offset[j]);
++ }
++ wl_shm_buffer_end_access(buffer->shm_buffer);
++
++ goto done;
++ }
++
+ if (gb->needs_full_upload || quirks->gl_force_full_upload) {
+ glPixelStorei(GL_UNPACK_SKIP_PIXELS_EXT, 0);
+ glPixelStorei(GL_UNPACK_SKIP_ROWS_EXT, 0);
+@@ -4169,11 +4188,9 @@ gl_renderer_setup(struct weston_compositor *ec)
+ else
+ ec->read_format = pixel_format_get_info(DRM_FORMAT_ABGR8888);
+
+- if (gr->gl_version < gr_gl_version(3, 0) &&
+- !weston_check_egl_extension(extensions, "GL_EXT_unpack_subimage")) {
+- weston_log("GL_EXT_unpack_subimage not available.\n");
+- return -1;
+- }
++ if (gr->gl_version >= gr_gl_version(3, 0) ||
++ weston_check_egl_extension(extensions, "GL_EXT_unpack_subimage"))
++ gr->has_unpack_subimage = true;
+
+ if (gr->gl_version >= gr_gl_version(3, 0) ||
+ weston_check_egl_extension(extensions, "GL_EXT_texture_type_2_10_10_10_REV"))
+@@ -4268,6 +4285,8 @@ gl_renderer_setup(struct weston_compositor *ec)
+ gr_gl_version_minor(gr->gl_version));
+ weston_log_continue(STAMP_SPACE "read-back format: %s\n",
+ ec->read_format->drm_format_name);
++ weston_log_continue(STAMP_SPACE "wl_shm sub-image to texture: %s\n",
++ gr->has_unpack_subimage ? "yes" : "no");
+ weston_log_continue(STAMP_SPACE "glReadPixels supports y-flip: %s\n",
+ yesno(gr->has_pack_reverse));
+ weston_log_continue(STAMP_SPACE "wl_shm 10 bpc formats: %s\n",
diff --git a/meta-ti-bsp/recipes-graphics/wayland/weston_13.0.%.bbappend b/meta-ti-bsp/recipes-graphics/wayland/weston_13.0.%.bbappend
new file mode 100644
index 00000000..cf4f530a
--- /dev/null
+++ b/meta-ti-bsp/recipes-graphics/wayland/weston_13.0.%.bbappend
@@ -0,0 +1,4 @@
+WESTON_TI_VERSION = ""
+WESTON_TI_VERSION:ti-soc = "${BPN}-ti-version.inc"
+
+require ${WESTON_TI_VERSION}
--
2.39.2
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [meta-ti][scarthgap/master][PATCH] recipes-graphics: Add weston fix for SGX from meta-arago
2025-07-28 17:33 [meta-ti][scarthgap/master][PATCH] recipes-graphics: Add weston fix for SGX from meta-arago Andrew Davis
@ 2025-07-28 19:32 ` Denys Dmytriyenko
2025-07-28 19:36 ` Denys Dmytriyenko
2025-07-28 19:35 ` Ryan Eatmon
1 sibling, 1 reply; 6+ messages in thread
From: Denys Dmytriyenko @ 2025-07-28 19:32 UTC (permalink / raw)
To: afd; +Cc: Ryan Eatmon, meta-ti
On Mon, Jul 28, 2025 at 12:33:16PM -0500, Andrew Davis via lists.yoctoproject.org wrote:
> This change is needed due to the SGX driver, any distro, not just Arago,
> using a TI SoC with SGX will need this fix, so it should go in meta-ti.
>
> Signed-off-by: Andrew Davis <afd@ti.com>
Acked-by: Denys Dmytriyenko <denys@konsulko.com>
> ---
> .../wayland/weston-ti-version.inc | 7 ++
> ...equire-GL_EXT_unpack_subimage-commit.patch | 95 +++++++++++++++++++
> .../wayland/weston_13.0.%.bbappend | 4 +
> 3 files changed, 106 insertions(+)
> create mode 100644 meta-ti-bsp/recipes-graphics/wayland/weston-ti-version.inc
> create mode 100644 meta-ti-bsp/recipes-graphics/wayland/weston/0001-Revert-require-GL_EXT_unpack_subimage-commit.patch
> create mode 100644 meta-ti-bsp/recipes-graphics/wayland/weston_13.0.%.bbappend
>
> diff --git a/meta-ti-bsp/recipes-graphics/wayland/weston-ti-version.inc b/meta-ti-bsp/recipes-graphics/wayland/weston-ti-version.inc
> new file mode 100644
> index 00000000..fafef724
> --- /dev/null
> +++ b/meta-ti-bsp/recipes-graphics/wayland/weston-ti-version.inc
> @@ -0,0 +1,7 @@
> +FILESEXTRAPATHS:prepend := "${THISDIR}/weston:"
> +
> +PR:append = ".ti-soc1"
> +
> +SRC_URI += " \
> + file://0001-Revert-require-GL_EXT_unpack_subimage-commit.patch \
> +"
> diff --git a/meta-ti-bsp/recipes-graphics/wayland/weston/0001-Revert-require-GL_EXT_unpack_subimage-commit.patch b/meta-ti-bsp/recipes-graphics/wayland/weston/0001-Revert-require-GL_EXT_unpack_subimage-commit.patch
> new file mode 100644
> index 00000000..ad252030
> --- /dev/null
> +++ b/meta-ti-bsp/recipes-graphics/wayland/weston/0001-Revert-require-GL_EXT_unpack_subimage-commit.patch
> @@ -0,0 +1,95 @@
> +From 5a05e5b66dd3831a9c9c2b3f64bd42419d9ade2d Mon Sep 17 00:00:00 2001
> +From: Denys Dmytriyenko <denys@konsulko.com>
> +Date: Thu, 6 Jul 2023 01:48:41 +0000
> +Subject: [PATCH] Revert require GL_EXT_unpack_subimage commit
> +
> +This reverts commit 593d5af43a8e2c2a3371088fa7ae430d0517c82d.
> +
> +That commit removed support for GPU drivers without GL_EXT_unpack_subimage
> +which SGX does not support. Add back support for GPUs without this
> +extension.
> +
> +Upstream-Status: Inappropriate [specific to TI SGX]
> +
> +Signed-off-by: Andrew Davis <afd@ti.com>
> +Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
> +
> +---
> + libweston/renderer-gl/gl-renderer-internal.h | 2 ++
> + libweston/renderer-gl/gl-renderer.c | 29 ++++++++++++++++----
> + 2 files changed, 26 insertions(+), 5 deletions(-)
> +
> +diff --git a/libweston/renderer-gl/gl-renderer-internal.h b/libweston/renderer-gl/gl-renderer-internal.h
> +index 5032035..85616c9 100644
> +--- a/libweston/renderer-gl/gl-renderer-internal.h
> ++++ b/libweston/renderer-gl/gl-renderer-internal.h
> +@@ -160,6 +160,8 @@ struct gl_renderer {
> + PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC create_platform_window;
> + bool has_platform_base;
> +
> ++ bool has_unpack_subimage;
> ++
> + PFNEGLBINDWAYLANDDISPLAYWL bind_display;
> + PFNEGLUNBINDWAYLANDDISPLAYWL unbind_display;
> + PFNEGLQUERYWAYLANDBUFFERWL query_buffer;
> +diff --git a/libweston/renderer-gl/gl-renderer.c b/libweston/renderer-gl/gl-renderer.c
> +index ccb41e6..38a0e0c 100644
> +--- a/libweston/renderer-gl/gl-renderer.c
> ++++ b/libweston/renderer-gl/gl-renderer.c
> +@@ -2106,6 +2106,7 @@ gl_renderer_flush_damage(struct weston_surface *surface,
> + {
> + const struct weston_testsuite_quirks *quirks =
> + &surface->compositor->test_data.test_quirks;
> ++ struct gl_renderer *gr = get_renderer(surface->compositor);
> + struct gl_surface_state *gs = get_surface_state(surface);
> + struct gl_buffer_state *gb = gs->buffer;
> + struct weston_paint_node *pnode;
> +@@ -2152,6 +2153,24 @@ gl_renderer_flush_damage(struct weston_surface *surface,
> +
> + glActiveTexture(GL_TEXTURE0);
> +
> ++ if (!gr->has_unpack_subimage) {
> ++ wl_shm_buffer_begin_access(buffer->shm_buffer);
> ++ for (j = 0; j < gs->buffer->num_textures; j++) {
> ++ glBindTexture(GL_TEXTURE_2D, gs->buffer->textures[j]);
> ++ glTexImage2D(GL_TEXTURE_2D, 0,
> ++ gs->buffer->gl_format[j],
> ++ gs->buffer->pitch / pixel_format_hsub(buffer->pixel_format, j),
> ++ buffer->height / pixel_format_vsub(buffer->pixel_format, j),
> ++ 0,
> ++ gl_format_from_internal(gs->buffer->gl_format[j]),
> ++ gs->buffer->gl_pixel_type,
> ++ data + gs->buffer->offset[j]);
> ++ }
> ++ wl_shm_buffer_end_access(buffer->shm_buffer);
> ++
> ++ goto done;
> ++ }
> ++
> + if (gb->needs_full_upload || quirks->gl_force_full_upload) {
> + glPixelStorei(GL_UNPACK_SKIP_PIXELS_EXT, 0);
> + glPixelStorei(GL_UNPACK_SKIP_ROWS_EXT, 0);
> +@@ -4169,11 +4188,9 @@ gl_renderer_setup(struct weston_compositor *ec)
> + else
> + ec->read_format = pixel_format_get_info(DRM_FORMAT_ABGR8888);
> +
> +- if (gr->gl_version < gr_gl_version(3, 0) &&
> +- !weston_check_egl_extension(extensions, "GL_EXT_unpack_subimage")) {
> +- weston_log("GL_EXT_unpack_subimage not available.\n");
> +- return -1;
> +- }
> ++ if (gr->gl_version >= gr_gl_version(3, 0) ||
> ++ weston_check_egl_extension(extensions, "GL_EXT_unpack_subimage"))
> ++ gr->has_unpack_subimage = true;
> +
> + if (gr->gl_version >= gr_gl_version(3, 0) ||
> + weston_check_egl_extension(extensions, "GL_EXT_texture_type_2_10_10_10_REV"))
> +@@ -4268,6 +4285,8 @@ gl_renderer_setup(struct weston_compositor *ec)
> + gr_gl_version_minor(gr->gl_version));
> + weston_log_continue(STAMP_SPACE "read-back format: %s\n",
> + ec->read_format->drm_format_name);
> ++ weston_log_continue(STAMP_SPACE "wl_shm sub-image to texture: %s\n",
> ++ gr->has_unpack_subimage ? "yes" : "no");
> + weston_log_continue(STAMP_SPACE "glReadPixels supports y-flip: %s\n",
> + yesno(gr->has_pack_reverse));
> + weston_log_continue(STAMP_SPACE "wl_shm 10 bpc formats: %s\n",
> diff --git a/meta-ti-bsp/recipes-graphics/wayland/weston_13.0.%.bbappend b/meta-ti-bsp/recipes-graphics/wayland/weston_13.0.%.bbappend
> new file mode 100644
> index 00000000..cf4f530a
> --- /dev/null
> +++ b/meta-ti-bsp/recipes-graphics/wayland/weston_13.0.%.bbappend
> @@ -0,0 +1,4 @@
> +WESTON_TI_VERSION = ""
> +WESTON_TI_VERSION:ti-soc = "${BPN}-ti-version.inc"
> +
> +require ${WESTON_TI_VERSION}
> --
> 2.39.2
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [meta-ti][scarthgap/master][PATCH] recipes-graphics: Add weston fix for SGX from meta-arago
2025-07-28 17:33 [meta-ti][scarthgap/master][PATCH] recipes-graphics: Add weston fix for SGX from meta-arago Andrew Davis
2025-07-28 19:32 ` Denys Dmytriyenko
@ 2025-07-28 19:35 ` Ryan Eatmon
2025-07-28 19:46 ` Andrew Davis
1 sibling, 1 reply; 6+ messages in thread
From: Ryan Eatmon @ 2025-07-28 19:35 UTC (permalink / raw)
To: Andrew Davis, Denys Dmytriyenko, meta-ti
As with the patch from meta-arago... NAK.
weston has moved to 14.0 in master.
Please submit the proper patch for master on both meta-arago and meta-ti.
On 7/28/2025 12:33 PM, Andrew Davis wrote:
> This change is needed due to the SGX driver, any distro, not just Arago,
> using a TI SoC with SGX will need this fix, so it should go in meta-ti.
>
> Signed-off-by: Andrew Davis <afd@ti.com>
> ---
> .../wayland/weston-ti-version.inc | 7 ++
> ...equire-GL_EXT_unpack_subimage-commit.patch | 95 +++++++++++++++++++
> .../wayland/weston_13.0.%.bbappend | 4 +
> 3 files changed, 106 insertions(+)
> create mode 100644 meta-ti-bsp/recipes-graphics/wayland/weston-ti-version.inc
> create mode 100644 meta-ti-bsp/recipes-graphics/wayland/weston/0001-Revert-require-GL_EXT_unpack_subimage-commit.patch
> create mode 100644 meta-ti-bsp/recipes-graphics/wayland/weston_13.0.%.bbappend
>
> diff --git a/meta-ti-bsp/recipes-graphics/wayland/weston-ti-version.inc b/meta-ti-bsp/recipes-graphics/wayland/weston-ti-version.inc
> new file mode 100644
> index 00000000..fafef724
> --- /dev/null
> +++ b/meta-ti-bsp/recipes-graphics/wayland/weston-ti-version.inc
> @@ -0,0 +1,7 @@
> +FILESEXTRAPATHS:prepend := "${THISDIR}/weston:"
> +
> +PR:append = ".ti-soc1"
> +
> +SRC_URI += " \
> + file://0001-Revert-require-GL_EXT_unpack_subimage-commit.patch \
> +"
> diff --git a/meta-ti-bsp/recipes-graphics/wayland/weston/0001-Revert-require-GL_EXT_unpack_subimage-commit.patch b/meta-ti-bsp/recipes-graphics/wayland/weston/0001-Revert-require-GL_EXT_unpack_subimage-commit.patch
> new file mode 100644
> index 00000000..ad252030
> --- /dev/null
> +++ b/meta-ti-bsp/recipes-graphics/wayland/weston/0001-Revert-require-GL_EXT_unpack_subimage-commit.patch
> @@ -0,0 +1,95 @@
> +From 5a05e5b66dd3831a9c9c2b3f64bd42419d9ade2d Mon Sep 17 00:00:00 2001
> +From: Denys Dmytriyenko <denys@konsulko.com>
> +Date: Thu, 6 Jul 2023 01:48:41 +0000
> +Subject: [PATCH] Revert require GL_EXT_unpack_subimage commit
> +
> +This reverts commit 593d5af43a8e2c2a3371088fa7ae430d0517c82d.
> +
> +That commit removed support for GPU drivers without GL_EXT_unpack_subimage
> +which SGX does not support. Add back support for GPUs without this
> +extension.
> +
> +Upstream-Status: Inappropriate [specific to TI SGX]
> +
> +Signed-off-by: Andrew Davis <afd@ti.com>
> +Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
> +
> +---
> + libweston/renderer-gl/gl-renderer-internal.h | 2 ++
> + libweston/renderer-gl/gl-renderer.c | 29 ++++++++++++++++----
> + 2 files changed, 26 insertions(+), 5 deletions(-)
> +
> +diff --git a/libweston/renderer-gl/gl-renderer-internal.h b/libweston/renderer-gl/gl-renderer-internal.h
> +index 5032035..85616c9 100644
> +--- a/libweston/renderer-gl/gl-renderer-internal.h
> ++++ b/libweston/renderer-gl/gl-renderer-internal.h
> +@@ -160,6 +160,8 @@ struct gl_renderer {
> + PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC create_platform_window;
> + bool has_platform_base;
> +
> ++ bool has_unpack_subimage;
> ++
> + PFNEGLBINDWAYLANDDISPLAYWL bind_display;
> + PFNEGLUNBINDWAYLANDDISPLAYWL unbind_display;
> + PFNEGLQUERYWAYLANDBUFFERWL query_buffer;
> +diff --git a/libweston/renderer-gl/gl-renderer.c b/libweston/renderer-gl/gl-renderer.c
> +index ccb41e6..38a0e0c 100644
> +--- a/libweston/renderer-gl/gl-renderer.c
> ++++ b/libweston/renderer-gl/gl-renderer.c
> +@@ -2106,6 +2106,7 @@ gl_renderer_flush_damage(struct weston_surface *surface,
> + {
> + const struct weston_testsuite_quirks *quirks =
> + &surface->compositor->test_data.test_quirks;
> ++ struct gl_renderer *gr = get_renderer(surface->compositor);
> + struct gl_surface_state *gs = get_surface_state(surface);
> + struct gl_buffer_state *gb = gs->buffer;
> + struct weston_paint_node *pnode;
> +@@ -2152,6 +2153,24 @@ gl_renderer_flush_damage(struct weston_surface *surface,
> +
> + glActiveTexture(GL_TEXTURE0);
> +
> ++ if (!gr->has_unpack_subimage) {
> ++ wl_shm_buffer_begin_access(buffer->shm_buffer);
> ++ for (j = 0; j < gs->buffer->num_textures; j++) {
> ++ glBindTexture(GL_TEXTURE_2D, gs->buffer->textures[j]);
> ++ glTexImage2D(GL_TEXTURE_2D, 0,
> ++ gs->buffer->gl_format[j],
> ++ gs->buffer->pitch / pixel_format_hsub(buffer->pixel_format, j),
> ++ buffer->height / pixel_format_vsub(buffer->pixel_format, j),
> ++ 0,
> ++ gl_format_from_internal(gs->buffer->gl_format[j]),
> ++ gs->buffer->gl_pixel_type,
> ++ data + gs->buffer->offset[j]);
> ++ }
> ++ wl_shm_buffer_end_access(buffer->shm_buffer);
> ++
> ++ goto done;
> ++ }
> ++
> + if (gb->needs_full_upload || quirks->gl_force_full_upload) {
> + glPixelStorei(GL_UNPACK_SKIP_PIXELS_EXT, 0);
> + glPixelStorei(GL_UNPACK_SKIP_ROWS_EXT, 0);
> +@@ -4169,11 +4188,9 @@ gl_renderer_setup(struct weston_compositor *ec)
> + else
> + ec->read_format = pixel_format_get_info(DRM_FORMAT_ABGR8888);
> +
> +- if (gr->gl_version < gr_gl_version(3, 0) &&
> +- !weston_check_egl_extension(extensions, "GL_EXT_unpack_subimage")) {
> +- weston_log("GL_EXT_unpack_subimage not available.\n");
> +- return -1;
> +- }
> ++ if (gr->gl_version >= gr_gl_version(3, 0) ||
> ++ weston_check_egl_extension(extensions, "GL_EXT_unpack_subimage"))
> ++ gr->has_unpack_subimage = true;
> +
> + if (gr->gl_version >= gr_gl_version(3, 0) ||
> + weston_check_egl_extension(extensions, "GL_EXT_texture_type_2_10_10_10_REV"))
> +@@ -4268,6 +4285,8 @@ gl_renderer_setup(struct weston_compositor *ec)
> + gr_gl_version_minor(gr->gl_version));
> + weston_log_continue(STAMP_SPACE "read-back format: %s\n",
> + ec->read_format->drm_format_name);
> ++ weston_log_continue(STAMP_SPACE "wl_shm sub-image to texture: %s\n",
> ++ gr->has_unpack_subimage ? "yes" : "no");
> + weston_log_continue(STAMP_SPACE "glReadPixels supports y-flip: %s\n",
> + yesno(gr->has_pack_reverse));
> + weston_log_continue(STAMP_SPACE "wl_shm 10 bpc formats: %s\n",
> diff --git a/meta-ti-bsp/recipes-graphics/wayland/weston_13.0.%.bbappend b/meta-ti-bsp/recipes-graphics/wayland/weston_13.0.%.bbappend
> new file mode 100644
> index 00000000..cf4f530a
> --- /dev/null
> +++ b/meta-ti-bsp/recipes-graphics/wayland/weston_13.0.%.bbappend
> @@ -0,0 +1,4 @@
> +WESTON_TI_VERSION = ""
> +WESTON_TI_VERSION:ti-soc = "${BPN}-ti-version.inc"
> +
> +require ${WESTON_TI_VERSION}
--
Ryan Eatmon reatmon@ti.com
-----------------------------------------
Texas Instruments, Inc. - LCPD - MGTS
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [meta-ti][scarthgap/master][PATCH] recipes-graphics: Add weston fix for SGX from meta-arago
2025-07-28 19:32 ` Denys Dmytriyenko
@ 2025-07-28 19:36 ` Denys Dmytriyenko
0 siblings, 0 replies; 6+ messages in thread
From: Denys Dmytriyenko @ 2025-07-28 19:36 UTC (permalink / raw)
To: afd; +Cc: Ryan Eatmon, meta-ti
On Mon, Jul 28, 2025 at 03:32:05PM -0400, Denys Dmytriyenko wrote:
> On Mon, Jul 28, 2025 at 12:33:16PM -0500, Andrew Davis via lists.yoctoproject.org wrote:
> > This change is needed due to the SGX driver, any distro, not just Arago,
> > using a TI SoC with SGX will need this fix, so it should go in meta-ti.
> >
> > Signed-off-by: Andrew Davis <afd@ti.com>
>
> Acked-by: Denys Dmytriyenko <denys@konsulko.com>
Though, you would need to submit a separate patch for master, as there was a
fuzz-related update since scarthgap:
https://git.yoctoproject.org/meta-arago/commit/?id=39136769521719157dde1e13559ce5f75b9be52a
> > ---
> > .../wayland/weston-ti-version.inc | 7 ++
> > ...equire-GL_EXT_unpack_subimage-commit.patch | 95 +++++++++++++++++++
> > .../wayland/weston_13.0.%.bbappend | 4 +
> > 3 files changed, 106 insertions(+)
> > create mode 100644 meta-ti-bsp/recipes-graphics/wayland/weston-ti-version.inc
> > create mode 100644 meta-ti-bsp/recipes-graphics/wayland/weston/0001-Revert-require-GL_EXT_unpack_subimage-commit.patch
> > create mode 100644 meta-ti-bsp/recipes-graphics/wayland/weston_13.0.%.bbappend
> >
> > diff --git a/meta-ti-bsp/recipes-graphics/wayland/weston-ti-version.inc b/meta-ti-bsp/recipes-graphics/wayland/weston-ti-version.inc
> > new file mode 100644
> > index 00000000..fafef724
> > --- /dev/null
> > +++ b/meta-ti-bsp/recipes-graphics/wayland/weston-ti-version.inc
> > @@ -0,0 +1,7 @@
> > +FILESEXTRAPATHS:prepend := "${THISDIR}/weston:"
> > +
> > +PR:append = ".ti-soc1"
> > +
> > +SRC_URI += " \
> > + file://0001-Revert-require-GL_EXT_unpack_subimage-commit.patch \
> > +"
> > diff --git a/meta-ti-bsp/recipes-graphics/wayland/weston/0001-Revert-require-GL_EXT_unpack_subimage-commit.patch b/meta-ti-bsp/recipes-graphics/wayland/weston/0001-Revert-require-GL_EXT_unpack_subimage-commit.patch
> > new file mode 100644
> > index 00000000..ad252030
> > --- /dev/null
> > +++ b/meta-ti-bsp/recipes-graphics/wayland/weston/0001-Revert-require-GL_EXT_unpack_subimage-commit.patch
> > @@ -0,0 +1,95 @@
> > +From 5a05e5b66dd3831a9c9c2b3f64bd42419d9ade2d Mon Sep 17 00:00:00 2001
> > +From: Denys Dmytriyenko <denys@konsulko.com>
> > +Date: Thu, 6 Jul 2023 01:48:41 +0000
> > +Subject: [PATCH] Revert require GL_EXT_unpack_subimage commit
> > +
> > +This reverts commit 593d5af43a8e2c2a3371088fa7ae430d0517c82d.
> > +
> > +That commit removed support for GPU drivers without GL_EXT_unpack_subimage
> > +which SGX does not support. Add back support for GPUs without this
> > +extension.
> > +
> > +Upstream-Status: Inappropriate [specific to TI SGX]
> > +
> > +Signed-off-by: Andrew Davis <afd@ti.com>
> > +Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
> > +
> > +---
> > + libweston/renderer-gl/gl-renderer-internal.h | 2 ++
> > + libweston/renderer-gl/gl-renderer.c | 29 ++++++++++++++++----
> > + 2 files changed, 26 insertions(+), 5 deletions(-)
> > +
> > +diff --git a/libweston/renderer-gl/gl-renderer-internal.h b/libweston/renderer-gl/gl-renderer-internal.h
> > +index 5032035..85616c9 100644
> > +--- a/libweston/renderer-gl/gl-renderer-internal.h
> > ++++ b/libweston/renderer-gl/gl-renderer-internal.h
> > +@@ -160,6 +160,8 @@ struct gl_renderer {
> > + PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC create_platform_window;
> > + bool has_platform_base;
> > +
> > ++ bool has_unpack_subimage;
> > ++
> > + PFNEGLBINDWAYLANDDISPLAYWL bind_display;
> > + PFNEGLUNBINDWAYLANDDISPLAYWL unbind_display;
> > + PFNEGLQUERYWAYLANDBUFFERWL query_buffer;
> > +diff --git a/libweston/renderer-gl/gl-renderer.c b/libweston/renderer-gl/gl-renderer.c
> > +index ccb41e6..38a0e0c 100644
> > +--- a/libweston/renderer-gl/gl-renderer.c
> > ++++ b/libweston/renderer-gl/gl-renderer.c
> > +@@ -2106,6 +2106,7 @@ gl_renderer_flush_damage(struct weston_surface *surface,
> > + {
> > + const struct weston_testsuite_quirks *quirks =
> > + &surface->compositor->test_data.test_quirks;
> > ++ struct gl_renderer *gr = get_renderer(surface->compositor);
> > + struct gl_surface_state *gs = get_surface_state(surface);
> > + struct gl_buffer_state *gb = gs->buffer;
> > + struct weston_paint_node *pnode;
> > +@@ -2152,6 +2153,24 @@ gl_renderer_flush_damage(struct weston_surface *surface,
> > +
> > + glActiveTexture(GL_TEXTURE0);
> > +
> > ++ if (!gr->has_unpack_subimage) {
> > ++ wl_shm_buffer_begin_access(buffer->shm_buffer);
> > ++ for (j = 0; j < gs->buffer->num_textures; j++) {
> > ++ glBindTexture(GL_TEXTURE_2D, gs->buffer->textures[j]);
> > ++ glTexImage2D(GL_TEXTURE_2D, 0,
> > ++ gs->buffer->gl_format[j],
> > ++ gs->buffer->pitch / pixel_format_hsub(buffer->pixel_format, j),
> > ++ buffer->height / pixel_format_vsub(buffer->pixel_format, j),
> > ++ 0,
> > ++ gl_format_from_internal(gs->buffer->gl_format[j]),
> > ++ gs->buffer->gl_pixel_type,
> > ++ data + gs->buffer->offset[j]);
> > ++ }
> > ++ wl_shm_buffer_end_access(buffer->shm_buffer);
> > ++
> > ++ goto done;
> > ++ }
> > ++
> > + if (gb->needs_full_upload || quirks->gl_force_full_upload) {
> > + glPixelStorei(GL_UNPACK_SKIP_PIXELS_EXT, 0);
> > + glPixelStorei(GL_UNPACK_SKIP_ROWS_EXT, 0);
> > +@@ -4169,11 +4188,9 @@ gl_renderer_setup(struct weston_compositor *ec)
> > + else
> > + ec->read_format = pixel_format_get_info(DRM_FORMAT_ABGR8888);
> > +
> > +- if (gr->gl_version < gr_gl_version(3, 0) &&
> > +- !weston_check_egl_extension(extensions, "GL_EXT_unpack_subimage")) {
> > +- weston_log("GL_EXT_unpack_subimage not available.\n");
> > +- return -1;
> > +- }
> > ++ if (gr->gl_version >= gr_gl_version(3, 0) ||
> > ++ weston_check_egl_extension(extensions, "GL_EXT_unpack_subimage"))
> > ++ gr->has_unpack_subimage = true;
> > +
> > + if (gr->gl_version >= gr_gl_version(3, 0) ||
> > + weston_check_egl_extension(extensions, "GL_EXT_texture_type_2_10_10_10_REV"))
> > +@@ -4268,6 +4285,8 @@ gl_renderer_setup(struct weston_compositor *ec)
> > + gr_gl_version_minor(gr->gl_version));
> > + weston_log_continue(STAMP_SPACE "read-back format: %s\n",
> > + ec->read_format->drm_format_name);
> > ++ weston_log_continue(STAMP_SPACE "wl_shm sub-image to texture: %s\n",
> > ++ gr->has_unpack_subimage ? "yes" : "no");
> > + weston_log_continue(STAMP_SPACE "glReadPixels supports y-flip: %s\n",
> > + yesno(gr->has_pack_reverse));
> > + weston_log_continue(STAMP_SPACE "wl_shm 10 bpc formats: %s\n",
> > diff --git a/meta-ti-bsp/recipes-graphics/wayland/weston_13.0.%.bbappend b/meta-ti-bsp/recipes-graphics/wayland/weston_13.0.%.bbappend
> > new file mode 100644
> > index 00000000..cf4f530a
> > --- /dev/null
> > +++ b/meta-ti-bsp/recipes-graphics/wayland/weston_13.0.%.bbappend
> > @@ -0,0 +1,4 @@
> > +WESTON_TI_VERSION = ""
> > +WESTON_TI_VERSION:ti-soc = "${BPN}-ti-version.inc"
> > +
> > +require ${WESTON_TI_VERSION}
> > --
> > 2.39.2
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [meta-ti][scarthgap/master][PATCH] recipes-graphics: Add weston fix for SGX from meta-arago
2025-07-28 19:35 ` Ryan Eatmon
@ 2025-07-28 19:46 ` Andrew Davis
2025-07-28 19:55 ` Ryan Eatmon
0 siblings, 1 reply; 6+ messages in thread
From: Andrew Davis @ 2025-07-28 19:46 UTC (permalink / raw)
To: Ryan Eatmon, Denys Dmytriyenko, meta-ti
On 7/28/25 2:35 PM, Ryan Eatmon wrote:
>
> As with the patch from meta-arago... NAK.
>
> weston has moved to 14.0 in master.
>
> Please submit the proper patch for master on both meta-arago and meta-ti.
>
>
Just noticed that, I'll send a version for master. This version (and the
one for meta-arago) does apply on scarthgap if you want to just take this
as the scarthgap-only version.
Andrew
>
>
> On 7/28/2025 12:33 PM, Andrew Davis wrote:
>> This change is needed due to the SGX driver, any distro, not just Arago,
>> using a TI SoC with SGX will need this fix, so it should go in meta-ti.
>>
>> Signed-off-by: Andrew Davis <afd@ti.com>
>> ---
>> .../wayland/weston-ti-version.inc | 7 ++
>> ...equire-GL_EXT_unpack_subimage-commit.patch | 95 +++++++++++++++++++
>> .../wayland/weston_13.0.%.bbappend | 4 +
>> 3 files changed, 106 insertions(+)
>> create mode 100644 meta-ti-bsp/recipes-graphics/wayland/weston-ti-version.inc
>> create mode 100644 meta-ti-bsp/recipes-graphics/wayland/weston/0001-Revert-require-GL_EXT_unpack_subimage-commit.patch
>> create mode 100644 meta-ti-bsp/recipes-graphics/wayland/weston_13.0.%.bbappend
>>
>> diff --git a/meta-ti-bsp/recipes-graphics/wayland/weston-ti-version.inc b/meta-ti-bsp/recipes-graphics/wayland/weston-ti-version.inc
>> new file mode 100644
>> index 00000000..fafef724
>> --- /dev/null
>> +++ b/meta-ti-bsp/recipes-graphics/wayland/weston-ti-version.inc
>> @@ -0,0 +1,7 @@
>> +FILESEXTRAPATHS:prepend := "${THISDIR}/weston:"
>> +
>> +PR:append = ".ti-soc1"
>> +
>> +SRC_URI += " \
>> + file://0001-Revert-require-GL_EXT_unpack_subimage-commit.patch \
>> +"
>> diff --git a/meta-ti-bsp/recipes-graphics/wayland/weston/0001-Revert-require-GL_EXT_unpack_subimage-commit.patch b/meta-ti-bsp/recipes-graphics/wayland/weston/0001-Revert-require-GL_EXT_unpack_subimage-commit.patch
>> new file mode 100644
>> index 00000000..ad252030
>> --- /dev/null
>> +++ b/meta-ti-bsp/recipes-graphics/wayland/weston/0001-Revert-require-GL_EXT_unpack_subimage-commit.patch
>> @@ -0,0 +1,95 @@
>> +From 5a05e5b66dd3831a9c9c2b3f64bd42419d9ade2d Mon Sep 17 00:00:00 2001
>> +From: Denys Dmytriyenko <denys@konsulko.com>
>> +Date: Thu, 6 Jul 2023 01:48:41 +0000
>> +Subject: [PATCH] Revert require GL_EXT_unpack_subimage commit
>> +
>> +This reverts commit 593d5af43a8e2c2a3371088fa7ae430d0517c82d.
>> +
>> +That commit removed support for GPU drivers without GL_EXT_unpack_subimage
>> +which SGX does not support. Add back support for GPUs without this
>> +extension.
>> +
>> +Upstream-Status: Inappropriate [specific to TI SGX]
>> +
>> +Signed-off-by: Andrew Davis <afd@ti.com>
>> +Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
>> +
>> +---
>> + libweston/renderer-gl/gl-renderer-internal.h | 2 ++
>> + libweston/renderer-gl/gl-renderer.c | 29 ++++++++++++++++----
>> + 2 files changed, 26 insertions(+), 5 deletions(-)
>> +
>> +diff --git a/libweston/renderer-gl/gl-renderer-internal.h b/libweston/renderer-gl/gl-renderer-internal.h
>> +index 5032035..85616c9 100644
>> +--- a/libweston/renderer-gl/gl-renderer-internal.h
>> ++++ b/libweston/renderer-gl/gl-renderer-internal.h
>> +@@ -160,6 +160,8 @@ struct gl_renderer {
>> + PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC create_platform_window;
>> + bool has_platform_base;
>> +
>> ++ bool has_unpack_subimage;
>> ++
>> + PFNEGLBINDWAYLANDDISPLAYWL bind_display;
>> + PFNEGLUNBINDWAYLANDDISPLAYWL unbind_display;
>> + PFNEGLQUERYWAYLANDBUFFERWL query_buffer;
>> +diff --git a/libweston/renderer-gl/gl-renderer.c b/libweston/renderer-gl/gl-renderer.c
>> +index ccb41e6..38a0e0c 100644
>> +--- a/libweston/renderer-gl/gl-renderer.c
>> ++++ b/libweston/renderer-gl/gl-renderer.c
>> +@@ -2106,6 +2106,7 @@ gl_renderer_flush_damage(struct weston_surface *surface,
>> + {
>> + const struct weston_testsuite_quirks *quirks =
>> + &surface->compositor->test_data.test_quirks;
>> ++ struct gl_renderer *gr = get_renderer(surface->compositor);
>> + struct gl_surface_state *gs = get_surface_state(surface);
>> + struct gl_buffer_state *gb = gs->buffer;
>> + struct weston_paint_node *pnode;
>> +@@ -2152,6 +2153,24 @@ gl_renderer_flush_damage(struct weston_surface *surface,
>> +
>> + glActiveTexture(GL_TEXTURE0);
>> +
>> ++ if (!gr->has_unpack_subimage) {
>> ++ wl_shm_buffer_begin_access(buffer->shm_buffer);
>> ++ for (j = 0; j < gs->buffer->num_textures; j++) {
>> ++ glBindTexture(GL_TEXTURE_2D, gs->buffer->textures[j]);
>> ++ glTexImage2D(GL_TEXTURE_2D, 0,
>> ++ gs->buffer->gl_format[j],
>> ++ gs->buffer->pitch / pixel_format_hsub(buffer->pixel_format, j),
>> ++ buffer->height / pixel_format_vsub(buffer->pixel_format, j),
>> ++ 0,
>> ++ gl_format_from_internal(gs->buffer->gl_format[j]),
>> ++ gs->buffer->gl_pixel_type,
>> ++ data + gs->buffer->offset[j]);
>> ++ }
>> ++ wl_shm_buffer_end_access(buffer->shm_buffer);
>> ++
>> ++ goto done;
>> ++ }
>> ++
>> + if (gb->needs_full_upload || quirks->gl_force_full_upload) {
>> + glPixelStorei(GL_UNPACK_SKIP_PIXELS_EXT, 0);
>> + glPixelStorei(GL_UNPACK_SKIP_ROWS_EXT, 0);
>> +@@ -4169,11 +4188,9 @@ gl_renderer_setup(struct weston_compositor *ec)
>> + else
>> + ec->read_format = pixel_format_get_info(DRM_FORMAT_ABGR8888);
>> +
>> +- if (gr->gl_version < gr_gl_version(3, 0) &&
>> +- !weston_check_egl_extension(extensions, "GL_EXT_unpack_subimage")) {
>> +- weston_log("GL_EXT_unpack_subimage not available.\n");
>> +- return -1;
>> +- }
>> ++ if (gr->gl_version >= gr_gl_version(3, 0) ||
>> ++ weston_check_egl_extension(extensions, "GL_EXT_unpack_subimage"))
>> ++ gr->has_unpack_subimage = true;
>> +
>> + if (gr->gl_version >= gr_gl_version(3, 0) ||
>> + weston_check_egl_extension(extensions, "GL_EXT_texture_type_2_10_10_10_REV"))
>> +@@ -4268,6 +4285,8 @@ gl_renderer_setup(struct weston_compositor *ec)
>> + gr_gl_version_minor(gr->gl_version));
>> + weston_log_continue(STAMP_SPACE "read-back format: %s\n",
>> + ec->read_format->drm_format_name);
>> ++ weston_log_continue(STAMP_SPACE "wl_shm sub-image to texture: %s\n",
>> ++ gr->has_unpack_subimage ? "yes" : "no");
>> + weston_log_continue(STAMP_SPACE "glReadPixels supports y-flip: %s\n",
>> + yesno(gr->has_pack_reverse));
>> + weston_log_continue(STAMP_SPACE "wl_shm 10 bpc formats: %s\n",
>> diff --git a/meta-ti-bsp/recipes-graphics/wayland/weston_13.0.%.bbappend b/meta-ti-bsp/recipes-graphics/wayland/weston_13.0.%.bbappend
>> new file mode 100644
>> index 00000000..cf4f530a
>> --- /dev/null
>> +++ b/meta-ti-bsp/recipes-graphics/wayland/weston_13.0.%.bbappend
>> @@ -0,0 +1,4 @@
>> +WESTON_TI_VERSION = ""
>> +WESTON_TI_VERSION:ti-soc = "${BPN}-ti-version.inc"
>> +
>> +require ${WESTON_TI_VERSION}
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [meta-ti][scarthgap/master][PATCH] recipes-graphics: Add weston fix for SGX from meta-arago
2025-07-28 19:46 ` Andrew Davis
@ 2025-07-28 19:55 ` Ryan Eatmon
0 siblings, 0 replies; 6+ messages in thread
From: Ryan Eatmon @ 2025-07-28 19:55 UTC (permalink / raw)
To: Andrew Davis, Denys Dmytriyenko, meta-ti
On 7/28/2025 2:46 PM, Andrew Davis wrote:
> On 7/28/25 2:35 PM, Ryan Eatmon wrote:
>>
>> As with the patch from meta-arago... NAK.
>>
>> weston has moved to 14.0 in master.
>>
>> Please submit the proper patch for master on both meta-arago and meta-ti.
>>
>>
>
> Just noticed that, I'll send a version for master. This version (and the
> one for meta-arago) does apply on scarthgap if you want to just take this
> as the scarthgap-only version.
That was my plan.
> Andrew
>
>>
>>
>> On 7/28/2025 12:33 PM, Andrew Davis wrote:
>>> This change is needed due to the SGX driver, any distro, not just Arago,
>>> using a TI SoC with SGX will need this fix, so it should go in meta-ti.
>>>
>>> Signed-off-by: Andrew Davis <afd@ti.com>
>>> ---
>>> .../wayland/weston-ti-version.inc | 7 ++
>>> ...equire-GL_EXT_unpack_subimage-commit.patch | 95 +++++++++++++++++++
>>> .../wayland/weston_13.0.%.bbappend | 4 +
>>> 3 files changed, 106 insertions(+)
>>> create mode 100644
>>> meta-ti-bsp/recipes-graphics/wayland/weston-ti-version.inc
>>> create mode 100644
>>> meta-ti-bsp/recipes-graphics/wayland/weston/0001-Revert-require-GL_EXT_unpack_subimage-commit.patch
>>> create mode 100644
>>> meta-ti-bsp/recipes-graphics/wayland/weston_13.0.%.bbappend
>>>
>>> diff --git
>>> a/meta-ti-bsp/recipes-graphics/wayland/weston-ti-version.inc
>>> b/meta-ti-bsp/recipes-graphics/wayland/weston-ti-version.inc
>>> new file mode 100644
>>> index 00000000..fafef724
>>> --- /dev/null
>>> +++ b/meta-ti-bsp/recipes-graphics/wayland/weston-ti-version.inc
>>> @@ -0,0 +1,7 @@
>>> +FILESEXTRAPATHS:prepend := "${THISDIR}/weston:"
>>> +
>>> +PR:append = ".ti-soc1"
>>> +
>>> +SRC_URI += " \
>>> +
>>> file://0001-Revert-require-GL_EXT_unpack_subimage-commit.patch \
>>> +"
>>> diff --git
>>> a/meta-ti-bsp/recipes-graphics/wayland/weston/0001-Revert-require-GL_EXT_unpack_subimage-commit.patch b/meta-ti-bsp/recipes-graphics/wayland/weston/0001-Revert-require-GL_EXT_unpack_subimage-commit.patch
>>> new file mode 100644
>>> index 00000000..ad252030
>>> --- /dev/null
>>> +++
>>> b/meta-ti-bsp/recipes-graphics/wayland/weston/0001-Revert-require-GL_EXT_unpack_subimage-commit.patch
>>> @@ -0,0 +1,95 @@
>>> +From 5a05e5b66dd3831a9c9c2b3f64bd42419d9ade2d Mon Sep 17 00:00:00 2001
>>> +From: Denys Dmytriyenko <denys@konsulko.com>
>>> +Date: Thu, 6 Jul 2023 01:48:41 +0000
>>> +Subject: [PATCH] Revert require GL_EXT_unpack_subimage commit
>>> +
>>> +This reverts commit 593d5af43a8e2c2a3371088fa7ae430d0517c82d.
>>> +
>>> +That commit removed support for GPU drivers without
>>> GL_EXT_unpack_subimage
>>> +which SGX does not support. Add back support for GPUs without this
>>> +extension.
>>> +
>>> +Upstream-Status: Inappropriate [specific to TI SGX]
>>> +
>>> +Signed-off-by: Andrew Davis <afd@ti.com>
>>> +Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
>>> +
>>> +---
>>> + libweston/renderer-gl/gl-renderer-internal.h | 2 ++
>>> + libweston/renderer-gl/gl-renderer.c | 29 ++++++++++++++++----
>>> + 2 files changed, 26 insertions(+), 5 deletions(-)
>>> +
>>> +diff --git a/libweston/renderer-gl/gl-renderer-internal.h
>>> b/libweston/renderer-gl/gl-renderer-internal.h
>>> +index 5032035..85616c9 100644
>>> +--- a/libweston/renderer-gl/gl-renderer-internal.h
>>> ++++ b/libweston/renderer-gl/gl-renderer-internal.h
>>> +@@ -160,6 +160,8 @@ struct gl_renderer {
>>> + PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC create_platform_window;
>>> + bool has_platform_base;
>>> +
>>> ++ bool has_unpack_subimage;
>>> ++
>>> + PFNEGLBINDWAYLANDDISPLAYWL bind_display;
>>> + PFNEGLUNBINDWAYLANDDISPLAYWL unbind_display;
>>> + PFNEGLQUERYWAYLANDBUFFERWL query_buffer;
>>> +diff --git a/libweston/renderer-gl/gl-renderer.c
>>> b/libweston/renderer-gl/gl-renderer.c
>>> +index ccb41e6..38a0e0c 100644
>>> +--- a/libweston/renderer-gl/gl-renderer.c
>>> ++++ b/libweston/renderer-gl/gl-renderer.c
>>> +@@ -2106,6 +2106,7 @@ gl_renderer_flush_damage(struct weston_surface
>>> *surface,
>>> + {
>>> + const struct weston_testsuite_quirks *quirks =
>>> + &surface->compositor->test_data.test_quirks;
>>> ++ struct gl_renderer *gr = get_renderer(surface->compositor);
>>> + struct gl_surface_state *gs = get_surface_state(surface);
>>> + struct gl_buffer_state *gb = gs->buffer;
>>> + struct weston_paint_node *pnode;
>>> +@@ -2152,6 +2153,24 @@ gl_renderer_flush_damage(struct
>>> weston_surface *surface,
>>> +
>>> + glActiveTexture(GL_TEXTURE0);
>>> +
>>> ++ if (!gr->has_unpack_subimage) {
>>> ++ wl_shm_buffer_begin_access(buffer->shm_buffer);
>>> ++ for (j = 0; j < gs->buffer->num_textures; j++) {
>>> ++ glBindTexture(GL_TEXTURE_2D, gs->buffer->textures[j]);
>>> ++ glTexImage2D(GL_TEXTURE_2D, 0,
>>> ++ gs->buffer->gl_format[j],
>>> ++ gs->buffer->pitch /
>>> pixel_format_hsub(buffer->pixel_format, j),
>>> ++ buffer->height /
>>> pixel_format_vsub(buffer->pixel_format, j),
>>> ++ 0,
>>> ++
>>> gl_format_from_internal(gs->buffer->gl_format[j]),
>>> ++ gs->buffer->gl_pixel_type,
>>> ++ data + gs->buffer->offset[j]);
>>> ++ }
>>> ++ wl_shm_buffer_end_access(buffer->shm_buffer);
>>> ++
>>> ++ goto done;
>>> ++ }
>>> ++
>>> + if (gb->needs_full_upload || quirks->gl_force_full_upload) {
>>> + glPixelStorei(GL_UNPACK_SKIP_PIXELS_EXT, 0);
>>> + glPixelStorei(GL_UNPACK_SKIP_ROWS_EXT, 0);
>>> +@@ -4169,11 +4188,9 @@ gl_renderer_setup(struct weston_compositor *ec)
>>> + else
>>> + ec->read_format = pixel_format_get_info(DRM_FORMAT_ABGR8888);
>>> +
>>> +- if (gr->gl_version < gr_gl_version(3, 0) &&
>>> +- !weston_check_egl_extension(extensions,
>>> "GL_EXT_unpack_subimage")) {
>>> +- weston_log("GL_EXT_unpack_subimage not available.\n");
>>> +- return -1;
>>> +- }
>>> ++ if (gr->gl_version >= gr_gl_version(3, 0) ||
>>> ++ weston_check_egl_extension(extensions,
>>> "GL_EXT_unpack_subimage"))
>>> ++ gr->has_unpack_subimage = true;
>>> +
>>> + if (gr->gl_version >= gr_gl_version(3, 0) ||
>>> + weston_check_egl_extension(extensions,
>>> "GL_EXT_texture_type_2_10_10_10_REV"))
>>> +@@ -4268,6 +4285,8 @@ gl_renderer_setup(struct weston_compositor *ec)
>>> + gr_gl_version_minor(gr->gl_version));
>>> + weston_log_continue(STAMP_SPACE "read-back format: %s\n",
>>> + ec->read_format->drm_format_name);
>>> ++ weston_log_continue(STAMP_SPACE "wl_shm sub-image to texture:
>>> %s\n",
>>> ++ gr->has_unpack_subimage ? "yes" : "no");
>>> + weston_log_continue(STAMP_SPACE "glReadPixels supports y-flip:
>>> %s\n",
>>> + yesno(gr->has_pack_reverse));
>>> + weston_log_continue(STAMP_SPACE "wl_shm 10 bpc formats: %s\n",
>>> diff --git
>>> a/meta-ti-bsp/recipes-graphics/wayland/weston_13.0.%.bbappend
>>> b/meta-ti-bsp/recipes-graphics/wayland/weston_13.0.%.bbappend
>>> new file mode 100644
>>> index 00000000..cf4f530a
>>> --- /dev/null
>>> +++ b/meta-ti-bsp/recipes-graphics/wayland/weston_13.0.%.bbappend
>>> @@ -0,0 +1,4 @@
>>> +WESTON_TI_VERSION = ""
>>> +WESTON_TI_VERSION:ti-soc = "${BPN}-ti-version.inc"
>>> +
>>> +require ${WESTON_TI_VERSION}
>>
>
--
Ryan Eatmon reatmon@ti.com
-----------------------------------------
Texas Instruments, Inc. - LCPD - MGTS
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2025-07-28 19:55 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-28 17:33 [meta-ti][scarthgap/master][PATCH] recipes-graphics: Add weston fix for SGX from meta-arago Andrew Davis
2025-07-28 19:32 ` Denys Dmytriyenko
2025-07-28 19:36 ` Denys Dmytriyenko
2025-07-28 19:35 ` Ryan Eatmon
2025-07-28 19:46 ` Andrew Davis
2025-07-28 19:55 ` Ryan Eatmon
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.