summaryrefslogtreecommitdiff
path: root/media-libs
diff options
context:
space:
mode:
Diffstat (limited to 'media-libs')
-rw-r--r--media-libs/mesa/mesa-scm.ebuild140
1 files changed, 112 insertions, 28 deletions
diff --git a/media-libs/mesa/mesa-scm.ebuild b/media-libs/mesa/mesa-scm.ebuild
index 3bc30cd..671053b 100644
--- a/media-libs/mesa/mesa-scm.ebuild
+++ b/media-libs/mesa/mesa-scm.ebuild
@@ -30,9 +30,8 @@ LICENSE="MIT"
SLOT="0"
KEYWORDS=""
-INTEL_CARDS="i915 i965 intel"
RADEON_CARDS="r100 r200 r300 r600 radeon radeonsi"
-VIDEO_CARDS="${INTEL_CARDS} ${RADEON_CARDS} freedreno imx nouveau vc4 vivante vmware"
+VIDEO_CARDS="${RADEON_CARDS} freedreno i915 i965 imx intel nouveau vc4 virgl vivante vmware"
for card in ${VIDEO_CARDS}; do
IUSE_VIDEO_CARDS+=" video_cards_${card}"
done
@@ -52,14 +51,14 @@ REQUIRED_USE="
vaapi? ( gallium )
vdpau? ( gallium )
vulkan? ( || ( video_cards_i965 video_cards_radeonsi )
- video_cards_radeonsi? ( llvm ) )
+ video_cards_radeonsi? ( llvm ) )
wayland? ( egl gbm )
xa? ( gallium )
video_cards_freedreno? ( gallium )
video_cards_intel? ( classic )
video_cards_i915? ( || ( classic gallium ) )
video_cards_i965? ( classic )
- video_cards_imx? ( gallium )
+ video_cards_imx? ( gallium video_cards_vivante )
video_cards_nouveau? ( || ( classic gallium ) )
video_cards_radeon? ( || ( classic gallium )
gallium? ( x86? ( llvm ) amd64? ( llvm ) ) )
@@ -69,11 +68,12 @@ REQUIRED_USE="
video_cards_r600? ( gallium )
video_cards_radeonsi? ( gallium llvm )
video_cards_vc4? ( gallium )
+ video_cards_virgl? ( gallium )
video_cards_vivante? ( gallium gbm )
video_cards_vmware? ( gallium )
"
-LIBDRM_DEPSTRING=">=x11-libs/libdrm-2.4.77"
+LIBDRM_DEPSTRING=">=x11-libs/libdrm-2.4.85"
# keep correct libdrm and dri2proto dep
# keep blocks in rdepend for binpkg
RDEPEND="
@@ -96,7 +96,6 @@ RDEPEND="
llvm? (
video_cards_radeonsi? (
virtual/libelf:0=[${MULTILIB_USEDEP}]
- vulkan? ( >=sys-devel/llvm-3.9.0:=[${MULTILIB_USEDEP}] )
)
video_cards_r600? (
virtual/libelf:0=[${MULTILIB_USEDEP}]
@@ -104,7 +103,6 @@ RDEPEND="
video_cards_radeon? (
virtual/libelf:0=[${MULTILIB_USEDEP}]
)
- >=sys-devel/llvm-3.6.0:=[${MULTILIB_USEDEP}]
)
opencl? (
app-eselect/eselect-opencl
@@ -113,20 +111,22 @@ RDEPEND="
)
openmax? ( >=media-libs/libomxil-bellagio-0.9.3:=[${MULTILIB_USEDEP}] )
vaapi? (
- >=x11-libs/libva-1.6.0:=[${MULTILIB_USEDEP}]
+ >=x11-libs/libva-1.7.3:=[${MULTILIB_USEDEP}]
video_cards_nouveau? ( !<=x11-libs/libva-vdpau-driver-0.7.4-r3 )
)
vdpau? ( >=x11-libs/libvdpau-1.1:=[${MULTILIB_USEDEP}] )
- wayland? ( >=dev-libs/wayland-1.11.0:=[${MULTILIB_USEDEP}] )
+ wayland? (
+ >=dev-libs/wayland-1.11.0:=[${MULTILIB_USEDEP}]
+ >=dev-libs/wayland-protocols-1.8
+ )
xvmc? ( >=x11-libs/libXvMC-1.0.8:=[${MULTILIB_USEDEP}] )
${LIBDRM_DEPSTRING}[video_cards_freedreno?,video_cards_nouveau?,video_cards_vc4?,video_cards_vivante?,video_cards_vmware?,${MULTILIB_USEDEP}]
-"
-for card in ${INTEL_CARDS}; do
- RDEPEND="${RDEPEND}
- video_cards_${card}? ( ${LIBDRM_DEPSTRING}[video_cards_intel] )
- "
-done
+ video_cards_intel? (
+ !video_cards_i965? ( ${LIBDRM_DEPSTRING}[video_cards_intel] )
+ )
+ video_cards_i915? ( ${LIBDRM_DEPSTRING}[video_cards_intel] )
+"
for card in ${RADEON_CARDS}; do
RDEPEND="${RDEPEND}
video_cards_${card}? ( ${LIBDRM_DEPSTRING}[video_cards_radeon] )
@@ -136,18 +136,84 @@ RDEPEND="${RDEPEND}
video_cards_radeonsi? ( ${LIBDRM_DEPSTRING}[video_cards_amdgpu] )
"
-DEPEND="${RDEPEND}
- ${PYTHON_DEPS}
+# Please keep the LLVM dependency block separate. Since LLVM is slotted,
+# we need to *really* make sure we're not pulling one than more slot
+# simultaneously.
+#
+# How to use it:
+# 1. List all the working slots (with min versions) in ||, newest first.
+# 2. Update the := to specify *max* version, e.g. < 7.
+# 3. Specify LLVM_MAX_SLOT, e.g. 6.
+LLVM_DEPSTR="
+ || (
+ sys-devel/llvm:6[${MULTILIB_USEDEP}]
+ sys-devel/llvm:5[${MULTILIB_USEDEP}]
+ sys-devel/llvm:4[${MULTILIB_USEDEP}]
+ >=sys-devel/llvm-3.9.0:0[${MULTILIB_USEDEP}]
+ )
+ sys-devel/llvm:=[${MULTILIB_USEDEP}]
+"
+LLVM_DEPSTR_AMDGPU=${LLVM_DEPSTR//]/,llvm_targets_AMDGPU(-)]}
+CLANG_DEPSTR=${LLVM_DEPSTR//llvm/clang}
+CLANG_DEPSTR_AMDGPU=${CLANG_DEPSTR//]/,llvm_targets_AMDGPU(-)]}
+RDEPEND="${RDEPEND}
llvm? (
- video_cards_radeonsi? ( || (
- sys-devel/llvm[llvm_targets_AMDGPU]
- sys-devel/llvm[video_cards_radeon]
- ) )
+ opencl? (
+ video_cards_r600? (
+ ${CLANG_DEPSTR_AMDGPU}
+ )
+ !video_cards_r600? (
+ video_cards_radeonsi? (
+ ${CLANG_DEPSTR_AMDGPU}
+ )
+ )
+ !video_cards_r600? (
+ !video_cards_radeonsi? (
+ video_cards_radeon? (
+ ${CLANG_DEPSTR_AMDGPU}
+ )
+ )
+ )
+ !video_cards_r600? (
+ !video_cards_radeon? (
+ !video_cards_radeonsi? (
+ ${CLANG_DEPSTR}
+ )
+ )
+ )
+ )
+ !opencl? (
+ video_cards_r600? (
+ ${LLVM_DEPSTR_AMDGPU}
+ )
+ !video_cards_r600? (
+ video_cards_radeonsi? (
+ ${LLVM_DEPSTR_AMDGPU}
+ )
+ )
+ !video_cards_r600? (
+ !video_cards_radeonsi? (
+ video_cards_radeon? (
+ ${LLVM_DEPSTR_AMDGPU}
+ )
+ )
+ )
+ !video_cards_r600? (
+ !video_cards_radeon? (
+ !video_cards_radeonsi? (
+ ${LLVM_DEPSTR}
+ )
+ )
+ )
+ )
)
+"
+unset {LLVM,CLANG}_DEPSTR{,_AMDGPU}
+
+DEPEND="${RDEPEND}
+ ${PYTHON_DEPS}
opencl? (
- >=sys-devel/llvm-3.6.0:=[${MULTILIB_USEDEP}]
- >=sys-devel/clang-3.6.0:=[${MULTILIB_USEDEP}]
- >=sys-devel/gcc-4.6
+ >=sys-devel/gcc-4.6
)
sys-devel/bison
sys-devel/flex
@@ -164,6 +230,9 @@ DEPEND="${RDEPEND}
>=x11-proto/xextproto-7.2.1-r1:=[${MULTILIB_USEDEP}]
>=x11-proto/xf86driproto-2.1.1-r1:=[${MULTILIB_USEDEP}]
>=x11-proto/xf86vidmodeproto-2.3.1-r1:=[${MULTILIB_USEDEP}]
+ vulkan? (
+ $(python_gen_any_dep ">=dev-python/mako-0.7.3[\${PYTHON_USEDEP}]")
+ )
"
S="${WORKDIR}/${MY_P}"
@@ -180,6 +249,19 @@ x86? (
)
)"
+llvm_check_deps() {
+ local flags=${MULTILIB_USEDEP}
+ if use video_cards_r600 || use video_cards_radeon || use video_cards_radeonsi
+ then
+ flags+=",llvm_targets_AMDGPU(-)"
+ fi
+
+ if use opencl; then
+ has_version "sys-devel/clang[${flags}]" || return 1
+ fi
+ has_version "sys-devel/llvm[${flags}]"
+}
+
pkg_setup() {
# warning message for bug 459306
if use llvm && has_version sys-devel/llvm[!debug=]; then
@@ -187,6 +269,9 @@ pkg_setup() {
ewarn "detected! This can cause problems. For details, see bug 459306."
fi
+ if use llvm; then
+ llvm_pkg_setup
+ fi
python-any-r1_pkg_setup
}
@@ -195,9 +280,6 @@ src_unpack() {
git-r3_src_unpack
}
-#PATCHES=(
-# "$FILESDIR/clover-Fix-compiling-with-LLVM-r315871.patch"
-#)
src_prepare() {
default
@@ -232,7 +314,7 @@ multilib_src_configure() {
fi
if use egl; then
- myconf+=" --with-egl-platforms=x11,surfaceless$(use wayland && echo ",wayland")$(use gbm && echo ",drm")"
+ myconf+=" --with-platforms=x11,surfaceless$(use wayland && echo ",wayland")$(use gbm && echo ",drm")"
fi
if use gallium; then
@@ -275,6 +357,8 @@ multilib_src_configure() {
--with-clang-libdir="${EPREFIX}/usr/lib"
"
fi
+
+ gallium_enable video_cards_virgl virgl
fi
if use vulkan; then