Message ID | 20250327123701.3906604-1-dmitry.baryshkov@oss.qualcomm.com |
---|---|
Headers | show |
Series | mesa: upgrade to 25.0.2 | expand |
On Thu, 27 Mar 2025 at 15:20, Dmitry Baryshkov via lists.openembedded.org <dmitry.baryshkov=oss.qualcomm.com@lists.openembedded.org> wrote: > I think this approach provides a good balance between OE-Core being > stuck with the outdated Mesa release and being able to upgrade it, > bringing support for new hardware. I like the approach, but I don't particularly like the volume and amount of 'Inappropriate' patches this set brings in. This will complicate future maintenance, and particularly version updates. In addition to what Ross said, can you see what can be reworked for upstream submission, and what can be at least reported to upstream? Alex
On 27/03/2025 19:54, Alexander Kanavin wrote: > On Thu, 27 Mar 2025 at 15:20, Dmitry Baryshkov via > lists.openembedded.org > <dmitry.baryshkov=oss.qualcomm.com@lists.openembedded.org> wrote: >> I think this approach provides a good balance between OE-Core being >> stuck with the outdated Mesa release and being able to upgrade it, >> bringing support for new hardware. > > I like the approach, but I don't particularly like the volume and > amount of 'Inappropriate' patches this set brings in. This will > complicate future maintenance, and particularly version updates. > > In addition to what Ross said, can you see what can be reworked for > upstream submission, and what can be at least reported to upstream? I have reworked the patch to use prefix+libdir instead of LLVM_LIBRARY_DIR, but I'll investigate if we can drop that completely in favour of reporting a correct libdir from llvm-config script. Other than that, I'll ping Karol regarding the bindgen invocation hacks.
libclc is required in order to build Intel drivers in Mesa 24.1 and later. Thus OE-Core is currently locked to the 24.0.x branch, which is no longer maintained, having last release in June 2024. A clean solution is to package Clang, then use it to build libclc and SPIRV-LLVM-Translator (required for Mesa OpenCL support). However creating proper recipes for Clang is a long process (ongoing by Khem Raj). This patchset attempts to solve the issue in a simpler way: by building libclc and SPIRV-LLVM-Translator together with the LLVM. This way we don't have to create target Clang recipes, there is no extra toolchain to support, etc. Clang binaries are creted as a part of the build process (in order to support building target packages), however it only hits the LLVM sysroot-native and is only used by the LLVM target build. Future work by Khem (once Clang is properly supported in OE-Core) should allow us to create proper recipes for libclc and spirv-llvm-translator and drop them from the llvm / clang recipe. I think this approach provides a good balance between OE-Core being stuck with the outdated Mesa release and being able to upgrade it, bringing support for new hardware. Last two patches of the series bring in RustiCL support, a new OpenCL implementation within Mesa. They are optional for the sake of the upgrade and can be dropped if there is any issue with those. RustiCL support is mostly compile-tested at this point. Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> Dmitry Baryshkov (7): llvm: move libLLVM.so.N.M to llvm-libllvm package llvm: use OECMAKE_SOURCEPATH to specify cmake dir llvm: support building libclc llvm: import YOCTO_ALTERNATE_LIBDIR patch from meta-clang llvm: add SPIRV-LLVM-Translator support mesa: upgrade 24.0.7 -> 25.0.2 bindgen-cli: a tool to generate Rust bindings Zoltán Böszörményi (1): mesa: add support for RustiCL under PACKAGECONFIG "opencl" meta/conf/distro/include/maintainers.inc | 1 + .../bindgen-cli/bindgen-cli-crates.inc | 186 ++++++++++++++++++ .../bindgen-cli/bindgen-cli_0.71.1.bb | 19 ++ ...ossCompile-pass-SPIR-V-headers-path-.patch | 40 ++++ ...-llvm-allow-env-override-of-exe-path.patch | 41 +++- .../llvm/llvm/fix-native-compilation.patch | 67 +++++++ meta/recipes-devtools/llvm/llvm/llvm-config | 7 + .../llvm/llvm/spirv-internal-build.patch | 27 +++ meta/recipes-devtools/llvm/llvm_20.1.0.bb | 76 ++++++- ...-meson-do-not-pull-in-clc-for-clover.patch | 53 ----- ...lude-missing-llvm-IR-header-Module.h.patch | 41 ---- .../0001-drisw-fix-build-without-dri3.patch | 58 ------ ...on-t-encode-build-path-into-binaries.patch | 46 ++++- ...son-use-target-path-for-Clang-libdir.patch | 42 ++++ ...cross-compilation-arguments-to-LLVM-.patch | 64 ++++++ ...on-t-try-zink-if-not-enabled-in-mesa.patch | 42 ---- meta/recipes-graphics/mesa/mesa.inc | 103 +++++----- 17 files changed, 656 insertions(+), 257 deletions(-) create mode 100644 meta/recipes-devtools/bindgen-cli/bindgen-cli-crates.inc create mode 100644 meta/recipes-devtools/bindgen-cli/bindgen-cli_0.71.1.bb create mode 100644 meta/recipes-devtools/llvm/llvm/0001-cmake-modules-CrossCompile-pass-SPIR-V-headers-path-.patch create mode 100644 meta/recipes-devtools/llvm/llvm/fix-native-compilation.patch create mode 100644 meta/recipes-devtools/llvm/llvm/spirv-internal-build.patch delete mode 100644 meta/recipes-graphics/mesa/files/0001-Revert-meson-do-not-pull-in-clc-for-clover.patch delete mode 100644 meta/recipes-graphics/mesa/files/0001-amd-Include-missing-llvm-IR-header-Module.h.patch delete mode 100644 meta/recipes-graphics/mesa/files/0001-drisw-fix-build-without-dri3.patch create mode 100644 meta/recipes-graphics/mesa/files/0001-meson-use-target-path-for-Clang-libdir.patch create mode 100644 meta/recipes-graphics/mesa/files/0001-rusticl-provide-cross-compilation-arguments-to-LLVM-.patch delete mode 100644 meta/recipes-graphics/mesa/files/0002-glxext-don-t-try-zink-if-not-enabled-in-mesa.patch