summaryrefslogtreecommitdiff
path: root/dev-libs/beignet
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2018-09-08 10:50:14 +0100
committerV3n3RiX <venerix@redcorelinux.org>2018-09-08 10:50:14 +0100
commit3f71901f8c228f4de570abed1831ce3ee425343e (patch)
treea2dcd300d05ef8a2ec275b44a92a9d85bd3baa24 /dev-libs/beignet
parent12bb627384ddfd47382b9f1b6464481a58d01ebb (diff)
gentoo resync 08.09.2018
Diffstat (limited to 'dev-libs/beignet')
-rw-r--r--dev-libs/beignet/Manifest4
-rw-r--r--dev-libs/beignet/beignet-1.3.2-r1.ebuild4
-rw-r--r--dev-libs/beignet/beignet-1.3.2-r2.ebuild107
-rw-r--r--dev-libs/beignet/files/beignet-1.3.2_disable-doNegAddOptimization.patch66
4 files changed, 178 insertions, 3 deletions
diff --git a/dev-libs/beignet/Manifest b/dev-libs/beignet/Manifest
index bb37b22ebc7f..36c8489aadf4 100644
--- a/dev-libs/beignet/Manifest
+++ b/dev-libs/beignet/Manifest
@@ -1,13 +1,15 @@
AUX beignet-1.2.0_no-hardcoded-cflags.patch 721 BLAKE2B 033bd173462a38e9a35aedb7090adf6c621c040d3a732dfec12c2807a33ffeebbd3dac85a1bfc500f86b997604c6e66d144653cf2ada95b589fac6f6bd4f2600 SHA512 fdb922091986a60a416f9f7be3487e30974e085f8d1fddf0dba2fdcca155d26523c504289d8775e4943acce01bbb7bd3619c1af5e9a43af8afada276a52506e6
AUX beignet-1.3.1-oclicd_no_upstream_icdfile.patch 564 BLAKE2B f90bdf1c1a795007e9c9322e43df988267eaa1544b2f896bfc1b0bf333647fff753cc7a2e0ec5715f4251b1c54220590d796e48b8a0d0d1681e30f51247639f3 SHA512 c26772accbd5c2a04f8b8a108b87a518cba5ee4fdd142c7514d67f387080d2d37d6d3e87020b4d44b602dfa0cd6387dad29d5fc1bb75e1d5d090f674f937ddd9
AUX beignet-1.3.2_cmake-llvm-config-multilib.patch 950 BLAKE2B 9028eede7ee68dfd539bb268914c354eeaac8a9d26647c6dfb030078199e749cf67d2c396305ccaa7a139f10fcc8eca7b36657d4425439137e7199a4e62c4d13 SHA512 9a9a0348b39f0f9d256166141b48e255ccbc03e4d5150e660cfad2c23af8ff67b75049361fa84f2c2c26be2be914ad07efeae5e150f4f390ec7d5503c49b1c74
+AUX beignet-1.3.2_disable-doNegAddOptimization.patch 2536 BLAKE2B c07e063686e80a0b3f461475345582616ee59b8e195f90a87c2338a856cb3ebb04f0dd70595d901f10ae3645b9c33cccd5c0fb9bfd60052f76067f415eafac64 SHA512 d1d4f7ba2a44ee2c6255190189d141fc8adadeb6f64935501d5ce41cff1eb31e64b32664aee3edb2203f0d267fc776fbe9ed761c344fb23d858d91d6690af086
AUX beignet-1.3.2_llvm6.patch 1039 BLAKE2B 990a653b7ff52ec89ec1204cc5bae1d0b041ae51da4a16fd1a459abfe083be1e5647e9fdac3b336284fcdb6c460dbd9c151d5818c084d49c0c2d68fb56aed905 SHA512 634ddb79878b017be984c0327160affc06d7acaf17b1030e55542d2d2cc873bebd3808638f0966538b0dd7bca763eda2263f22f818dd0b73167a4ba3f5933aaa
AUX beignet-1.4.0-oclicd_no_upstream_icdfile.patch 726 BLAKE2B 4d182497c099e174a95524b4bd7bda66c03e128cb089b7536716afda442d8959beab19f0e6015173fbe761f1f569ce065fd1701545ebfdd0680b070644a4d9c4 SHA512 3a77f85cb8f28096b21a77e70f901ccc64291e7439c5e4ae6d7259c30531ea550604f54d0cf910e4482089ab5782f50dcb1940e5df723b0457fdafd550b2b537
AUX beignet-1.4.0_no-debian-multiarch.patch 862 BLAKE2B 54fb9124832e57b3466c11696cf311d32863bdc36d9f4f4e946958233884f95ad9c212bf63f598e52ad054da79f453fb5a3208958de48e45bd9f21a010309edf SHA512 6760b3b7038ba0dc125998de65ec688b5eb840d8a41543ab35f6d6b6084a877fe0e383bd44b6947695ff835b391794547d7eec21bf787548e6bb03ccf2b73587
AUX llvm-terminfo.patch 788 BLAKE2B cb652c28aac1cca566cb801b9e7f2b6ea8a9ff9457896a50b3323b41a009e039085d2d4aeff14d9d8cf35fca3e4a23bacb3078451c4981b6f806cec4146aec83 SHA512 63706376f086b02be067ab54e818afab55cddb34668bc67c2c3f546142e4ca50f5536be4c15f359b3c1c6f62f36b90b3e76d67095d4bba452cf5b5a2c8891312
AUX no-debian-multiarch.patch 1652 BLAKE2B 4d112429412a7ada957228aa8e6beb145fbaf04065d6f816b0f13513631211894c57e9999157db5f22d7044f231be65396040efe450d090e3774bd24c9c93482 SHA512 c77dd485d22e61e558f002a18103bd8dd8091ac51e702335e8713fe7f8fef24e44607744165cf0997e10941b1044d96a4876f251e8e32ffd82781e5c303f0383
DIST beignet-1.3.2-source.tar.gz 1143573 BLAKE2B e95e9ad352e7e695a0c56a8cea7bff312d7e1e811e17da6c744f16833130ca5339c163504afff3ed61947e752b94dc0465f6702317feb7662fb9676939838f20 SHA512 ed09a895c2f7e9b6e18687a899f1303dfda95e505c3c2d54bf7598cc4eba6c2fb5926589b19dd294384a4ff3f832c43235b1f03f8b7fd295cd558e78bda1400a
-EBUILD beignet-1.3.2-r1.ebuild 2694 BLAKE2B 97cb62df2e7dbc7647e5a81c1056350f53992715d3904b9b1c55cf78e853124ef9d77f4a1d6b5303039593a8693e668a6de354bd637f781b931b09a093bc42c9 SHA512 696d0b6df900197e4b6b765549f0441ce29afe4a89be86041d5f1ccf984428d84810570a9d2c2d00f501afb977b416ec00aadd9531b8d803aca8efaeb4ed0ea1
+EBUILD beignet-1.3.2-r1.ebuild 2688 BLAKE2B f9dddac927aa9f34731cb1e10113bbaa686cf6a9f5adb9890f89f00110033c844d2395a0a81dbd73269ff33ed78f24f6b2a15a42d7d00f63ab391a62dd3021f1 SHA512 337bf60e64644f541fbca9b0b7d5571c40fdfae97c571bc0ecc9ba408fa9c3d0f98bab41262bf7ea453da598c9ffb240e17644c15033f6d04adaa93a045a14b0
+EBUILD beignet-1.3.2-r2.ebuild 2750 BLAKE2B 39ddec90fcc36856f47922663e500b0fd9d43abe5763a7f7ad5638ae47a63f82a80495b2eb02d406613bc9456c3d197f43ee5cb58a419112545235abfc31f2e1 SHA512 650d7b33c334eaa9688d49e6849bfa6d37879ed59150e3d2554e0a655e37b2c3ecd1ccf0883a202536ff65f3f7469c6d197aaf3960a6487a05e0863f3070546e
EBUILD beignet-1.3.2.ebuild 2630 BLAKE2B 09a301f4174494e0f8007de277f9c3d888361661631ace7e1858a0a4cfec7cac07f494b2187862e447e1079716b9561bc6526422ce8100df54bdaf282de8cf0b SHA512 823a890987d1c6e3c16f9127ebe20947ea09d9114f9e5e42fe97e212d32ae53d44dcfb37aead35608c8b3c2f2214f9c493c99381073cabd4d6ab8872f49762db
EBUILD beignet-9999.ebuild 2452 BLAKE2B 91b4102d667aa6e265c725f7e77a5bf66198b75569d15a6ea7ea6e89a064639a5783d7670dd7627e47b6ee90124a076fba3abc8a13aeb7f82d3aaf9a7e4ab7a0 SHA512 def37f0a7884bcf1f87f3ec1da46d499a7cb6f8dc216ce51212f72039490f70746a5ca3fe3ab1bc7da481834b16d54c0bdf11f7834de319b5e978e5b641d203b
MISC metadata.xml 473 BLAKE2B e805dfe8af6753bfd30bc46d81637c28106320d8a149a41adb893b3fbe6deb54ef16589f78223153ae9446110b9b905267724034664896f9970bd6fd200c52fc SHA512 79c6f3d28b6c15b05616af2b5224f7b6e79642ae6e6b3579ac510c0935f288940d015258b1c2d07820fcbdca117eca66f25a5a4dc7df3af92c771e9ff9243186
diff --git a/dev-libs/beignet/beignet-1.3.2-r1.ebuild b/dev-libs/beignet/beignet-1.3.2-r1.ebuild
index 7975dc31d3ce..aabc386a74b1 100644
--- a/dev-libs/beignet/beignet-1.3.2-r1.ebuild
+++ b/dev-libs/beignet/beignet-1.3.2-r1.ebuild
@@ -82,7 +82,7 @@ multilib_src_configure() {
VENDOR_DIR="/usr/$(get_libdir)/OpenCL/vendors/${PN}"
local mycmakeargs=(
- -DCMAKE_INSTALL_PREFIX="${EPREFIX%/}/${VENDOR_DIR}"
+ -DCMAKE_INSTALL_PREFIX="${EPREFIX}${VENDOR_DIR}"
-DOCLICD_COMPAT=$(usex ocl-icd)
$(usex ocl20 "" "-DENABLE_OPENCL_20=OFF")
)
@@ -96,7 +96,7 @@ multilib_src_install() {
cmake-utils_src_install
insinto /etc/OpenCL/vendors/
- echo "${EPREFIX%/}/${VENDOR_DIR}/lib/${PN}/libcl.so" > "${PN}-${ABI}.icd" || die "Failed to generate ICD file"
+ echo "${EPREFIX}${VENDOR_DIR}/lib/${PN}/libcl.so" > "${PN}-${ABI}.icd" || die "Failed to generate ICD file"
doins "${PN}-${ABI}.icd"
dosym "lib/${PN}/libcl.so" "${VENDOR_DIR}"/libOpenCL.so.1
diff --git a/dev-libs/beignet/beignet-1.3.2-r2.ebuild b/dev-libs/beignet/beignet-1.3.2-r2.ebuild
new file mode 100644
index 000000000000..bc69b887c3d5
--- /dev/null
+++ b/dev-libs/beignet/beignet-1.3.2-r2.ebuild
@@ -0,0 +1,107 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python{2_7,3_4,3_5,3_6} )
+CMAKE_BUILD_TYPE="Release"
+
+inherit python-any-r1 cmake-multilib flag-o-matic llvm toolchain-funcs
+
+DESCRIPTION="OpenCL implementation for Intel GPUs"
+HOMEPAGE="https://01.org/beignet"
+
+LICENSE="LGPL-2.1+"
+SLOT="0"
+IUSE="ocl-icd ocl20"
+
+if [[ "${PV}" == "9999" ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://anongit.freedesktop.org/git/beignet.git"
+ KEYWORDS=""
+else
+ KEYWORDS="~amd64"
+ SRC_URI="https://01.org/sites/default/files/${P}-source.tar.gz"
+ S=${WORKDIR}/Beignet-${PV}-Source
+fi
+
+COMMON="media-libs/mesa[${MULTILIB_USEDEP}]
+ <sys-devel/clang-6.0.9999:=[${MULTILIB_USEDEP}]
+ >=x11-libs/libdrm-2.4.70[video_cards_intel,${MULTILIB_USEDEP}]
+ x11-libs/libXext[${MULTILIB_USEDEP}]
+ x11-libs/libXfixes[${MULTILIB_USEDEP}]"
+RDEPEND="${COMMON}
+ app-eselect/eselect-opencl"
+DEPEND="${COMMON}
+ ${PYTHON_DEPS}
+ ocl-icd? ( dev-libs/ocl-icd )
+ virtual/pkgconfig"
+
+LLVM_MAX_SLOT=6
+
+PATCHES=(
+ "${FILESDIR}"/no-debian-multiarch.patch
+ "${FILESDIR}"/${PN}-1.3.2_disable-doNegAddOptimization.patch
+ "${FILESDIR}"/${PN}-1.3.2_cmake-llvm-config-multilib.patch
+ "${FILESDIR}"/${PN}-1.3.2_llvm6.patch
+ "${FILESDIR}"/${PN}-1.3.1-oclicd_no_upstream_icdfile.patch
+ "${FILESDIR}"/${PN}-1.2.0_no-hardcoded-cflags.patch
+ "${FILESDIR}"/llvm-terminfo.patch
+)
+
+DOCS=(
+ docs/.
+)
+
+pkg_pretend() {
+ if [[ ${MERGE_TYPE} != "binary" ]]; then
+ if tc-is-gcc; then
+ if [[ $(gcc-major-version) -eq 4 ]] && [[ $(gcc-minor-version) -lt 6 ]]; then
+ eerror "Compilation with gcc older than 4.6 is not supported"
+ die "Too old gcc found."
+ fi
+ fi
+ fi
+}
+
+pkg_setup() {
+ llvm_pkg_setup
+ python_setup
+}
+
+src_prepare() {
+ # See Bug #593968
+ append-flags -fPIC
+
+ cmake-utils_src_prepare
+ # We cannot run tests because they require permissions to access
+ # the hardware, and building them is very time-consuming.
+ cmake_comment_add_subdirectory utests
+}
+
+multilib_src_configure() {
+ VENDOR_DIR="/usr/$(get_libdir)/OpenCL/vendors/${PN}"
+
+ local mycmakeargs=(
+ -DCMAKE_INSTALL_PREFIX="${EPREFIX}${VENDOR_DIR}"
+ -DOCLICD_COMPAT=$(usex ocl-icd)
+ $(usex ocl20 "" "-DENABLE_OPENCL_20=OFF")
+ )
+
+ cmake-utils_src_configure
+}
+
+multilib_src_install() {
+ VENDOR_DIR="/usr/$(get_libdir)/OpenCL/vendors/${PN}"
+
+ cmake-utils_src_install
+
+ insinto /etc/OpenCL/vendors/
+ echo "${EPREFIX}${VENDOR_DIR}/lib/${PN}/libcl.so" > "${PN}-${ABI}.icd" || die "Failed to generate ICD file"
+ doins "${PN}-${ABI}.icd"
+
+ dosym "lib/${PN}/libcl.so" "${VENDOR_DIR}"/libOpenCL.so.1
+ dosym "lib/${PN}/libcl.so" "${VENDOR_DIR}"/libOpenCL.so
+ dosym "lib/${PN}/libcl.so" "${VENDOR_DIR}"/libcl.so.1
+ dosym "lib/${PN}/libcl.so" "${VENDOR_DIR}"/libcl.so
+}
diff --git a/dev-libs/beignet/files/beignet-1.3.2_disable-doNegAddOptimization.patch b/dev-libs/beignet/files/beignet-1.3.2_disable-doNegAddOptimization.patch
new file mode 100644
index 000000000000..ae399b17f053
--- /dev/null
+++ b/dev-libs/beignet/files/beignet-1.3.2_disable-doNegAddOptimization.patch
@@ -0,0 +1,66 @@
+--- b/backend/src/backend/gen_insn_selection_optimize.cpp
++++ a/backend/src/backend/gen_insn_selection_optimize.cpp
+@@ -74,7 +74,8 @@ namespace gbe
+ const GenRegister& replacement) :
+ insn(insn), intermedia(intermedia), replacement(replacement)
+ {
+- assert(insn.opcode == SEL_OP_MOV || insn.opcode == SEL_OP_ADD);
++ assert(insn.opcode == SEL_OP_MOV);
++ assert(&(insn.src(0)) == &replacement);
+ assert(&(insn.dst(0)) == &intermedia);
+ this->elements = CalculateElements(intermedia, insn.state.execWidth);
+ replacementOverwritten = false;
+@@ -101,7 +102,6 @@ namespace gbe
+ void doReplacement(ReplaceInfo* info);
+ bool CanBeReplaced(const ReplaceInfo* info, const SelectionInstruction& insn, const GenRegister& var);
+ void cleanReplaceInfoMap();
+- void doNegAddOptimization(SelectionInstruction &insn);
+
+ SelectionBlock &bb;
+ const ir::Liveness::LiveOut& liveout;
+@@ -159,13 +159,8 @@ namespace gbe
+
+ void SelBasicBlockOptimizer::addToReplaceInfoMap(SelectionInstruction& insn)
+ {
+- assert(insn.opcode == SEL_OP_MOV || insn.opcode == SEL_OP_ADD);
+- GenRegister &src = insn.src(0);
+- if (insn.opcode == SEL_OP_ADD) {
+- if (src.file == GEN_IMMEDIATE_VALUE)
+- src = insn.src(1);
+- }
+-
++ assert(insn.opcode == SEL_OP_MOV);
++ const GenRegister& src = insn.src(0);
+ const GenRegister& dst = insn.dst(0);
+ if (src.type != dst.type || src.file != dst.file)
+ return;
+@@ -254,29 +249,10 @@ namespace gbe
+
+ if (insn.opcode == SEL_OP_MOV)
+ addToReplaceInfoMap(insn);
+-
+- doNegAddOptimization(insn);
+ }
+ cleanReplaceInfoMap();
+ }
+
+- /* LLVM transform Mad(a, -b, c) to
+- Add b, -b, 0
+- Mad val, a, b, c
+- for Gen support negtive modifier, mad(a, -b, c) is native suppoted.
+- Also it can be used for the same like instruction sequence.
+- Do it just like a: mov b, -b, so it is a Mov operation like LocalCopyPropagation
+- */
+- void SelBasicBlockOptimizer::doNegAddOptimization(SelectionInstruction &insn) {
+- if (insn.opcode == SEL_OP_ADD) {
+- GenRegister src0 = insn.src(0);
+- GenRegister src1 = insn.src(1);
+- if ((src0.negation && src1.file == GEN_IMMEDIATE_VALUE && src1.value.f == 0.0f) ||
+- (src1.negation && src0.file == GEN_IMMEDIATE_VALUE && src0.value.f == 0.0f))
+- addToReplaceInfoMap(insn);
+- }
+- }
+-
+ void SelBasicBlockOptimizer::run()
+ {
+ for (size_t i = 0; i < MaxTries; ++i) {