dev-libs/intel-neo: new package
authorMarek Szuba <marecki@gentoo.org>
Wed, 1 May 2019 16:45:19 +0000 (17:45 +0100)
committerMarek Szuba <marecki@gentoo.org>
Wed, 1 May 2019 16:51:43 +0000 (17:51 +0100)
New OpenCL driver for Broadwell and newer. For older systems stick with
dev-libs/beignet.

Tested on Kaby Lake and Kaby Lake R, in both cases LuxMark manages to
render all three scenes without errors or crashes.

No multilib support yet because running a 32-bit build on amd64 causes
type conflicts, will look at it later.

Signed-off-by: Marek Szuba <marecki@gentoo.org>
Package-Manager: Portage-2.3.62, Repoman-2.3.11

dev-libs/intel-neo/Manifest [new file with mode: 0644]
dev-libs/intel-neo/files/intel-neo-19.16.12873_cmake_no_libva_automagic.patch [new file with mode: 0644]
dev-libs/intel-neo/intel-neo-19.16.12873.ebuild [new file with mode: 0644]
dev-libs/intel-neo/metadata.xml [new file with mode: 0644]

diff --git a/dev-libs/intel-neo/Manifest b/dev-libs/intel-neo/Manifest
new file mode 100644 (file)
index 0000000..a9076df
--- /dev/null
@@ -0,0 +1 @@
+DIST intel-neo-19.16.12873.tar.gz 2370395 BLAKE2B 2efc76c9729d3ec000455270e923df1e3d0ec5d0a5c31cd156401b37c63ba01ee2a6051f487a98c4db10f61c2a70434f994f15472f54741ef4a80a71b036636f SHA512 1ec8b7883bfeefc1ed2095eac6111803a44e3c88e8bd1a478fb89a5baa4484fc96894f7ef0c01f4b6b9cb94731cdfc633f38ef2f636fdeb2d5e4344ca4aaa2ae
diff --git a/dev-libs/intel-neo/files/intel-neo-19.16.12873_cmake_no_libva_automagic.patch b/dev-libs/intel-neo/files/intel-neo-19.16.12873_cmake_no_libva_automagic.patch
new file mode 100644 (file)
index 0000000..fbfdfd3
--- /dev/null
@@ -0,0 +1,14 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -374,9 +374,9 @@
+ endif()
+ # LibVA detection
+-if(UNIX)
++if(UNIX AND ENABLE_VAAPI_MEDIA_SHARING)
+   set(IGDRCL__LIBVA_IS_REQUIRED "")
+-  if(IGDRCL_FORCE_USE_LIBVA)
++  if(IGDRCL_FORCE_USE_LIBVA OR ENABLE_VAAPI_MEDIA_SHARING)
+     set(IGDRCL__LIBVA_IS_REQUIRED "REQUIRED")
+   endif()
diff --git a/dev-libs/intel-neo/intel-neo-19.16.12873.ebuild b/dev-libs/intel-neo/intel-neo-19.16.12873.ebuild
new file mode 100644 (file)
index 0000000..ac08c8c
--- /dev/null
@@ -0,0 +1,56 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit cmake-utils
+
+MY_PN="compute-runtime"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Intel Graphics Compute Runtime for OpenCL, for Gen8 (Broadwell) and beyond"
+HOMEPAGE="https://github.com/intel/compute-runtime"
+SRC_URI="https://github.com/intel/${MY_PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="vaapi"
+
+COMMON="dev-libs/ocl-icd
+       dev-util/intel-graphics-compiler
+       >=media-libs/gmmlib-19.0.0
+       vaapi? (
+               x11-libs/libdrm[video_cards_intel]
+               >=x11-libs/libva-2.0.0
+       )"
+DEPEND="${COMMON}
+       virtual/pkgconfig"
+RDEPEND="${COMMON}"
+
+DOCS=(
+       README.md
+       documentation/FAQ.md
+       documentation/LIMITATIONS.md
+)
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-19.16.12873_cmake_no_libva_automagic.patch
+)
+
+S="${WORKDIR}"/${MY_P}
+
+src_configure() {
+       local mycmakeargs=(
+               -DENABLE_VAAPI_MEDIA_SHARING=$(usex vaapi "ON" "OFF")
+               # If enabled, tests are automatically run during the compile phase
+               # - and we cannot run them because they require permissions to access
+               # the hardware.
+               -DSKIP_UNIT_TESTS=ON
+       )
+       cmake-utils_src_configure
+}
+
+pkg_postinst() {
+       "${ROOT}"/usr/bin/eselect opencl set --use-old ocl-icd
+}
diff --git a/dev-libs/intel-neo/metadata.xml b/dev-libs/intel-neo/metadata.xml
new file mode 100644 (file)
index 0000000..2c902f2
--- /dev/null
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+       <maintainer type="person">
+               <email>marecki@gentoo.org</email>
+               <name>Marek Szuba</name>
+       </maintainer>
+       <longdescription>The Intel Graphics Compute Runtime for OpenCL, informally
+               known as NEO, is an open source project to converge Intel's development
+               efforts on OpenCL compute stacks supporting Gen8 graphics devices
+               (Broadwell architecture) and newer.
+               For OpenCL support on Sandy Bridge, Ivy Bridge and Haswell architectures
+               please have a look at <pkg>dev-libs/beignet</pkg> instead.</longdescription>
+       <use>
+               <flag name="vaapi">Support the sharing of surfaces with Video Acceleration API
+                       (OpenCL Extension #36)</flag>
+       </use>
+       <upstream>
+               <remote-id type="github">intel/compute-runtime</remote-id>
+       </upstream>
+</pkgmetadata>
+