commit: d768dde28dcc9cb2a0746c41fa22dfbe052955e5 Author: Denis Reva <denis7774 <AT> gmail <DOT> com> AuthorDate: Tue Oct 4 12:59:12 2022 +0000 Commit: Denis Reva <denis7774 <AT> gmail <DOT> com> CommitDate: Tue Oct 4 12:59:24 2022 +0000 URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=d768dde2
media-libs/amdvlk: amdvlk updated to 2022.3.4 with refactoring Significant changes in dependencies and in build system, it uses cmake-multilib to build Now the package depends on DirectXShaderCompiler and glslang Changed installation directory to /usr/lib/llvm/amdvlk Using dynamic linking instead of static build Bug: https://bugs.gentoo.org/665590 Signed-off-by: Denis Reva <denis7774 <AT> gmail.com> media-libs/amdvlk/Manifest | 1 - media-libs/amdvlk/amdvlk-2022.3.4.ebuild | 73 +++++++++++++++----------------- media-libs/amdvlk/metadata.xml | 6 ++- 3 files changed, 38 insertions(+), 42 deletions(-) diff --git a/media-libs/amdvlk/Manifest b/media-libs/amdvlk/Manifest index e6a1fe5a9..0346e757c 100644 --- a/media-libs/amdvlk/Manifest +++ b/media-libs/amdvlk/Manifest @@ -9,7 +9,6 @@ DIST AMDVLK-v-2021.Q4.2-spvgen-0aa19873514a8272dfdc5cb8861859a52f5de503.tar.gz 2 DIST AMDVLK-v-2021.Q4.2-xgl-da1a583a51c69c115f9144b68ec2bdf5b6519056.tar.gz 960709 BLAKE2B 825e7d349da18e8a0beb42c4125bb208bd2e62780d97d5131e76e9ddc08dc6d60b2d78455aa245bb4172bb7ee7d64084307e48df2c18598cee638911fce8074c SHA512 a626459503b50a511ac04f4973036468336e9d55baecda5a84165f7209d867291ef35a9292734f38a53d13aaf70cd46fc8e3068fc3748d80278fcf3c5f8a54bb DIST AMDVLK-v-2021.Q4.2.tar.gz 30012 BLAKE2B 27d11126d54df299ce702adb7c66bd0aa8a905074dac0e2cd8560f2fa9c39deafd16885c15ae9df4f70f4008a446d8e90e1dcc50514afa7ab0a874d12b2e5334 SHA512 15fb89bb78039c36435fb9534588f08e0e0e6e6099d5e803e9bacafef8b5e81eedc19e0fcc7cd7ca7dad919397cab8b87b30b22950ae32945a5465da542d6d99 DIST AMDVLK-v-2022.Q3.1.tar.gz 30017 BLAKE2B 4abbdb709d6d61331185f7cef3e78228a9a7ad633ddf96e4ca18870fb9f7b04c1dd393864d6f85e349c56d20bffded81d95556f6625d7a8be7dc2ef6ed78de10 SHA512 e8a1662e14861fbb90ca4bad3dcff15932ce0e43b27e2fc0bfefd5f7eff359e1c46acedb6e168583646237e030da6948ef8640fe6b4ff1693f9a7ba16f1081a4 -DIST AMDVLK-v-2022.Q3.4.tar.gz 29752 BLAKE2B a20c33d06034337a1786f0701a5798416e33e008c1b3f49f069f12352647635a62053d40eafe847e8bc0b2917cc59d10fdd843b7283a229725249616c4b15bfc SHA512 cbc161d1ab88cd43fd98b7c73244f53d838935cd7255a97b5fd5b01f02c9c014f763324363f379cc1fd1cf17151955186f01b1209a880aea9e463ef5e7be3916 DIST CWPack-4f8cf0584442a91d829d269158567d7ed926f026.tar.gz 39633 BLAKE2B d5b2a88f0d563eef5beb42a8304cf6cdd825e75242c22acc360c5bb9cbd1d02a4f891b6b2f3a4803e1e6b48a4d176aad40f8bdeca92847f2fbf53674dedeaff3 SHA512 06d56baaba1f1224a5266f4a63c1abf70edba7cc16cc4e62f2f5b1ec94fc2c1cfc4c6f11a9c6ef42c23b29be8d07921caad5e919357c0bd82cf714783eee0bcc DIST CWPack-7387247eb9889ddcabbc1053b9c2052e253b088e.tar.gz 24538 BLAKE2B 76c4da32ea06df355f7e8f77a14c185b2ccab2ce2762988f04a04d65b674e089d4fc27206e744f89b4bd84c9d7226d324414a31941303290e7f574e9d64756cf SHA512 38378ef325e42a7356511c2fc06b6c896581968079e85c4b924a1768d895feecaf1eb8fd65afb59bed0f66e0547104d67c2deb9f82a86f4b9fa65b36e57cd47d DIST MetroHash-18893fb28601bb9af1154cd1a671a121fff6d8d3.tar.gz 11729 BLAKE2B b0e3de885e50c317141d62c885b421c7fd2e1ac783733704342bbed3109bff36a9209ab276f534a2231531483539221bbb1014bd39528a91124161bafc5646eb SHA512 8f12f95e80d594c8bd87a852c67a2d6777ce89d1a13e1a87ee17bbb876a0702c14ffe7a7fd65a244620f2043ad5d22ae8eb863d69f1dc5494d985733bbfb7bf9 diff --git a/media-libs/amdvlk/amdvlk-2022.3.4.ebuild b/media-libs/amdvlk/amdvlk-2022.3.4.ebuild index 5294089ea..05624b9ba 100644 --- a/media-libs/amdvlk/amdvlk-2022.3.4.ebuild +++ b/media-libs/amdvlk/amdvlk-2022.3.4.ebuild @@ -4,30 +4,33 @@ EAPI=8 MULTILIB_COMPAT=( abi_x86_{32,64} ) +PYTHON_COMPAT=( python3_{8..11} ) -inherit cmake-multilib check-reqs +inherit check-reqs python-any-r1 cmake-multilib DESCRIPTION="AMD Open Source Driver for Vulkan" HOMEPAGE="https://github.com/GPUOpen-Drivers/AMDVLK" LICENSE="MIT" SLOT="0" -KEYWORDS="" +KEYWORDS="~amd64 ~x86" IUSE="wayland" REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )" -###DEPENDS + BUNDLED_LLVM_DEPEND="sys-libs/zlib:0=[${MULTILIB_USEDEP}]" DEPEND="wayland? ( dev-libs/wayland[${MULTILIB_USEDEP}] ) ${BUNDLED_LLVM_DEPEND} >=dev-util/vulkan-headers-1.3.224" BDEPEND="${BUNDLED_LLVM_DEPEND} - dev-util/cmake" + ${PYTHON_DEPS} + dev-util/cmake + virtual/linux-sources" RDEPEND=" ${DEPEND} x11-libs/libdrm[${MULTILIB_USEDEP}] x11-libs/libXrandr[${MULTILIB_USEDEP}] x11-libs/libxcb[${MULTILIB_USEDEP}] x11-libs/libxshmfence[${MULTILIB_USEDEP}] >=media-libs/vulkan-loader-1.3.224[${MULTILIB_USEDEP}] - dev-util/glslang + dev-util/glslang[${MULTILIB_USEDEP}] dev-util/DirectXShaderCompiler" CHECKREQS_MEMORY="16G" @@ -37,8 +40,7 @@ CMAKE_USE_DIR="${S}/xgl" ###SOURCE CODE PER_VERSION VARIABLES FETCH_URI="https://github.com/GPUOpen-Drivers" -CORRECT_AMDVLK_PV="v-$(ver_rs 1 '.Q')" #Works only for amdvlk source code: transforming version 2019.2.2 to v-2019.Q2.2. Any other commits should be updated manually -##For those who wants update ebuild: check https://github.com/GPUOpen-Drivers/AMDVLK/blob/master/default.xml +##For those who wants update ebuild: check https://github.com/GPUOpen-Drivers/AMDVLK/blob/${VERSION}/default.xml , e.g. https://github.com/GPUOpen-Drivers/AMDVLK/blob/v-2022.Q3.5/default.xml ##and place commits in the desired variables ## EXAMPLE: XGL_COMMIT="80e5a4b11ad2058097e77746772ddc9ab2118e07" ## SRC_URI="... ${FETCH_URI}/$PART/archive/$COMMIT.zip -> $PART-$COMMIT.zip ..." @@ -49,9 +51,8 @@ GPURT_COMMIT="c1df7354336aba18d54c0e32a95b58eac0d44c07" LLVM_PROJECT_COMMIT="f5023e507645c8178128891b96bf463f9a1a81a0" METROHASH_COMMIT="18893fb28601bb9af1154cd1a671a121fff6d8d3" CWPACK_COMMIT="4f8cf0584442a91d829d269158567d7ed926f026" -# end -SRC_URI=" ${FETCH_URI}/AMDVLK/archive/${CORRECT_AMDVLK_PV}.tar.gz -> AMDVLK-${CORRECT_AMDVLK_PV}.tar.gz -${FETCH_URI}/xgl/archive/${XGL_COMMIT}.tar.gz -> amdvlk-xgl-${XGL_COMMIT}.tar.gz +# end of variables +SRC_URI="${FETCH_URI}/xgl/archive/${XGL_COMMIT}.tar.gz -> amdvlk-xgl-${XGL_COMMIT}.tar.gz ${FETCH_URI}/pal/archive/${PAL_COMMIT}.tar.gz -> amdvlk-pal-${PAL_COMMIT}.tar.gz ${FETCH_URI}/llpc/archive/${LLPC_COMMIT}.tar.gz -> amdvlk-llpc-${LLPC_COMMIT}.tar.gz ${FETCH_URI}/gpurt/archive/${GPURT_COMMIT}.tar.gz -> amdvlk-gpurt-${GPURT_COMMIT}.tar.gz @@ -63,7 +64,6 @@ src_prepare() { einfo "moving src to proper directories" mkdir -p "${S}" mkdir -p "${S}/third_party" - mv AMDVLK-${CORRECT_AMDVLK_PV}/ "${S}/AMDVLK" mv xgl-${XGL_COMMIT}/ "${S}/xgl" mv pal-${PAL_COMMIT}/ "${S}/pal" mv llpc-${LLPC_COMMIT}/ "${S}/llpc" @@ -76,42 +76,35 @@ src_prepare() { multilib_src_configure() { local mycmakeargs=( - -DBUILD_WAYLAND_SUPPORT=$(usex wayland) - ) + -DBUILD_WAYLAND_SUPPORT=$(usex wayland) + -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/amdvlk" + -DLLVM_VERSION_SUFFIX="-$(get_libdir)-amdvlk" + -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON + -Wno-dev + ) cmake_src_configure } -# multilib_src_install() { -# if use abi_x86_64 && multilib_is_native_abi; then -# mkdir -p "${D}/usr/lib64/" -# cp "${BUILD_DIR}/icd/amdvlk64.so" "${D}/usr/lib64/" -# insinto /usr/share/vulkan/icd.d -# doins "${S}/build-abi_x86_64.amd64/icd/amd_icd64.json" -# insinto /usr/share/vulkan/implicit_layer.d -# doins "${S}/build-abi_x86_64.amd64/icd/amd_icd64.json" -# else -# mkdir -p "${D}/usr/lib/" -# cp "${BUILD_DIR}/icd/amdvlk32.so" "${D}/usr/lib/" -# insinto /usr/share/vulkan/icd.d -# doins "${S}/build-abi_x86_32.x86/icd/amd_icd32.json" -# insinto /usr/share/vulkan/implicit_layer.d -# doins "${S}/build-abi_x86_32.x86/icd/amd_icd32.json" -# fi -# } +multilib_src_install(){ + cmake_src_install + rm -r "${D}"/var/ || die "can't remove incorrect temporary files of amdvlk" + einfo "Correcting permissions of amdvlk $(get_libdir) libraries" + fperms -R 775 /usr/lib/llvm/amdvlk/$(get_libdir) +} + +multilib_src_install_all() { + cat > "99${PN}" <<-EOF + LDPATH="${EPREFIX}/usr/lib/llvm/amdvlk/lib:${EPREFIX}/usr/lib/llvm/amdvlk/lib64" + EOF + doenvd "99${PN}" +} pkg_postinst() { - elog "More information about the configuration can be found here:" - elog " https://github.com/GPUOpen-Drivers/AMDVLK" ewarn "Make sure the following line is NOT included in the any Xorg configuration section:" ewarn "| Driver \"modesetting\"" ewarn "and make sure you use DRI3 mode for Xorg (not revelant for wayland)" - ewarn "Else AMDVLK breaks things" - ewarn "With some games AMDVLK is still not stable. Use it at you own risk" - elog "You may want to disable default vulkan mesa provider in package.use \"media-libs/mesa -vulkan\"" - elog "or perform export in /etc/env.d/ variable VK_ICD_FILENAMES=vulkanprovidername:vulkanprovidername2 " - elog "exampe| VK_ICD_FILENAMES=\"/usr/share/vulkan/icd.d/amd_icd64.json:/usr/share/vulkan/icd.d/amd_icd64.json\"" - elog "For DXVK: use DXVK_FILTER_DEVICE_NAME= variable" - elog "" - elog "You can also use AMD_VULKAN_ICD to switch to the required driver." + elog "More information about the configuration can be found here:" + elog "https://github.com/GPUOpen-Drivers/AMDVLK" + elog "You can use AMD_VULKAN_ICD variable to switch to the required driver." elog "AMD_VULKAN_ICD=RADV application - for using radv." elog "AMD_VULKAN_ICD=AMDVLK application - for using amdvlk." } diff --git a/media-libs/amdvlk/metadata.xml b/media-libs/amdvlk/metadata.xml index ca953a98b..86929ff1a 100644 --- a/media-libs/amdvlk/metadata.xml +++ b/media-libs/amdvlk/metadata.xml @@ -1,7 +1,11 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM 'http://www.gentoo.org/dtd/metadata.dtd'> <pkgmetadata> - <!-- maintainer-needed --> + <maintainer type="person"> + <email>denis7...@gmail.com</email> + <name>Denis Reva</name> + <description>rarogcmex</description> + </maintainer> <longdescription lang="en"> The AMD Open Source Driver for Vulkan® is an open-source Vulkan driver for AMD Radeon™ graphics adapters on Linux®. It is built on top of AMD’s Platform Abstraction Library (PAL), a shared component that is designed to encapsulate certain hardware and OS-specific programming details for many of AMD’s 3D and compute drivers. Leveraging PAL can help provide a consistent experience across platforms, including support for recently released GPUs and compatibility with AMD developer tools. Shaders that compose a particular VkPipeline object are compiled as a single entity using the LLVM-Based Pipeline Compiler (LLPC) library. LLPC builds on LLVM’s existing shader compilation infrastructure for AMD GPUs to generate code objects compatible with PAL’s pipeline ABI.