summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Davis <afd@ti.com>2025-07-31 13:16:17 -0500
committerRyan Eatmon <reatmon@ti.com>2025-07-31 14:53:45 -0500
commit0b73bcdd128a5845b75e5000c575b9a75ebdeffb (patch)
treec68fd6312bbcdb6e8e5c5220604b4a606bfa1e51
parent8200cee36c0425a7ddf40a41e3819c73887ba6a6 (diff)
downloadmeta-ti-0b73bcdd128a5845b75e5000c575b9a75ebdeffb.tar.gz
recipes-graphics: Add weston fix for SGX from meta-arago
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> Signed-off-by: Ryan Eatmon <reatmon@ti.com>
-rw-r--r--meta-ti-bsp/recipes-graphics/wayland/weston-ti-version.inc7
-rw-r--r--meta-ti-bsp/recipes-graphics/wayland/weston/0001-Revert-require-GL_EXT_unpack_subimage-commit.patch95
-rw-r--r--meta-ti-bsp/recipes-graphics/wayland/weston_14.0.%.bbappend4
3 files changed, 106 insertions, 0 deletions
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 @@
1FILESEXTRAPATHS:prepend := "${THISDIR}/weston:"
2
3PR:append = ".ti-soc1"
4
5SRC_URI += " \
6 file://0001-Revert-require-GL_EXT_unpack_subimage-commit.patch \
7"
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 @@
1From 5a05e5b66dd3831a9c9c2b3f64bd42419d9ade2d Mon Sep 17 00:00:00 2001
2From: Denys Dmytriyenko <denys@konsulko.com>
3Date: Thu, 6 Jul 2023 01:48:41 +0000
4Subject: [PATCH] Revert require GL_EXT_unpack_subimage commit
5
6This reverts commit 593d5af43a8e2c2a3371088fa7ae430d0517c82d.
7
8That commit removed support for GPU drivers without GL_EXT_unpack_subimage
9which SGX does not support. Add back support for GPUs without this
10extension.
11
12Upstream-Status: Inappropriate [specific to TI SGX]
13
14Signed-off-by: Andrew Davis <afd@ti.com>
15Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
16
17---
18 libweston/renderer-gl/gl-renderer-internal.h | 2 ++
19 libweston/renderer-gl/gl-renderer.c | 29 ++++++++++++++++----
20 2 files changed, 26 insertions(+), 5 deletions(-)
21
22diff --git a/libweston/renderer-gl/gl-renderer-internal.h b/libweston/renderer-gl/gl-renderer-internal.h
23index 5032035..85616c9 100644
24--- a/libweston/renderer-gl/gl-renderer-internal.h
25+++ b/libweston/renderer-gl/gl-renderer-internal.h
26@@ -229,6 +229,8 @@ struct gl_renderer {
27 PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC create_platform_window;
28 bool has_platform_base;
29
30+ bool has_unpack_subimage;
31+
32 PFNEGLBINDWAYLANDDISPLAYWL bind_display;
33 PFNEGLUNBINDWAYLANDDISPLAYWL unbind_display;
34 PFNEGLQUERYWAYLANDBUFFERWL query_buffer;
35diff --git a/libweston/renderer-gl/gl-renderer.c b/libweston/renderer-gl/gl-renderer.c
36index e694418b..2be6d621 100644
37--- a/libweston/renderer-gl/gl-renderer.c
38+++ b/libweston/renderer-gl/gl-renderer.c
39@@ -2523,6 +2523,7 @@ gl_renderer_flush_damage(struct weston_paint_node *pnode)
40 struct weston_surface *surface = pnode->surface;
41 const struct weston_testsuite_quirks *quirks =
42 &surface->compositor->test_data.test_quirks;
43+ struct gl_renderer *gr = get_renderer(surface->compositor);
44 struct weston_buffer *buffer = surface->buffer_ref.buffer;
45 struct gl_surface_state *gs = get_surface_state(surface);
46 struct gl_buffer_state *gb = gs->buffer;
47@@ -2550,6 +2551,24 @@ gl_renderer_flush_damage(struct weston_paint_node *pnode)
48
49 data = wl_shm_buffer_get_data(buffer->shm_buffer);
50
51+ if (!gr->has_unpack_subimage) {
52+ wl_shm_buffer_begin_access(buffer->shm_buffer);
53+ for (j = 0; j < gs->buffer->num_textures; j++) {
54+ glBindTexture(GL_TEXTURE_2D, gs->buffer->textures[j]);
55+ glTexImage2D(GL_TEXTURE_2D, 0,
56+ gs->buffer->gl_format[j],
57+ gs->buffer->pitch / pixel_format_hsub(buffer->pixel_format, j),
58+ buffer->height / pixel_format_vsub(buffer->pixel_format, j),
59+ 0,
60+ gl_format_from_internal(gs->buffer->gl_format[j]),
61+ gs->buffer->gl_pixel_type,
62+ data + gs->buffer->offset[j]);
63+ }
64+ wl_shm_buffer_end_access(buffer->shm_buffer);
65+
66+ goto done;
67+ }
68+
69 if (gb->needs_full_upload || quirks->gl_force_full_upload) {
70 wl_shm_buffer_begin_access(buffer->shm_buffer);
71
72@@ -4754,11 +4773,9 @@ gl_renderer_setup(struct weston_compositor *ec)
73 else
74 ec->read_format = pixel_format_get_info(DRM_FORMAT_ABGR8888);
75
76- if (gr->gl_version < gr_gl_version(3, 0) &&
77- !weston_check_egl_extension(extensions, "GL_EXT_unpack_subimage")) {
78- weston_log("GL_EXT_unpack_subimage not available.\n");
79- return -1;
80- }
81+ if (gr->gl_version >= gr_gl_version(3, 0) ||
82+ weston_check_egl_extension(extensions, "GL_EXT_unpack_subimage"))
83+ gr->has_unpack_subimage = true;
84
85 if (gr->gl_version >= gr_gl_version(3, 0) ||
86 weston_check_egl_extension(extensions, "GL_EXT_texture_type_2_10_10_10_REV"))
87@@ -4880,6 +4897,8 @@ gl_renderer_setup(struct weston_compositor *ec)
88 gr_gl_version_minor(gr->gl_version));
89 weston_log_continue(STAMP_SPACE "read-back format: %s\n",
90 ec->read_format->drm_format_name);
91+ weston_log_continue(STAMP_SPACE "wl_shm sub-image to texture: %s\n",
92+ gr->has_unpack_subimage ? "yes" : "no");
93 weston_log_continue(STAMP_SPACE "glReadPixels supports y-flip: %s\n",
94 yesno(gr->has_pack_reverse));
95 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 @@
1WESTON_TI_VERSION = ""
2WESTON_TI_VERSION:ti-soc = "${BPN}-ti-version.inc"
3
4require ${WESTON_TI_VERSION}