From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id AB366C87FCA for ; Thu, 31 Jul 2025 18:47:32 +0000 (UTC) Received: from mailout4.zoneedit.com (mailout4.zoneedit.com [64.68.198.64]) by mx.groups.io with SMTP id smtpd.web11.69998.1753987644840571471 for ; Thu, 31 Jul 2025 11:47:25 -0700 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: denix.org, ip: 64.68.198.64, mailfrom: denis@denix.org) Received: from localhost (localhost [127.0.0.1]) by mailout4.zoneedit.com (Postfix) with ESMTP id 4BAD240C56; Thu, 31 Jul 2025 18:47:24 +0000 (UTC) Received: from mailout4.zoneedit.com ([127.0.0.1]) by localhost (zmo14-pco.easydns.vpn [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id tciRJglH-Erp; Thu, 31 Jul 2025 18:47:24 +0000 (UTC) Received: from mail.denix.org (pool-100-15-87-159.washdc.fios.verizon.net [100.15.87.159]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mailout4.zoneedit.com (Postfix) with ESMTPSA id 09A5D40AE9; Thu, 31 Jul 2025 18:47:20 +0000 (UTC) Received: by mail.denix.org (Postfix, from userid 1000) id C156716D7A9; Thu, 31 Jul 2025 14:47:20 -0400 (EDT) Date: Thu, 31 Jul 2025 14:47:20 -0400 From: Denys Dmytriyenko To: afd@ti.com Cc: Denys Dmytriyenko , Ryan Eatmon , meta-ti@lists.yoctoproject.org Subject: Re: [meta-ti][master][PATCH] recipes-graphics: Add weston fix for SGX from meta-arago Message-ID: <20250731184720.GR24899@denix.org> References: <20250731181617.195697-1-afd@ti.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250731181617.195697-1-afd@ti.com> User-Agent: Mutt/1.5.20 (2009-06-14) List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 31 Jul 2025 18:47:32 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/meta-ti/message/18861 On Thu, Jul 31, 2025 at 01:16:17PM -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 Acked-by: Denys Dmytriyenko > --- > .../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 > +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 > +Signed-off-by: Denys Dmytriyenko > + > +--- > + 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