commit:     66c3be451de6b402da1d74e74985fc175abd3672
Author:     Matt Turner <mattst88 <AT> gentoo <DOT> org>
AuthorDate: Thu Nov  9 17:53:55 2023 +0000
Commit:     Matt Turner <mattst88 <AT> gentoo <DOT> org>
CommitDate: Thu Nov  9 18:39:56 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=66c3be45

media-libs/mesa: Depend on external dev-util/intel_clc

intel_clc is an executable that is used to compile OpenCL C code to
SPIR-V during the build of media-libs/mesa. It is needed to build
code to support Vulkan ray tracing APIs on supported Intel GPUs.

intel_clc is a part of Mesa, but since it must run on the build machine,
I have split it into its own package that can be installed separately.
This simplifies some of the dependencies and also allows for cross
compilation.

Signed-off-by: Matt Turner <mattst88 <AT> gentoo.org>

 media-libs/mesa/mesa-9999.ebuild | 25 ++++---------------------
 1 file changed, 4 insertions(+), 21 deletions(-)

diff --git a/media-libs/mesa/mesa-9999.ebuild b/media-libs/mesa/mesa-9999.ebuild
index e74f085ef100..ef6c7bed1363 100644
--- a/media-libs/mesa/mesa-9999.ebuild
+++ b/media-libs/mesa/mesa-9999.ebuild
@@ -86,14 +86,6 @@ RDEPEND="
                >=media-libs/libva-1.7.3:=[${MULTILIB_USEDEP}]
        )
        vdpau? ( >=x11-libs/libvdpau-1.1:=[${MULTILIB_USEDEP}] )
-       vulkan? (
-               video_cards_intel? (
-                       amd64? (
-                               dev-libs/libclc[spirv(-)]
-                               >=dev-util/spirv-tools-1.3.231.0
-                       )
-               )
-       )
        selinux? ( sys-libs/libselinux[${MULTILIB_USEDEP}] )
        wayland? ( >=dev-libs/wayland-1.18.0[${MULTILIB_USEDEP}] )
        
${LIBDRM_DEPSTRING}[video_cards_freedreno?,video_cards_intel?,video_cards_nouveau?,video_cards_vc4?,video_cards_vivante?,video_cards_vmware?,${MULTILIB_USEDEP}]
@@ -133,14 +125,6 @@ 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@ )
-               vulkan? (
-                       video_cards_intel? (
-                               amd64? (
-                                       dev-util/spirv-llvm-translator:@SLOT@
-                                       sys-devel/clang:@SLOT@[${LLVM_USE_DEPS}]
-                               )
-                       )
-               )
        )
 "
 LLVM_DEPSTR="
@@ -182,6 +166,8 @@ BDEPEND="
                        video_cards_intel? (
                                amd64? (
                                        $(python_gen_any_dep 
"dev-python/ply[\${PYTHON_USEDEP}]")
+                                       ~dev-util/intel_clc-${PV}
+                                       dev-libs/libclc[spirv(-)]
                                )
                        )
                )
@@ -202,8 +188,6 @@ x86? (
 llvm_check_deps() {
        if use opencl; then
                has_version "sys-devel/clang:${LLVM_SLOT}[${LLVM_USE_DEPS}]" || 
return 1
-       fi
-       if use opencl || { use vulkan && use video_cards_intel && use amd64; }; 
then
                has_version "dev-util/spirv-llvm-translator:${LLVM_SLOT}" || 
return 1
        fi
        has_version "sys-devel/llvm:${LLVM_SLOT}[${LLVM_USE_DEPS}]"
@@ -406,9 +390,8 @@ multilib_src_configure() {
        use vulkan-overlay && vulkan_layers+=",overlay"
        emesonargs+=(-Dvulkan-layers=${vulkan_layers#,})
 
-       if use llvm && use vulkan && use video_cards_intel; then
-               PKG_CONFIG_PATH="$(get_llvm_prefix 
"${LLVM_MAX_SLOT}")/$(get_libdir)/pkgconfig"
-               emesonargs+=(-Dintel-clc=enabled)
+       if use llvm && use vulkan && use video_cards_intel && use amd64; then
+               emesonargs+=(-Dintel-clc=system)
        else
                emesonargs+=(-Dintel-clc=disabled)
        fi

Reply via email to