From: Andrew Davis <afd@ti.com>
To: Denys Dmytriyenko <denys@konsulko.com>,
Ryan Eatmon <reatmon@ti.com>, <meta-ti@lists.yoctoproject.org>
Cc: Andrew Davis <afd@ti.com>
Subject: [meta-ti][master][PATCH] recipes-graphics: Add weston fix for SGX from meta-arago
Date: Thu, 31 Jul 2025 13:16:17 -0500 [thread overview]
Message-ID: <20250731181617.195697-1-afd@ti.com> (raw)
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_14.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_14.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..fbe8f2bb
--- /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
+@@ -229,6 +229,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 e694418b..2be6d621 100644
+--- a/libweston/renderer-gl/gl-renderer.c
++++ b/libweston/renderer-gl/gl-renderer.c
+@@ -2523,6 +2523,7 @@ gl_renderer_flush_damage(struct weston_paint_node *pnode)
+ struct weston_surface *surface = pnode->surface;
+ const struct weston_testsuite_quirks *quirks =
+ &surface->compositor->test_data.test_quirks;
++ struct gl_renderer *gr = get_renderer(surface->compositor);
+ struct weston_buffer *buffer = surface->buffer_ref.buffer;
+ struct gl_surface_state *gs = get_surface_state(surface);
+ struct gl_buffer_state *gb = gs->buffer;
+@@ -2550,6 +2551,24 @@ gl_renderer_flush_damage(struct weston_paint_node *pnode)
+
+ data = wl_shm_buffer_get_data(buffer->shm_buffer);
+
++ 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) {
+ wl_shm_buffer_begin_access(buffer->shm_buffer);
+
+@@ -4754,11 +4773,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"))
+@@ -4880,6 +4897,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 "glReadPixels supports PBO: %s\n",
diff --git a/meta-ti-bsp/recipes-graphics/wayland/weston_14.0.%.bbappend b/meta-ti-bsp/recipes-graphics/wayland/weston_14.0.%.bbappend
new file mode 100644
index 00000000..cf4f530a
--- /dev/null
+++ b/meta-ti-bsp/recipes-graphics/wayland/weston_14.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
next reply other threads:[~2025-07-31 18:16 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-31 18:16 Andrew Davis [this message]
2025-07-31 18:47 ` [meta-ti][master][PATCH] recipes-graphics: Add weston fix for SGX from meta-arago Denys Dmytriyenko
2025-08-05 14:56 ` Daniel Schultz
2025-08-05 15:20 ` Andrew Davis
2025-08-05 22:32 ` Daniel Schultz
2025-08-06 12:24 ` Ryan Eatmon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250731181617.195697-1-afd@ti.com \
--to=afd@ti.com \
--cc=denys@konsulko.com \
--cc=meta-ti@lists.yoctoproject.org \
--cc=reatmon@ti.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.