commit:     9797e687d9bf332f49dc448791510e85efc20257
Author:     Niccolò Belli <niccolo.belli <AT> linuxsystems <DOT> it>
AuthorDate: Thu Nov 10 10:55:29 2022 +0000
Commit:     Matt Turner <mattst88 <AT> gentoo <DOT> org>
CommitDate: Fri May 12 17:18:42 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9797e687

media-libs/mesa: use rusticl instead of clover

This has two notable regressions:
  - No multilib support
  - No R600 support

Bug: https://bugs.gentoo.org/880615
Closes: https://bugs.gentoo.org/872677
Signed-off-by: Niccolò Belli <niccolo.belli <AT> linuxsystems.it>
Signed-off-by: Matt Turner <mattst88 <AT> gentoo.org>

 media-libs/mesa/mesa-9999.ebuild        | 32 +++++++++++++++++---------------
 media-libs/mesa/metadata.xml            |  2 +-
 profiles/arch/x86/package.use.mask      |  4 ++++
 profiles/features/wd40/package.use.mask |  4 ++++
 4 files changed, 26 insertions(+), 16 deletions(-)

diff --git a/media-libs/mesa/mesa-9999.ebuild b/media-libs/mesa/mesa-9999.ebuild
index dba9e680f61f..ca386dd38126 100644
--- a/media-libs/mesa/mesa-9999.ebuild
+++ b/media-libs/mesa/mesa-9999.ebuild
@@ -67,9 +67,10 @@ RDEPEND="
        )
        lm-sensors? ( sys-apps/lm-sensors:=[${MULTILIB_USEDEP}] )
        opencl? (
-               >=virtual/opencl-3[${MULTILIB_USEDEP}]
-               dev-libs/libclc
-               virtual/libelf:0=[${MULTILIB_USEDEP}]
+               >=virtual/opencl-3
+               dev-libs/libclc[spirv(-)]
+               >=dev-util/spirv-tools-1.3.231.0
+               virtual/libelf:0=
        )
        vaapi? (
                >=media-libs/libva-1.7.3:=[${MULTILIB_USEDEP}]
@@ -112,6 +113,7 @@ PER_SLOT_DEPSTR="
        (
                !opencl? ( sys-devel/llvm:@SLOT@[${LLVM_USE_DEPS}] )
                opencl? ( sys-devel/clang:@SLOT@[${LLVM_USE_DEPS}] )
+               opencl? ( dev-util/spirv-llvm-translator:@SLOT@ )
        )
 "
 LLVM_DEPSTR="
@@ -138,9 +140,11 @@ DEPEND="${RDEPEND}
        )
 "
 BDEPEND="
+       >=dev-util/meson-1.0.0
        ${PYTHON_DEPS}
        opencl? (
-               >=sys-devel/gcc-4.6
+               >=virtual/rust-1.62.0
+               >=dev-util/bindgen-0.58.0
        )
        sys-devel/bison
        sys-devel/flex
@@ -163,6 +167,7 @@ x86? (
 llvm_check_deps() {
        if use opencl; then
                has_version "sys-devel/clang:${LLVM_SLOT}[${LLVM_USE_DEPS}]" || 
return 1
+               has_version "dev-util/spirv-llvm-translator:${LLVM_SLOT}" || 
return 1
        fi
        has_version "sys-devel/llvm:${LLVM_SLOT}[${LLVM_USE_DEPS}]"
 }
@@ -178,13 +183,6 @@ pkg_pretend() {
                fi
        fi
 
-       if use opencl; then
-               if ! use video_cards_r600 &&
-                  ! use video_cards_radeonsi; then
-                       ewarn "Ignoring USE=opencl     since VIDEO_CARDS does 
not contain r600 or radeonsi"
-               fi
-       fi
-
        if use vaapi; then
                if ! use video_cards_d3d12 &&
                   ! use video_cards_r600 &&
@@ -334,10 +332,14 @@ multilib_src_configure() {
                gallium_enable video_cards_radeon r300 r600
        fi
 
-       # opencl stuff
-       emesonargs+=(
-               -Dgallium-opencl="$(usex opencl icd disabled)"
-       )
+       if use llvm && use opencl; then
+               PKG_CONFIG_PATH="$(get_llvm_prefix)/$(get_libdir)/pkgconfig"
+               # See 
https://gitlab.freedesktop.org/mesa/mesa/-/blob/main/docs/rusticl.rst
+               emesonargs+=(
+                       $(meson_native_true gallium-rusticl)
+                       -Drust_std=2021
+               )
+       fi
 
        if use vulkan; then
                vulkan_enable video_cards_freedreno freedreno

diff --git a/media-libs/mesa/metadata.xml b/media-libs/mesa/metadata.xml
index ca05a0be0104..69f5a6733cc6 100644
--- a/media-libs/mesa/metadata.xml
+++ b/media-libs/mesa/metadata.xml
@@ -11,7 +11,7 @@
     <flag name="gles2">Enable GLESv2 support.</flag>
     <flag name="llvm">Enable LLVM backend for Gallium3D.</flag>
     <flag name="lm-sensors">Enable Gallium HUD lm-sensors support.</flag>
-    <flag name="opencl">Enable the Clover Gallium OpenCL state tracker.</flag>
+    <flag name="opencl">Enable the Rusticl Gallium OpenCL state tracker.</flag>
     <flag name="osmesa">Build the Mesa library for off-screen rendering.</flag>
     <flag name="proprietary-codecs">Enable codecs for patent-encumbered audio 
and video formats.</flag>
     <flag name="valgrind">Compile in valgrind memory hints</flag>

diff --git a/profiles/arch/x86/package.use.mask 
b/profiles/arch/x86/package.use.mask
index c7e1ce732ff0..575ae8c07ec1 100644
--- a/profiles/arch/x86/package.use.mask
+++ b/profiles/arch/x86/package.use.mask
@@ -1,6 +1,10 @@
 # Copyright 1999-2023 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
+# Matt Turner <[email protected]> (2023-05-12)
+# Likely untested upstream. Not worth the hassle.
+>=media-libs/mesa-23.1 opencl
+
 # Ionen Wolkens <[email protected]> (2023-03-30)
 # Needs x11-drivers/nvidia-drivers which is no longer available here.
 media-tv/mythtv nvdec

diff --git a/profiles/features/wd40/package.use.mask 
b/profiles/features/wd40/package.use.mask
index 9b572fad640f..6f804cffb525 100644
--- a/profiles/features/wd40/package.use.mask
+++ b/profiles/features/wd40/package.use.mask
@@ -1,6 +1,10 @@
 # Copyright 1999-2023 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
+# Matt Turner <[email protected]> (2023-05-12)
+# The Rusticl OpenCL state tracker requires rust
+>=media-libs/mesa-23.1 opencl
+
 # Michał Górny <[email protected]> (2023-03-09)
 # Packages needing dev-python/selenium.
 dev-python/aiohttp-cors test

Reply via email to