diff options
Diffstat (limited to 'dev-libs/rocm-opencl-runtime')
-rw-r--r-- | dev-libs/rocm-opencl-runtime/Manifest | 9 | ||||
-rw-r--r-- | dev-libs/rocm-opencl-runtime/files/rocm-opencl-runtime-6.1.2-fix-segfault.patch | 31 | ||||
-rw-r--r-- | dev-libs/rocm-opencl-runtime/rocm-opencl-runtime-6.1.1.ebuild (renamed from dev-libs/rocm-opencl-runtime/rocm-opencl-runtime-9999.ebuild) | 78 | ||||
-rw-r--r-- | dev-libs/rocm-opencl-runtime/rocm-opencl-runtime-6.1.2-r1.ebuild (renamed from dev-libs/rocm-opencl-runtime/rocm-opencl-runtime-6.0.0.ebuild) | 26 | ||||
-rw-r--r-- | dev-libs/rocm-opencl-runtime/rocm-opencl-runtime-6.1.2.ebuild | 93 |
5 files changed, 151 insertions, 86 deletions
diff --git a/dev-libs/rocm-opencl-runtime/Manifest b/dev-libs/rocm-opencl-runtime/Manifest index e17c2ec9074e..e05cff529f7a 100644 --- a/dev-libs/rocm-opencl-runtime/Manifest +++ b/dev-libs/rocm-opencl-runtime/Manifest @@ -4,12 +4,14 @@ AUX rocm-opencl-runtime-3.5.0-do-not-install-libopencl.patch 548 BLAKE2B ae42344 AUX rocm-opencl-runtime-5.0.2-enable-gfx800.patch 970 BLAKE2B 4080ab450457c21de1c81c7e9eebc75578d7326430732f2dab5688150347de2b7977d8804573fd79bb1d14a2e5b87ede0de41cd7c7920f90fe8762686198f931 SHA512 b4f653fbe1b51e789a8213e37c5e6c43d7035e7971c483a3e24903e1d46bdbf206575b16ac6c78b5c32ba4e32dfa428339723b58f672716c05e51c785543c535 AUX rocm-opencl-runtime-5.1.3-remove-clinfo.patch 1178 BLAKE2B b708214f9c4a6860a23281e8ece176d4b1968fc005e1b95a88e67752a8c60a23a7f66ff267ef909ddee4a45f4c8441339ea6f5de867d77df10c98d8043bb54d4 SHA512 626574b948a16cd59513496791bd73a5c1f3bda68ae9e01ea982bd036858f7c8817ea33a22e85f180cecdbe19d999afb2604c8cb549bdd71d4bfc56c18f5d4ad AUX rocm-opencl-runtime-5.3.3-gcc13.patch 791 BLAKE2B 6b284cb6cd9b273ee6d21850f7a29f75079567c70bdb263b3b95b27632ac71dd5e0be1200db58281c3ac737ff9d042dbd87615300e6182c9f43425098ae3389c SHA512 9edcfed7d5a5ed8e5aa1ccd8e09639d95ef373878eb7bc4ad65aa38539d8138c1d589056ffe9fd95cb18e95aebef3f206f5731557a1451758cbf3ae0e7b30e21 +AUX rocm-opencl-runtime-6.1.2-fix-segfault.patch 1471 BLAKE2B 868e0b7d653277623d1f708680bb2cef8c5899472205345487c117888717987a3697837b6f931b31f3adf8adefdda4e6eb91102219c05c1639c5cf389eda3209 SHA512 27ab04193692a5089b8ee73f9882a9c86e518cb77afd631dc84b3a9ffe9cda48a0ac853dd259d66bc937791cfb2422668429d472fd62b833aef076cfa930180f DIST rocclr-5.1.3.tar.gz 618606 BLAKE2B 02b7732ddd03c0883bee49c56466cd21c649159f801bfb2537eea6e640c65613eb57b37d942f465a9deb83d65735f51212dde5e4f77ba8239d1a6b7037e1800c SHA512 89fd2eca39ed84a1cf525b2c606089ef39f64c1f997c4880e10722da6de4864110752640e1508db1aeb9d15c48ba4e6fe5dbe7a9e56718853ece42548028b2ca DIST rocclr-5.3.3.tar.gz 625944 BLAKE2B 0cdbc1415a355e1d56628834846aaa8587c9827eeea59f4312b788e868265dcb42197181fd5ef411416da2e11662c7f665f578aa750ab88c3a5405bcc58ee449 SHA512 3f85532cffc09c2ca8e7cd1770263d1c1a38633ed2bc5cfe62072e12a6f8f669db400519950718be31f6b77693d372e2ef905f06c7f02e126aa9ff7d2da97924 DIST rocclr-5.4.3.tar.gz 640557 BLAKE2B 9ab91bab7ffb06c9c0d1c2ae79533fccc597071dda289ac375e32eb2965c638a7029951d2a49d46eeead9d7d242fe3a0cedb3e444d877af1bbf0e2d801c91e11 SHA512 c1d1a2ca08c2d762a221c04d394469aa7aff46086151333b145e0db9a7c7eb3dbbf8b9693e50d816aa9a13c16b4ebacf5ff3d5d8ff3393a8a764728ef5172d3a DIST rocclr-5.5.1.tar.gz 634330 BLAKE2B e6383a6b6b09f274a944d66effd345e38a191ec73ee5c5240f8ec8bb62a4df97b80835ce57f8f78c3834602b9da425b49289b5c7cd7e4c7071147ff409c6a6c9 SHA512 4c12011d22a4f14d9e93250b2a38716eb973139afa1adbbbd51c0e0ed13c0b7c1f45a37c71ef937c5fdabf09e928d7913ca3332fc61b7a2c10d21421306a228f DIST rocm-clr-5.7.1.tar.gz 2008647 BLAKE2B 3db0760d6f83504e60caf88a2dd5e0bc02c7db9d6f263ad0eb2cfc79aa0f88a3699c412844a0158a796d9d02e79660287e791edad787d814eefffea4fd2298b4 SHA512 d79323481d82fc02c12a32cdcc0d14437d512af023e7737db0387b7eecb27fe6e4ae7c71d6adce57932a04bb24c880440d9dc10aeb5af11a4f2ca64d44330965 -DIST rocm-clr-6.0.0.tar.gz 1983453 BLAKE2B 2cf6ec7c3b0ec5dedeea94ff54af30662b781fc2eee22e3315094af61dc9d331eba33c1d9d463295848c5724e515a3137f9b189c1261273afad1a5f9d32226c2 SHA512 12e77a121150d8c25121b98bd7c6233c2568f9f4130bdbe6bc3ab225f14b8bea6a6bdc4ed497c0f999d3d3daabdca0de8caaa1b69911c11974b5d6f951734433 +DIST rocm-clr-6.1.1.tar.gz 2031034 BLAKE2B b0485bb015d31986f4988d1db0c029c826856e50b5bb1b58fac2097c14b3966668f1b8d41ec198889e27ac860497a8b3c081ec31d52390d5c9ff5db092bf7cce SHA512 86925e8b9a9e77b06a57daefbc7279887b4ef7c6a79c3717bc2f2d3bf29926281c60063fd17e21c65d7def520d9f579bf88f69051d053a38750ba968f69ca3fc +DIST rocm-clr-6.1.2.tar.gz 2031283 BLAKE2B d51d32a77794ea97f1a3817786c9fd6b482106b665eea6e2c9b4c11e4dce19a3486386eb5ba111554c2d82c30e2a93add7502eed5768caf3fb709fb5fbb2e71b SHA512 e97224451864efe0084c4117f54893c9624a6a9f365a0b4abad08fd9635f008dea742dc589429fbb714e1b8177d06362c0f5a741f6c4a050d0fd4d48da72d54b DIST rocm-opencl-runtime-5.1.3.tar.gz 1004765 BLAKE2B 64d9b42026d2be1d0e4aa666785699f6b4ec0584a927904a94bf830883050943503f8bdd7c97438a2fb11c71686a330d526f633959916c5c6c8da2e037841e79 SHA512 b83c3ae0bfad80f867bacce36710a8964f6dd7e64bf50da3ec6ce842217d6de63299d9ceaab9dc25a22252484520a85d02859809463dad5dda9b1f00a86863e0 DIST rocm-opencl-runtime-5.3.3.tar.gz 1007773 BLAKE2B a3f600a68183337f92b152a123241cb7025889cca2ef6814d9d5b5a2146a78703b171d20bcb432bc7a2cdd1f24ad349408c17816b25a66702e9f0f5345af9082 SHA512 391f0f244b7f02972df8cada821e69ee8d81d96b9cff3c14f1d0838da583d8fb136ec4bd5ee820f6dd261968e9eef5e9a5b10b7bb76b1b64625c399d79bcb03f DIST rocm-opencl-runtime-5.4.3.tar.gz 1005268 BLAKE2B f9398e4c2b0f045f1b5d8df9f31b7f2bef6a9201885aa6ee5fc5d71632cfde26a078d9a5ea38c3da12d3c187faf04c7bdcf1a8ecb9927cdba56b1efdfcdc44ee SHA512 f65d4622ce8721a6b91ab5b5b306d142ba507d3e631ac3ab0b76c5bc6d8d18455e02debd954c82e7eb609f232b509f1ec1a013dc2fad467c2c2ad31fdf15755d @@ -19,6 +21,7 @@ EBUILD rocm-opencl-runtime-5.3.3-r1.ebuild 3630 BLAKE2B cdafd2367c4b222a43b434e8 EBUILD rocm-opencl-runtime-5.4.3-r1.ebuild 4031 BLAKE2B c952245f6f6ad1910facd33a82d25b77f2b20cbbdf4c05ca7ce735ab913fc49bdc5cdc1e8fc7f944cc5574331305e2d96cbb9bccd17a7ec28c042d9bec91499c SHA512 2cf80ae9fa5dba61936216fe87274998deefa70d0f20613ad0bf048e29f35eb37f525f1682024a85ab4a4acd79b8d75ad586008c5032dc527b293e79d3bc6a01 EBUILD rocm-opencl-runtime-5.5.1.ebuild 4002 BLAKE2B e784debbe6ca533290ca801cf965087e7e01d39c84a65ad2a738a672f3d330c7a28cc13fd5a8d6cbcc9520c9543cce9b762d480b6f3f4173006301c293af013b SHA512 38940e4b6d028fc8e713ec1641824776d0fab540f3e9e3011f6b377caf82a9b4d13ccd897605c01557975c1ec4f89285e944cee6b67bdbe56ddc300284d2df55 EBUILD rocm-opencl-runtime-5.7.1-r1.ebuild 3119 BLAKE2B 672082b1bea0f6cd45f8c37181e731d60dec3844fa0a31aca555b7c6e154d4981d33d1140fc83b3f8c6fbc46b7a13b88c76278ea0c04463eb0f2b398a60b3bbf SHA512 7d12f85d62bfb48df3f7c0d705e5411dad21ffa71964f19b09f2623aa836ecd91fedb28ad1ee5790ca5c538139e6790b2154c66dccc67687decdd3fb62d92b18 -EBUILD rocm-opencl-runtime-6.0.0.ebuild 3119 BLAKE2B 272dfd88268d3457367bf9f19e4622949ceb41b1f20c9504545e1638331ece944aaec9b4eb60f9afd1bbdd409252be70d291fbccd351c2296dbaf08a7094201a SHA512 3cedae3db98286f85dcdb3db35bdfcc7f6ac8702471d4cd7115bc6672a2623924a0aba6fec1e528fb184b91e1bad99dfa6511739c54ebc7699be76f5563c756e -EBUILD rocm-opencl-runtime-9999.ebuild 4098 BLAKE2B dbeebfc8fe71bb84507cb8f021deda11c4d3027ed4f21f4bed3f92c732e5d7122a44a42e4d25c8b2df59ec94a825654d508ca3f02559827ab1db2472b6240c9c SHA512 8ede58974bf967eb569621aed33dbc0d974247059818f72195affb645ca1d8e642f6605eaeb345604c0376df9eabe84402cc5d1e8e53feb74c7d8d337fa44579 +EBUILD rocm-opencl-runtime-6.1.1.ebuild 2695 BLAKE2B 2e2241518863f36222e755d61f8e5c25510c5a5250458fce110d5830898a36ae3e97a20fce61382d7ebf39346dee705b673dd0c1e4390e3ee44f7c23eff4d1b7 SHA512 edfb87e56c042000e41480771186a8e536e35a58cb2e57ef71f3d118501dcc85eb1025eba6a6af0b25d9c896329aa832d56f9b1037031c4279e5f21367dfa81b +EBUILD rocm-opencl-runtime-6.1.2-r1.ebuild 2767 BLAKE2B f1fc8c310f299d6d3b42d0d64ea46cbab36cccabf9d332e8a40efbb790367416be0010a4d4e2d69748205765b9d118f2f6a9082880ecb286c58af5fcbaa23e5b SHA512 9e1646e606bc4f50c5bdaef68890b7ea0b2caeea563ec9a8947035d9a65e3121417bf60d13d38c23c95b197dd526651cb2b2739b96c5cd868d7f8314d09606e7 +EBUILD rocm-opencl-runtime-6.1.2.ebuild 2695 BLAKE2B 2e2241518863f36222e755d61f8e5c25510c5a5250458fce110d5830898a36ae3e97a20fce61382d7ebf39346dee705b673dd0c1e4390e3ee44f7c23eff4d1b7 SHA512 edfb87e56c042000e41480771186a8e536e35a58cb2e57ef71f3d118501dcc85eb1025eba6a6af0b25d9c896329aa832d56f9b1037031c4279e5f21367dfa81b MISC metadata.xml 525 BLAKE2B 9af34c6be2bb5ff304e4d01810b810eb8a0639d1972325fad3b81c93aa4d060cbebddc9c06da702dd80f9aa98549720cf2bc674d5b11ef6f99ed30efe50d2110 SHA512 c50670dde49ec0d9d3acca19d37842ecf567429f455e1b37c5181e5d4361d829eff0980ba35096ef42c0789f8904d52425faf4a2aabf641142722957b626378d diff --git a/dev-libs/rocm-opencl-runtime/files/rocm-opencl-runtime-6.1.2-fix-segfault.patch b/dev-libs/rocm-opencl-runtime/files/rocm-opencl-runtime-6.1.2-fix-segfault.patch new file mode 100644 index 000000000000..78f76303468f --- /dev/null +++ b/dev-libs/rocm-opencl-runtime/files/rocm-opencl-runtime-6.1.2-fix-segfault.patch @@ -0,0 +1,31 @@ +From d1fff7cea2231e7980d85790486edb70d093a1dc Mon Sep 17 00:00:00 2001 +From: Rakesh Roy <rakesh.roy@amd.com> +Date: Wed, 20 Mar 2024 22:50:22 +0530 +Subject: [PATCH] SWDEV-445096 - Fix -O0 crash in OpenCL tests + +- With https://gerrit-git.amd.com/c/lightning/ec/llvm-project/+/1002628 applied, at -O0 Kernel::dynamicParallelism() returns true but virtual queue isn't created +- This causes segfault inside VirtualGPU::submitKernelInternal() when getVQVirtualAddress() is called + +Change-Id: Ia7af042adad2329e870c142caaac3e8fa886f8b8 +--- + rocclr/device/rocm/rocvirtual.cpp | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/rocclr/device/rocm/rocvirtual.cpp b/rocclr/device/rocm/rocvirtual.cpp +index 51080013b..1610aecfe 100644 +--- a/rocclr/device/rocm/rocvirtual.cpp ++++ b/rocclr/device/rocm/rocvirtual.cpp +@@ -3326,8 +3326,11 @@ bool VirtualGPU::submitKernelInternal(const amd::NDRangeContainer& sizes, + + if (gpuKernel.dynamicParallelism()) { + dispatchBarrierPacket(kBarrierPacketHeader, true); +- static_cast<KernelBlitManager&>(blitMgr()).runScheduler( +- getVQVirtualAddress(), schedulerParam_, schedulerQueue_, schedulerSignal_, schedulerThreads_); ++ if (virtualQueue_ != nullptr) { ++ static_cast<KernelBlitManager&>(blitMgr()).runScheduler( ++ getVQVirtualAddress(), schedulerParam_, schedulerQueue_, ++ schedulerSignal_, schedulerThreads_); ++ } + } + + // Check if image buffer write back is required diff --git a/dev-libs/rocm-opencl-runtime/rocm-opencl-runtime-9999.ebuild b/dev-libs/rocm-opencl-runtime/rocm-opencl-runtime-6.1.1.ebuild index 1ca30c8a10ae..465e3a2ddc66 100644 --- a/dev-libs/rocm-opencl-runtime/rocm-opencl-runtime-9999.ebuild +++ b/dev-libs/rocm-opencl-runtime/rocm-opencl-runtime-6.1.1.ebuild @@ -3,60 +3,31 @@ EAPI=8 -inherit cmake edo flag-o-matic +ROCM_SKIP_GLOBALS=1 +inherit cmake edo flag-o-matic rocm DESCRIPTION="Radeon Open Compute OpenCL Compatible Runtime" -HOMEPAGE="https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime" +HOMEPAGE="https://github.com/ROCm-Developer-Tools/clr" -if [[ ${PV} == *9999 ]] ; then - EGIT_REPO_URI="https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime" - EGIT_CLR_REPO_URI="https://github.com/ROCm-Developer-Tools/ROCclr" - inherit git-r3 - S="${WORKDIR}/${P}" -else - SRC_URI="https://github.com/ROCm-Developer-Tools/ROCclr/archive/rocm-${PV}.tar.gz -> rocclr-${PV}.tar.gz - https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime/archive/rocm-${PV}.tar.gz -> rocm-opencl-runtime-${PV}.tar.gz" - S="${WORKDIR}/ROCm-OpenCL-Runtime-rocm-${PV}" -fi +SRC_URI="https://github.com/ROCm-Developer-Tools/clr/archive/refs/tags/rocm-${PV}.tar.gz -> rocm-clr-${PV}.tar.gz" +S="${WORKDIR}/clr-rocm-${PV}/" LICENSE="Apache-2.0 MIT" SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64" IUSE="debug test" RESTRICT="!test? ( test )" -RDEPEND=">=dev-libs/rocr-runtime-5.3 - >=dev-libs/rocm-comgr-5.3 - >=dev-libs/rocm-device-libs-5.3 +RDEPEND=">=dev-libs/rocr-runtime-6.0 + >=dev-libs/rocm-comgr-6.0 + >=dev-libs/rocm-device-libs-6.0 >=virtual/opencl-3 media-libs/mesa[-opencl]" -DEPEND="${RDEPEND} - dev-util/opencl-headers" +DEPEND="${RDEPEND}" BDEPEND=">=dev-build/rocm-cmake-5.3 media-libs/glew test? ( >=x11-apps/mesa-progs-8.5.0[X] ) - " - -CLR_S="${WORKDIR}/ROCclr-rocm-${PV}" - -src_unpack () { -if [[ ${PV} == "9999" ]]; then - git-r3_fetch - git-r3_checkout - git-r3_fetch "${EGIT_CLR_REPO_URI}" - git-r3_checkout "${EGIT_CLR_REPO_URI}" "${CLR_S}" - else - default - fi -} -src_prepare() { - cmake_src_prepare - - pushd ${CLR_S} || die - # Bug #753377 - # patch re-enables accidentally disabled gfx800 family - eapply "${FILESDIR}/${PN}-5.0.2-enable-gfx800.patch" - popd || die -} +" src_configure() { # -Werror=strict-aliasing @@ -75,45 +46,28 @@ src_configure() { local mycmakeargs=( -Wno-dev - -DROCCLR_PATH="${CLR_S}" - -DAMD_OPENCL_PATH="${S}" -DROCM_PATH="${EPREFIX}/usr" -DBUILD_TESTS=$(usex test ON OFF) -DEMU_ENV=ON - -DBUILD_ICD=OFF + -DBUILD_ICD=ON -DFILE_REORG_BACKWARD_COMPATIBILITY=OFF + -DCLR_BUILD_OCL=on ) cmake_src_configure } src_install() { insinto /etc/OpenCL/vendors - doins config/amdocl64.icd + doins opencl/config/amdocl64.icd - cd "${BUILD_DIR}" || die + cd "${BUILD_DIR}"/opencl || die insinto /usr/lib64 doins amdocl/libamdocl64.so doins tools/cltrace/libcltrace.so } -# Copied from rocm.eclass. This ebuild does not need amdgpu_targets -# USE_EXPANDS, so it should not inherit rocm.eclass; it only uses the -# check_amdgpu function in src_test. Rename it to check-amdgpu to avoid -# pkgcheck warning. -check-amdgpu() { - for device in /dev/kfd /dev/dri/render*; do - addwrite ${device} - if [[ ! -r ${device} || ! -w ${device} ]]; then - eerror "Cannot read or write ${device}!" - eerror "Make sure it is present and check the permission." - ewarn "By default render group have access to it. Check if portage user is in render group." - die "${device} inaccessible" - fi - done -} - src_test() { - check-amdgpu + check_amdgpu cd "${BUILD_DIR}"/tests/ocltst || die export OCL_ICD_FILENAMES="${BUILD_DIR}"/amdocl/libamdocl64.so local instruction1="Please start an X server using amdgpu driver (not Xvfb!)," diff --git a/dev-libs/rocm-opencl-runtime/rocm-opencl-runtime-6.0.0.ebuild b/dev-libs/rocm-opencl-runtime/rocm-opencl-runtime-6.1.2-r1.ebuild index b6912994ddb7..540038443185 100644 --- a/dev-libs/rocm-opencl-runtime/rocm-opencl-runtime-6.0.0.ebuild +++ b/dev-libs/rocm-opencl-runtime/rocm-opencl-runtime-6.1.2-r1.ebuild @@ -9,19 +9,12 @@ inherit cmake edo flag-o-matic rocm DESCRIPTION="Radeon Open Compute OpenCL Compatible Runtime" HOMEPAGE="https://github.com/ROCm-Developer-Tools/clr" -#if [[ ${PV} == *9999 ]] ; then -# EGIT_REPO_URI="https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime" -# EGIT_CLR_REPO_URI="https://github.com/ROCm-Developer-Tools/ROCclr" -# inherit git-r3 -# S="${WORKDIR}/${P}" -#else - KEYWORDS="~amd64" - SRC_URI="https://github.com/ROCm-Developer-Tools/clr/archive/refs/tags/rocm-${PV}.tar.gz -> rocm-clr-${PV}.tar.gz" - S="${WORKDIR}/clr-rocm-${PV}/" -#fi +SRC_URI="https://github.com/ROCm-Developer-Tools/clr/archive/refs/tags/rocm-${PV}.tar.gz -> rocm-clr-${PV}.tar.gz" +S="${WORKDIR}/clr-rocm-${PV}/" LICENSE="Apache-2.0 MIT" SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64" IUSE="debug test" RESTRICT="!test? ( test )" @@ -34,18 +27,9 @@ DEPEND="${RDEPEND}" BDEPEND=">=dev-build/rocm-cmake-5.3 media-libs/glew test? ( >=x11-apps/mesa-progs-8.5.0[X] ) - " +" -src_unpack () { -if [[ ${PV} == "9999" ]]; then - git-r3_fetch -OB git-r3_checkout - git-r3_fetch "${EGIT_CLR_REPO_URI}" - git-r3_checkout "${EGIT_CLR_REPO_URI}" "${CLR_S}" - else - default - fi -} +PATCHES=( "${FILESDIR}/rocm-opencl-runtime-6.1.2-fix-segfault.patch" ) src_configure() { # -Werror=strict-aliasing diff --git a/dev-libs/rocm-opencl-runtime/rocm-opencl-runtime-6.1.2.ebuild b/dev-libs/rocm-opencl-runtime/rocm-opencl-runtime-6.1.2.ebuild new file mode 100644 index 000000000000..465e3a2ddc66 --- /dev/null +++ b/dev-libs/rocm-opencl-runtime/rocm-opencl-runtime-6.1.2.ebuild @@ -0,0 +1,93 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +ROCM_SKIP_GLOBALS=1 +inherit cmake edo flag-o-matic rocm + +DESCRIPTION="Radeon Open Compute OpenCL Compatible Runtime" +HOMEPAGE="https://github.com/ROCm-Developer-Tools/clr" + +SRC_URI="https://github.com/ROCm-Developer-Tools/clr/archive/refs/tags/rocm-${PV}.tar.gz -> rocm-clr-${PV}.tar.gz" +S="${WORKDIR}/clr-rocm-${PV}/" + +LICENSE="Apache-2.0 MIT" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64" +IUSE="debug test" +RESTRICT="!test? ( test )" + +RDEPEND=">=dev-libs/rocr-runtime-6.0 + >=dev-libs/rocm-comgr-6.0 + >=dev-libs/rocm-device-libs-6.0 + >=virtual/opencl-3 + media-libs/mesa[-opencl]" +DEPEND="${RDEPEND}" +BDEPEND=">=dev-build/rocm-cmake-5.3 + media-libs/glew + test? ( >=x11-apps/mesa-progs-8.5.0[X] ) +" + +src_configure() { + # -Werror=strict-aliasing + # https://bugs.gentoo.org/856088 + # https://github.com/ROCm/clr/issues/64 + # + # Do not trust it for LTO either + append-flags -fno-strict-aliasing + filter-lto + + # Fix ld.lld linker error: https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime/issues/155 + append-ldflags $(test-flags-CCLD -Wl,--undefined-version) + + # Reported upstream: https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime/issues/120 + append-cflags -fcommon + + local mycmakeargs=( + -Wno-dev + -DROCM_PATH="${EPREFIX}/usr" + -DBUILD_TESTS=$(usex test ON OFF) + -DEMU_ENV=ON + -DBUILD_ICD=ON + -DFILE_REORG_BACKWARD_COMPATIBILITY=OFF + -DCLR_BUILD_OCL=on + ) + cmake_src_configure +} + +src_install() { + insinto /etc/OpenCL/vendors + doins opencl/config/amdocl64.icd + + cd "${BUILD_DIR}"/opencl || die + insinto /usr/lib64 + doins amdocl/libamdocl64.so + doins tools/cltrace/libcltrace.so +} + +src_test() { + check_amdgpu + cd "${BUILD_DIR}"/tests/ocltst || die + export OCL_ICD_FILENAMES="${BUILD_DIR}"/amdocl/libamdocl64.so + local instruction1="Please start an X server using amdgpu driver (not Xvfb!)," + local instruction2="and export OCLGL_DISPLAY=\${DISPLAY} OCLGL_XAUTHORITY=\${XAUTHORITY} before reruning the test." + if [[ -n ${OCLGL_DISPLAY+x} ]]; then + export DISPLAY=${OCLGL_DISPLAY} + export XAUTHORITY=${OCLGL_XAUTHORITY} + ebegin "Running oclgl test under DISPLAY ${OCLGL_DISPLAY}" + if ! glxinfo | grep "OpenGL vendor string: AMD"; then + ewarn "${instruction1}" + ewarn "${instruction2}" + die "This display does not have AMD OpenGL vendor!" + fi + ./ocltst -m $(realpath liboclgl.so) -A ogl.exclude + eend $? || die "oclgl test failed" + else + ewarn "${instruction1}" + ewarn "${instruction2}" + die "\${OCLGL_DISPLAY} not set." + fi + edob ./ocltst -m $(realpath liboclruntime.so) -A oclruntime.exclude + edob ./ocltst -m $(realpath liboclperf.so) -A oclperf.exclude +} |