Re: [OE-core] [PATCH 6/6] mesa: update 22.3.5 -> 23.0.0

Khem Raj
2023-03-18T18:38:16Z

On Sat, Mar 18, 2023 at 1:02 AM Alexander Kanavin
<alex.kanavin@gmail.com> wrote:
>
> Ubuntu 18.04 goes EOL next month, so it should perhaps be dropped from the builders and supported distro list?
>

Perhaps in the next cycle yes and definitely for the next LTS it
should be dropped.

Its stll supported via Extended Security Maintenance (ESM) and users
maybe still be using it.

mesa needs gcc > 8 as per
https://docs.mesa3d.org/install.html?highlight=gcc+version#compiler
so 7.5 default on ubuntu 18.04 is falling under unsupported compilers
for mesa. So we should be recommending
buildtools-tarball-extra and also installing it on ubuntu 18.04 workers.

> Alex
>
> On Sat 18. Mar 2023 at 2.47, Khem Raj <raj.khem@gmail.com> wrote:
>>
>> mesa 23.x fails to build with default gcc ( 7.5.0 ) Ubuntu
>> 7.5.0-3ubuntu1~18.04, it ends up with
>>
>> ../mesa-23.0.0/src/intel/compiler/brw_simd_selection.cpp: In function
>> ‘int brw_simd_select_for_workgroup_size(const intel_device_info*,
>> const brw_cs_prog_data*, const unsigned int*)’:
>> ../mesa-23.0.0/src/intel/compiler/brw_simd_selection.cpp:205:7: sorry,
>> unimplemented: non-trivial designated initializers not supported
>> };
>> ^
>>
>> see mesa-native failure
>>
>> https://errors.yoctoproject.org/Errors/Details/698144/
>>
>> I wonder how it works on AB nodes running Ubuntu 18.04. Do we enforce
>> gcc from buildtools tarball there ?
>>
>> On Thu, Mar 16, 2023 at 2:41 AM Alexander Kanavin
>> <alex.kanavin@gmail.com> wrote:
>> >
>> > Drop patches:
>> > 0001-gbm-backend-fix-gbm-compile-without-dri.patch
>> > 0001-freedreno-pm4-Use-unsigned-instead-of-uint-to-fix-mu.patch
>> > (backports)
>> >
>> > 0001-util-format-Check-for-NEON-before-using-it.patch
>> > (upstream submission has stalled with unanswered concerns from upstream;
>> > patch no longer applies; issue does not reproduce with 'raspberrypi0-wifi' MACHINE)
>> >
>> > Signed-off-by: Alexander Kanavin <alex@linutronix.de>
>> > ---
>> > ...e-unsigned-instead-of-uint-to-fix-mu.patch | 44 -------------
>> > ...-backend-fix-gbm-compile-without-dri.patch | 65 -------------------
>> > ...ormat-Check-for-NEON-before-using-it.patch | 47 --------------
>> > .../{mesa-gl_22.3.5.bb => mesa-gl_23.0.0.bb} | 0
>> > meta/recipes-graphics/mesa/mesa.inc | 5 +-
>> > .../mesa/{mesa_22.3.5.bb => mesa_23.0.0.bb} | 0
>> > 6 files changed, 1 insertion(+), 160 deletions(-)
>> > delete mode 100644 meta/recipes-graphics/mesa/files/0001-freedreno-pm4-Use-unsigned-instead-of-uint-to-fix-mu.patch
>> > delete mode 100644 meta/recipes-graphics/mesa/files/0001-gbm-backend-fix-gbm-compile-without-dri.patch
>> > delete mode 100644 meta/recipes-graphics/mesa/files/0001-util-format-Check-for-NEON-before-using-it.patch
>> > rename meta/recipes-graphics/mesa/{mesa-gl_22.3.5.bb => mesa-gl_23.0.0.bb} (100%)
>> > rename meta/recipes-graphics/mesa/{mesa_22.3.5.bb => mesa_23.0.0.bb} (100%)
>> >
>> > diff --git a/meta/recipes-graphics/mesa/files/0001-freedreno-pm4-Use-unsigned-instead-of-uint-to-fix-mu.patch b/meta/recipes-graphics/mesa/files/0001-freedreno-pm4-Use-unsigned-instead-of-uint-to-fix-mu.patch
>> > deleted file mode 100644
>> > index 3ab22889bf..0000000000
>> > --- a/meta/recipes-graphics/mesa/files/0001-freedreno-pm4-Use-unsigned-instead-of-uint-to-fix-mu.patch
>> > +++ /dev/null
>> > @@ -1,44 +0,0 @@
>> > -From 8a5de0b6cf1090d7f29f3974ec79c32776cf2745 Mon Sep 17 00:00:00 2001
>> > -From: Jami Kettunen <jami.kettunen@protonmail.com>
>> > -Date: Tue, 31 Aug 2021 00:15:58 +0300
>> > -Subject: [PATCH] freedreno/pm4: Use unsigned instead of uint to fix musl build
>> > -
>> > -Upstream-Status: Backport
>> > -
>> > -Fixes the following error I noticed when building against aarch64 with
>> > -musl libc:
>> > -
>> > - In file included from ../src/freedreno/decode/crashdec.h:38,
>> > - from ../src/freedreno/decode/crashdec.c:40:
>> > - ../src/freedreno/common/freedreno_pm4.h:104:15: error: unknown type name 'uint'
>> > - 104 | static inline uint
>> > - | ^~~~
>> > - ../src/freedreno/common/freedreno_pm4.h:105:25: error: unknown type name 'uint'; did you mean 'int'?
>> > - 105 | pm4_calc_odd_parity_bit(uint val)
>> > - | ^~~~
>> > - | int
>> > -
>> > -Signed-off-by: Jami Kettunen <jami.kettunen@protonmail.com>
>> > -Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19665>
>> > ----
>> > - src/freedreno/common/freedreno_pm4.h | 4 ++--
>> > - 1 file changed, 2 insertions(+), 2 deletions(-)
>> > -
>> > -diff --git a/src/freedreno/common/freedreno_pm4.h b/src/freedreno/common/freedreno_pm4.h
>> > -index 8f958953d693..091247e709a0 100644
>> > ---- a/src/freedreno/common/freedreno_pm4.h
>> > -+++ b/src/freedreno/common/freedreno_pm4.h
>> > -@@ -105,8 +105,8 @@ pm4_pkt7_hdr(uint8_t opcode, uint16_t cnt)
>> > - #define cp_type3_opcode(pkt) (((pkt) >> 8) & 0xFF)
>> > - #define type3_pkt_size(pkt) ((((pkt) >> 16) & 0x3FFF) + 1)
>> > -
>> > --static inline uint
>> > --pm4_calc_odd_parity_bit(uint val)
>> > -+static inline unsigned
>> > -+pm4_calc_odd_parity_bit(unsigned val)
>> > - {
>> > - return (0x9669 >> (0xf & ((val) ^ ((val) >> 4) ^ ((val) >> 8) ^
>> > - ((val) >> 12) ^ ((val) >> 16) ^ ((val) >> 20) ^
>> > ---
>> > -2.39.2
>> > -
>> > diff --git a/meta/recipes-graphics/mesa/files/0001-gbm-backend-fix-gbm-compile-without-dri.patch b/meta/recipes-graphics/mesa/files/0001-gbm-backend-fix-gbm-compile-without-dri.patch
>> > deleted file mode 100644
>> > index 6541671b7a..0000000000
>> > --- a/meta/recipes-graphics/mesa/files/0001-gbm-backend-fix-gbm-compile-without-dri.patch
>> > +++ /dev/null
>> > @@ -1,65 +0,0 @@
>> > -From 25946100e21cf2095bea334e8d7096798561d0b7 Mon Sep 17 00:00:00 2001
>> > -From: Vincent Davis Jr <vince@underview.tech>
>> > -Date: Wed, 28 Dec 2022 16:28:01 -0600
>> > -Subject: [PATCH] gbm/backend: fix gbm compile without dri
>> > -
>> > -Upstream-Status: Backport
>> > -
>> > -https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20447
>> > -https://gitlab.freedesktop.org/mesa/mesa/-/commit/842ca284650f066e58706741a7d22d67b5088e60
>> > -
>> > -At mesa version 22.2.3 patch wasn't introduced until after.
>> > -
>> > -Commit introduces a fix that allows for gbm to be built with an empty
>> > -backend. There are situation especially in a Yocto/OE cross compilation
>> > -environment where you want to build with an empty backend. The particular
>> > -situation is as such:
>> > -
>> > -The mesa-gl recipe is the preferred provider for virtual/libgbm, virtual/libgl,
>> > -virtual/mesa, etc... But the x11 DISTRO_FEATURE in't included this leads to build
>> > -errors such as:
>> > -
>> > -| /../../../ld: src/gbm/libgbm.so.1.0.0.p/main_backend.c.o: in function `find_backend':
>> > -| backend.c:(.text.find_backend+0xa4): undefined reference to `gbm_dri_backend'
>> > -| /../../../ld: src/gbm/libgbm.so.1.0.0.p/main_backend.c.o:(.data.rel.ro.builtin_backends+0x4):
>> > - undefined reference to `gbm_dri_backend'
>> > -| collect2: error: ld returned 1 exit status
>> > -
>> > -Issue should be replicable by setting -Ddri3=disabled and -Dgbm=enabled
>> > -
>> > -Add fix to bypasses compilation issue by excluding gbm dri backend. If
>> > -HAVE_DRI || HAVE_DRIX not specified.
>> > -
>> > -Acked-by: David Heidelberg <david.heidelberg@collabora.com>
>> > -Signed-off-by: Vincent Davis Jr <vince@underview.tech>
>> > ----
>> > - src/gbm/main/backend.c | 4 ++++
>> > - 1 file changed, 4 insertions(+)
>> > -
>> > -diff --git a/src/gbm/main/backend.c b/src/gbm/main/backend.c
>> > -index 974d0a76a4e..feee0703495 100644
>> > ---- a/src/gbm/main/backend.c
>> > -+++ b/src/gbm/main/backend.c
>> > -@@ -42,7 +42,9 @@
>> > - #define ARRAY_SIZE(a) (sizeof(a)/sizeof((a)[0]))
>> > - #define VER_MIN(a, b) ((a) < (b) ? (a) : (b))
>> > -
>> > -+#if defined(HAVE_DRI) || defined(HAVE_DRI2) || defined(HAVE_DRI3)
>> > - extern const struct gbm_backend gbm_dri_backend;
>> > -+#endif
>> > -
>> > - struct gbm_backend_desc {
>> > - const char *name;
>> > -@@ -51,7 +53,9 @@ struct gbm_backend_desc {
>> > - };
>> > -
>> > - static const struct gbm_backend_desc builtin_backends[] = {
>> > -+#if defined(HAVE_DRI) || defined(HAVE_DRI2) || defined(HAVE_DRI3)
>> > - { "dri", &gbm_dri_backend },
>> > -+#endif
>> > - };
>> > -
>> > - #define BACKEND_LIB_SUFFIX "_gbm"
>> > ---
>> > -2.34.1
>> > -
>> > diff --git a/meta/recipes-graphics/mesa/files/0001-util-format-Check-for-NEON-before-using-it.patch b/meta/recipes-graphics/mesa/files/0001-util-format-Check-for-NEON-before-using-it.patch
>> > deleted file mode 100644
>> > index d22ff3c8a8..0000000000
>> > --- a/meta/recipes-graphics/mesa/files/0001-util-format-Check-for-NEON-before-using-it.patch
>> > +++ /dev/null
>> > @@ -1,47 +0,0 @@
>> > -From f17e836ef9b1bbc6056790596420b699e48128c2 Mon Sep 17 00:00:00 2001
>> > -From: Khem Raj <raj.khem@gmail.com>
>> > -Date: Thu, 2 Dec 2021 19:57:42 -0800
>> > -Subject: [PATCH] util/format: Check for NEON before using it
>> > -
>> > -This fixes build on rpi0-w and any other machine which does not have
>> > -neon unit and is not used as FPU unit
>> > -
>> > -Fixes errors e.g.
>> > -
>> > -In file included from ../mesa-21.3.0/src/util/format/u_format_unpack_neon.c:35:
>> > -/mnt/b/yoe/master/build/tmp/work/arm1176jzfshf-vfp-yoe-linux-gnueabi/mesa/2_21.3.0-r0/recipe-sysroot-native/usr/lib/clang/13.0.1/include/arm_neon.h:32:2: error: "NEON support not enabled"
>> > -
>> > -Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14032]
>> > -Signed-off-by: Khem Raj <raj.khem@gmail.com>
>> > -
>> > ----
>> > - src/util/format/u_format.c | 2 +-
>> > - src/util/format/u_format_unpack_neon.c | 2 +-
>> > - 2 files changed, 2 insertions(+), 2 deletions(-)
>> > -
>> > -diff --git a/src/util/format/u_format.c b/src/util/format/u_format.c
>> > -index c071250..0880984 100644
>> > ---- a/src/util/format/u_format.c
>> > -+++ b/src/util/format/u_format.c
>> > -@@ -1184,7 +1184,7 @@ static void
>> > - util_format_unpack_table_init(void)
>> > - {
>> > - for (enum pipe_format format = PIPE_FORMAT_NONE; format < PIPE_FORMAT_COUNT; format++) {
>> > --#if (defined(PIPE_ARCH_AARCH64) || defined(PIPE_ARCH_ARM)) && !defined(NO_FORMAT_ASM) && !defined(__SOFTFP__)
>> > -+#if (defined(PIPE_ARCH_AARCH64) || (defined(__ARM_NEON) && defined(PIPE_ARCH_ARM))) && !defined(NO_FORMAT_ASM)
>> > - const struct util_format_unpack_description *unpack = util_format_unpack_description_neon(format);
>> > - if (unpack) {
>> > - util_format_unpack_table[format] = unpack;
>> > -diff --git a/src/util/format/u_format_unpack_neon.c b/src/util/format/u_format_unpack_neon.c
>> > -index a4a5cb1..1e4f794 100644
>> > ---- a/src/util/format/u_format_unpack_neon.c
>> > -+++ b/src/util/format/u_format_unpack_neon.c
>> > -@@ -23,7 +23,7 @@
>> > -
>> > - #include <u_format.h>
>> > -
>> > --#if (defined(PIPE_ARCH_AARCH64) || defined(PIPE_ARCH_ARM)) && !defined(NO_FORMAT_ASM) && !defined(__SOFTFP__)
>> > -+#if (defined(PIPE_ARCH_AARCH64) || (defined(__ARM_NEON) && defined(PIPE_ARCH_ARM))) && !defined(NO_FORMAT_ASM)
>> > -
>> > - /* armhf builds default to vfp, not neon, and refuses to compile neon intrinsics
>> > - * unless you tell it "no really".
>> > diff --git a/meta/recipes-graphics/mesa/mesa-gl_22.3.5.bb b/meta/recipes-graphics/mesa/mesa-gl_23.0.0.bb
>> > similarity index 100%
>> > rename from meta/recipes-graphics/mesa/mesa-gl_22.3.5.bb
>> > rename to meta/recipes-graphics/mesa/mesa-gl_23.0.0.bb
>> > diff --git a/meta/recipes-graphics/mesa/mesa.inc b/meta/recipes-graphics/mesa/mesa.inc
>> > index b082b49400..8f72f25c17 100644
>> > --- a/meta/recipes-graphics/mesa/mesa.inc
>> > +++ b/meta/recipes-graphics/mesa/mesa.inc
>> > @@ -17,12 +17,9 @@ PE = "2"
>> > SRC_URI = "https://mesa.freedesktop.org/archive/mesa-${PV}.tar.xz \
>> > file://0001-meson.build-check-for-all-linux-host_os-combinations.patch \
>> > file://0001-meson-misdetects-64bit-atomics-on-mips-clang.patch \
>> > - file://0001-util-format-Check-for-NEON-before-using-it.patch \
>> > - file://0001-gbm-backend-fix-gbm-compile-without-dri.patch \
>> > - file://0001-freedreno-pm4-Use-unsigned-instead-of-uint-to-fix-mu.patch \
>> > "
>> >
>> > -SRC_URI[sha256sum] = "3eed2ecae2bc674494566faab9fcc9beb21cd804c7ba2b59a1694f3d7236e6a9"
>> > +SRC_URI[sha256sum] = "01f3cff3763f09e0adabcb8011e4aebc6ad48f6a4dd4bae904fe918707d253e4"
>> >
>> > UPSTREAM_CHECK_GITTAGREGEX = "mesa-(?P<pver>\d+(\.\d+)+)"
>> >
>> > diff --git a/meta/recipes-graphics/mesa/mesa_22.3.5.bb b/meta/recipes-graphics/mesa/mesa_23.0.0.bb
>> > similarity index 100%
>> > rename from meta/recipes-graphics/mesa/mesa_22.3.5.bb
>> > rename to meta/recipes-graphics/mesa/mesa_23.0.0.bb
>> > --
>> > 2.30.2
>> >
>> >
>> > -=-=-=-=-=-=-=-=-=-=-=-
>> > Links: You receive all messages sent to this group.
>> > View/Reply Online (#178696): https://lists.openembedded.org/g/openembedded-core/message/178696
>> > Mute This Topic: https://lists.openembedded.org/mt/97647023/1997914
>> > Group Owner: openembedded-core+owner@lists.openembedded.org
>> > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [raj.khem@gmail.com]
>> > -=-=-=-=-=-=-=-=-=-=-=-
>> >