commit: 24c3de08e5ef07f46d1a887e8ad8a56821012a60 Author: Sv. Lockal <lockalsash <AT> gmail <DOT> com> AuthorDate: Fri Jan 19 21:12:57 2024 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Mon Mar 25 18:54:57 2024 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=24c3de08
media-libs/oidn: apply Gentoo-related fixes for hip suport Signed-off-by: Sv. Lockal <lockalsash <AT> gmail.com> Signed-off-by: Sam James <sam <AT> gentoo.org> .../oidn/files/oidn-2.1.0-amdgpu-targets.patch | 46 ++++++++++++++++++++++ media-libs/oidn/oidn-2.1.0.ebuild | 28 ++++++++++++- 2 files changed, 72 insertions(+), 2 deletions(-) diff --git a/media-libs/oidn/files/oidn-2.1.0-amdgpu-targets.patch b/media-libs/oidn/files/oidn-2.1.0-amdgpu-targets.patch new file mode 100644 index 000000000000..90d3c17f38cc --- /dev/null +++ b/media-libs/oidn/files/oidn-2.1.0-amdgpu-targets.patch @@ -0,0 +1,46 @@ +Allow specifying AMDGPU_TARGETS with CMake flags. +Fix build when main compiler is set to GCC. +--- a/devices/CMakeLists.txt ++++ b/devices/CMakeLists.txt +@@ -123,6 +123,10 @@ if(OIDN_DEVICE_HIP) + ) + mark_as_advanced(OIDN_DEVICE_HIP_COMPILER) + ++ set(AMDGPU_TARGETS "gfx1030;gfx1031;gfx1032;gfx1033;gfx1034;gfx1035;gfx1036;gfx1100;gfx1101;gfx1102;gfx1103" CACHE STRING "AMD GPU targets to compile for") ++ mark_as_advanced(AMDGPU_TARGETS) ++ message(STATUS "AMD targets: ${AMDGPU_TARGETS}") ++ + # Add ROCm to CMAKE_PREFIX_PATH + set(_hip_prefix_path CMAKE_PREFIX_PATH) + list(APPEND _hip_prefix_path ${ROCM_PATH}/hip ${ROCM_PATH}) +@@ -137,7 +141,6 @@ if(OIDN_DEVICE_HIP) + CMAKE_CACHE_ARGS + -DCMAKE_PREFIX_PATH:STRING=${_hip_prefix_path_str} + -DCMAKE_CXX_COMPILER:FILEPATH=${OIDN_DEVICE_HIP_COMPILER} +- -DCMAKE_TOOLCHAIN_FILE:FILEPATH=${CMAKE_TOOLCHAIN_FILE} + -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} + -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_CURRENT_BINARY_DIR}/hip/preinstall + -DCMAKE_INSTALL_BINDIR:PATH=${CMAKE_INSTALL_BINDIR} +@@ -149,6 +152,9 @@ if(OIDN_DEVICE_HIP) + -DOIDN_API_NAMESPACE:STRING=${OIDN_API_NAMESPACE} + -DOIDN_WARN_AS_ERRORS:BOOL=${OIDN_WARN_AS_ERRORS} + -DOIDN_SANITIZER:STRING=${OIDN_SANITIZER} ++ -DGPU_TARGETS:STRING=${AMDGPU_TARGETS} ++ -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON ++ -G "${CMAKE_GENERATOR}" + BUILD_ALWAYS TRUE + DEPENDS + OpenImageDenoise_core +--- a/devices/hip/CMakeLists.txt ++++ b/devices/hip/CMakeLists.txt +@@ -25,8 +25,8 @@ include(oidn_common_external) + # FIXME: The HIP runtime has a bug that causes a crash if the kernels are not compiled for all + # targets detected in the system. As a workaround, we compile for more targets then we actually + # support to avoid the crash on systems with dedicated + integrated GPUs. +-set(GPU_TARGETS "gfx1030,gfx1031,gfx1032,gfx1033,gfx1034,gfx1035,gfx1036,gfx1100,gfx1101,gfx1102,gfx1103" CACHE INTERNAL "") +-set(AMDGPU_TARGETS ${GPU_TARGETS} CACHE INTERNAL "") ++set(GPU_TARGETS "gfx1030;gfx1031;gfx1032;gfx1033;gfx1034;gfx1035;gfx1036;gfx1100;gfx1101;gfx1102;gfx1103" CACHE STRING "") ++set(AMDGPU_TARGETS ${GPU_TARGETS} CACHE STRING "") + + # Find HIP + find_package(hip REQUIRED) diff --git a/media-libs/oidn/oidn-2.1.0.ebuild b/media-libs/oidn/oidn-2.1.0.ebuild index 2eab9e4151b6..4cc4883b6c7f 100644 --- a/media-libs/oidn/oidn-2.1.0.ebuild +++ b/media-libs/oidn/oidn-2.1.0.ebuild @@ -1,11 +1,13 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 PYTHON_COMPAT=( python3_{9..11} ) +LLVM_MAX_SLOT=17 +ROCM_VERSION=5.7 -inherit cmake python-single-r1 +inherit cmake python-single-r1 llvm rocm DESCRIPTION="Intel(R) Open Image Denoise library" HOMEPAGE="https://www.openimagedenoise.org/" @@ -37,15 +39,37 @@ RDEPEND=" " DEPEND="${RDEPEND}" +PATCHES=( + "${FILESDIR}/${PN}-2.1.0-amdgpu-targets.patch" +) + src_configure() { local mycmakeargs=( -DOIDN_DEVICE_CUDA=$(usex cuda) -DOIDN_DEVICE_HIP=$(usex hip) -DOIDN_APPS=$(usex apps) ) + + if use hip; then + mycmakeargs+=( + -DROCM_PATH="${EPREFIX}/usr" + -DOIDN_DEVICE_HIP_COMPILER="$(get_llvm_prefix ${LLVM_MAX_SLOT})/bin/clang++" + -DAMDGPU_TARGETS="$(get_amdgpu_flags)" + ) + fi + cmake_src_configure } src_test() { "${BUILD_DIR}"/oidnTest || die "There were test faliures!" } + +src_install() { + cmake_src_install + + if use hip || use cuda ; then + # remove garbage in /var/tmp left by subprojects + rm -rf "${ED}"/var || die + fi +}