diff --git a/media-libs/amdvlk/Manifest b/media-libs/amdvlk/Manifest new file mode 100644 index 0000000..9e7277b --- /dev/null +++ b/media-libs/amdvlk/Manifest @@ -0,0 +1,6 @@ +DIST amdvlk-CWPack-7387247eb9889ddcabbc1053b9c2052e253b088e.tar.gz 24538 BLAKE2B 76c4da32ea06df355f7e8f77a14c185b2ccab2ce2762988f04a04d65b674e089d4fc27206e744f89b4bd84c9d7226d324414a31941303290e7f574e9d64756cf SHA512 38378ef325e42a7356511c2fc06b6c896581968079e85c4b924a1768d895feecaf1eb8fd65afb59bed0f66e0547104d67c2deb9f82a86f4b9fa65b36e57cd47d +DIST amdvlk-MetroHash-3c566dd9cda44ca7fd97659e0b53ac953f9037d2.tar.gz 11804 BLAKE2B 683ca8a9e4b93a945dc455c5cb78a2c6dd9dbdf22432ea9f447a6d2d1b05399cc57b621d1e304dc5695ab936a212a2df110e47ec9141764f4eaa2b184a01f4ba SHA512 ae4fcf09a097ceddfcc9f0b721cae0018fff8a0360d8fbbb195d2a8c2809cf8f3c01090ba8129593d89fe1c041224e42a49e7a1c66f20e60958a5373f6d9027f +DIST amdvlk-llpc-c89f405e3632f0b639faafe61cd03cb851492f4e.tar.gz 2176219 BLAKE2B b04c159b48e0ba48f5ac283ac9640eab67d4d938e7b181184161372f49aaa4d27f279e6895102db2fb2f59dc37ec7abe27093fe9de2b990a89c8b0ca5e3038da SHA512 24eb4732bbfe98bb65677ffcaced7790d427299e167b6c3dd6cbcf1ceaf26fe7441f672651bba9cac260381e65a3a198c80ccbf7c740e079029a902e56178245 +DIST amdvlk-llvm-project-a85ea7baf89016f72d7cb7c94db4c996d70d9898.tar.gz 144442498 BLAKE2B 2e93f4b15ef5934f06380802b01333c7195fb611c5c51b64a4d4055c4a05bf764d546d70254d6e7b25869f60bd429d7abcf38ba1e68c92adab50f855bccce20c SHA512 90357c05230e0653968ecb6e57d816278a30a136ed38aea0c067cd1add6b062a94da22e85e4e2c994c5eaaa4e94c290b31761c519b405f86b3f03b6e3a09cb45 +DIST amdvlk-pal-02ac99ba650afb3aebff3eb8006862ce93d31968.tar.gz 8285204 BLAKE2B 586611d50f39e8567e2774cb6a418627b6b5582b83de1f108b6f02b46a9dfd4d84bbdf2b03f18a671e0c3f58fa49d3ac24708826dd7e3afbf268366382dc1a55 SHA512 dd47365b4717ac808034ae8a61f6bb05b5d43308562134edb2374231549f1f4a0f8a476fd4dc0e38dc8501f840aeaf2cdbc9da25b686eb0b05b79e72a236df2c +DIST amdvlk-xgl-14397c77fbc0c760397dd3162482407b2721a825.tar.gz 898003 BLAKE2B a0f663a36a9d54b9f9d2600534907bb953f0eb8480de4b5edca4efcca62426044ab0ccaf710e73a41dfb25ece9c9d042db73f524348df680c36718ec1c001234 SHA512 1b697bac073297738e118ce315909cb3aa42f1d10c40c6835dc901ea0729cb36bb5d55bde0b8f7da447931396814681682db8b093ca2fdb775ab8f9a890da666 diff --git a/media-libs/amdvlk/amdvlk-2021.2.5.ebuild b/media-libs/amdvlk/amdvlk-2021.2.5.ebuild new file mode 100644 index 0000000..ba20d12 --- /dev/null +++ b/media-libs/amdvlk/amdvlk-2021.2.5.ebuild @@ -0,0 +1,151 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# MULTILIB_COMPAT=( abi_x86_{32,64} ) +PYTHON_COMPAT=( python3_{10..11} ) + +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="" +IUSE="wayland" # +raytracing +# REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )" + +BUNDLED_LLVM_DEPEND="sys-libs/zlib:0=[${MULTILIB_USEDEP}]" +# raytracing? ( dev-util/DirectXShaderCompiler ) +DEPEND="wayland? ( dev-libs/wayland[${MULTILIB_USEDEP}] ) + ${BUNDLED_LLVM_DEPEND} + >=dev-util/vulkan-headers-1.3.224 + dev-util/glslang[${MULTILIB_USEDEP}]" +BDEPEND="${BUNDLED_LLVM_DEPEND} + ${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[${MULTILIB_USEDEP}] + dev-libs/openssl[${MULTILIB_USEDEP}]" #890449 + +CHECKREQS_MEMORY="7G" +CHECKREQS_DISK_BUILD="4G" +S="${WORKDIR}" +CMAKE_USE_DIR="${S}/xgl" +CMAKE_MAKEFILE_GENERATOR=ninja + +### SOURCE CODE PER_VERSION VARIABLES +FETCH_URI="https://github.com/GPUOpen-Drivers" +## 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 ..." +XGL_COMMIT="14397c77fbc0c760397dd3162482407b2721a825" +PAL_COMMIT="02ac99ba650afb3aebff3eb8006862ce93d31968" +LLPC_COMMIT="c89f405e3632f0b639faafe61cd03cb851492f4e" +# GPURT_COMMIT="714a028e920c502520011fc4f4556f58ec897424" +LLVM_PROJECT_COMMIT="a85ea7baf89016f72d7cb7c94db4c996d70d9898" +METROHASH_COMMIT="3c566dd9cda44ca7fd97659e0b53ac953f9037d2" +CWPACK_COMMIT="7387247eb9889ddcabbc1053b9c2052e253b088e" +# Submodule of LLPC, also updates often. Grab commit version from +# https://github.com/GPUOpen-Drivers/llpc/tree/${LLPC_COMMIT}/imported +# LLVM_DIALECTS_COMMIT="17aafecff46b68206a0ed82d58f5e2fc358367a1" +### 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}/llvm-project/archive/${LLVM_PROJECT_COMMIT}.tar.gz -> amdvlk-llvm-project-${LLVM_PROJECT_COMMIT}.tar.gz +${FETCH_URI}/MetroHash/archive/${METROHASH_COMMIT}.tar.gz -> amdvlk-MetroHash-${METROHASH_COMMIT}.tar.gz +${FETCH_URI}/CWPack/archive/${CWPACK_COMMIT}.tar.gz -> amdvlk-CWPack-${CWPACK_COMMIT}.tar.gz" + +PATCHES=( +# "${FILESDIR}/amdvlk-2022.3.5-no-compiler-presets.patch" #875821 +# "${FILESDIR}/amdvlk-2022.4.1-proper-libdir.patch" +# "${FILESDIR}/amdvlk-2022.4.2-license-path.patch" #878803 +# #"${FILESDIR}/amdvlk-2022.4.2-reduced-llvm-installations.patch" +# #"${FILESDIR}/amdvlk-2022.4.2-reduced-llvm-installations-part2.patch" +# "${FILESDIR}/amdvlk-2022.4.4-r1-disable-Werror.patch" #887777 +) + +pkg_pretend(){ + ewarn "It's generally recomended to have at least 16GB memory to build" + ewarn "However, experiments shows that if you'll use MAKEOPTS=\"-j1\" you can build it with 4GB RAM" + ewarn "or you can use MAKEOPTS=\"-j3\" with 7.5GB system memory" + ewarn "See https://wiki.gentoo.org/wiki/AMDVLK#Additional_system_requirements_to_build" + ewarn "Use CHECKREQS_DONOTHING=1 if you need to bypass memory checking" + + check-reqs_pkg_pretend +} + +src_prepare() { + einfo "moving src to proper directories" + mkdir third_party || die + mv xgl-${XGL_COMMIT}/ xgl || die + mv pal-${PAL_COMMIT}/ pal || die + mv llpc-${LLPC_COMMIT}/ llpc || die +# mv gpurt-${GPURT_COMMIT}/ gpurt || die + mv llvm-project-${LLVM_PROJECT_COMMIT}/ llvm-project || die +# rm -d llpc/imported/llvm-dialects/ || die +# mv llvm-dialects-${LLVM_DIALECTS_COMMIT}/ llpc/imported/llvm-dialects/ || die + mv MetroHash-${METROHASH_COMMIT}/ third_party/metrohash || die + mv CWPack-${CWPACK_COMMIT}/ third_party/cwpack || die + cmake_src_prepare +} + +multilib_src_configure() { + sed -i -e '/target_compile_options.*msse/d' -e '/-mpreferred-stack-boundary=/d' "${WORKDIR}/xgl/cmake/XglCompilerOptions.cmake" + local mycmakeargs=( + -DBUILD_WAYLAND_SUPPORT=$(usex wayland) + # -DVKI_RAY_TRACING=$(usex raytracing) + -DLLVM_HOST_TRIPLE="${CHOST}" + -DLLVM_ENABLE_WERROR=OFF + -DENABLE_WERROR=OFF + -DVAM_ENABLE_WERROR=OFF + -DICD_ANALYSIS_WARNINGS_AS_ERRORS=OFF + -DMETROHASH_ENABLE_WERROR=OFF + -DBUILD_SHARED_LIBS=OFF #LLVM parts don't support shared libs + -DPython3_EXECUTABLE="${PYTHON}" + -DPACKAGE_VERSION="${PV}" + -DPACKAGE_NAME="${PN}" + -DLLVM_INSTALL_TOOLCHAIN_ONLY=ON #Disable installation of various LLVM parts which we had to clean up. + -Wno-dev + ) + cmake_src_configure +} + +multilib_src_install() { + cmake_src_install # --component icd + rm "${ED}/${WORKDIR}/xgl/lib/RelWithDebInfo/amdvlk*.so" +} + +multilib_check_headers() { + einfo "Checking headers skipped: there is no headers" +} + +multilib_src_install_all() { + default + einfo "Removing unused LLVM parts…" + rm "${ED}"/usr/lib/libLTO* || die "Can't remove unused LLVM lto library" + rm "${ED}"/usr/lib/libRemarks* || die "Can't remove unused LLVM libRemarks library" + rm -r "${ED}"/usr/lib/cmake || die "Can't remove unused LLVM cmake folder" + einfo "Removal done" +} + +pkg_postinst() { + 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)" + 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." +}