From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id B64141582EF for ; Fri, 28 Feb 2025 22:31:52 +0000 (UTC) Received: from lists.gentoo.org (bobolink.gentoo.org [140.211.166.189]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: relay-lists.gentoo.org@gentoo.org) by smtp.gentoo.org (Postfix) with ESMTPSA id 9E83E3431AB for ; Fri, 28 Feb 2025 22:31:52 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id B5021110276; Fri, 28 Feb 2025 22:31:50 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id AAC40110276 for ; Fri, 28 Feb 2025 22:31:50 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 474EB343131 for ; Fri, 28 Feb 2025 22:31:50 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id A532D16DF for ; Fri, 28 Feb 2025 22:31:48 +0000 (UTC) From: "Ionen Wolkens" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Ionen Wolkens" Message-ID: <1740781811.41942f592079754a303688adc7bacf5868b56c86.ionen@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/ X-VCS-Repository: repo/gentoo X-VCS-Files: x11-drivers/nvidia-drivers/Manifest x11-drivers/nvidia-drivers/files/nvidia-drivers-550.107.02-kernel-6.11-fbdev.patch x11-drivers/nvidia-drivers/nvidia-drivers-550.40.85.ebuild x11-drivers/nvidia-drivers/nvidia-drivers-570.123.01.ebuild X-VCS-Directories: x11-drivers/nvidia-drivers/files/ x11-drivers/nvidia-drivers/ X-VCS-Committer: ionen X-VCS-Committer-Name: Ionen Wolkens X-VCS-Revision: 41942f592079754a303688adc7bacf5868b56c86 X-VCS-Branch: master Date: Fri, 28 Feb 2025 22:31:48 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: dab723d6-8762-4a29-8519-a46b60115855 X-Archives-Hash: 31e373b1a645d6777819f672ce0e5af5 commit: 41942f592079754a303688adc7bacf5868b56c86 Author: Ionen Wolkens gentoo org> AuthorDate: Fri Feb 28 22:19:47 2025 +0000 Commit: Ionen Wolkens gentoo org> CommitDate: Fri Feb 28 22:30:11 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=41942f59 x11-drivers/nvidia-drivers: add 570.123.01:0/vulkan, drop 550.40.85 New vulkan beta branch replacing old 550.40.x:0/vulkan. As usual do not use this unless you know what you are doing. It is primarily intended for vulkan developers and it will lack important fixes not backported from the main branch (incl. security ones). Also has a lower level of support in Gentoo (not really tested, always masked, and old versions are not kept). Signed-off-by: Ionen Wolkens gentoo.org> x11-drivers/nvidia-drivers/Manifest | 4 +- ...idia-drivers-550.107.02-kernel-6.11-fbdev.patch | 134 --------------------- ....85.ebuild => nvidia-drivers-570.123.01.ebuild} | 66 +++++++--- 3 files changed, 53 insertions(+), 151 deletions(-) diff --git a/x11-drivers/nvidia-drivers/Manifest b/x11-drivers/nvidia-drivers/Manifest index 44f948536ae5..2b143208fc24 100644 --- a/x11-drivers/nvidia-drivers/Manifest +++ b/x11-drivers/nvidia-drivers/Manifest @@ -7,7 +7,7 @@ DIST NVIDIA-Linux-x86_64-390.157.run 85835541 BLAKE2B 44b855cd11f3b2f231f9fb9049 DIST NVIDIA-Linux-x86_64-470.256.02.run 272850014 BLAKE2B 0fdc867f92b82b2a60810c3b43751cad7ac2c39928c92c6c343c0c6044f4d7d923d93b8599db3f7c999c0ee7d16940e65d991a61cbb30e1d9e49c5639ac6bdc8 SHA512 a837946dd24d7945c1962a695f1f31965f3ceb6927f52cd08fd51b8db138b7a888bbeab69243f5c8468a7bd7ccd47f5dbdb48a1ca81264866c1ebb7d88628f88 DIST NVIDIA-Linux-x86_64-535.230.02.run 341903243 BLAKE2B 954ad0d390aa786a0a95298bd0c98a3b909074e5c7bc5d40a6a4fcea41d423ad1f429f175968c98f5e14c07cdf68d3340420f97269a36a0df41ace6ac8224cb5 SHA512 2154e28682fe1663dc64b18569c67839995d496a6c1b353fcdc17fc4520420c8d629d441312a6cedc054d6322a267d6f275d1daef210d2f24a179d931a4c99b8 DIST NVIDIA-Linux-x86_64-550.144.03.run 307272669 BLAKE2B 6d1daf41eb3f65071b42dc9bc5b8e0cf48170b03f3418c938f956ddb843f5a1e0f3d968b8825207e3237fa0490f0c29e3ffc4403b4558ef557dadf4fcf5ad17c SHA512 b7c4638695ef3e75043fd1726f0153ff0c140475f965d88c21f46d2909e68d023ebe6aa1e758ed81ab58440ba9a789e00b9b84200c03f00d429e11938a2bed65 -DIST NVIDIA-Linux-x86_64-550.40.85.run 312478355 BLAKE2B 3c964d0ef54085af19faea7100a5b9c4f33dc85d9b6ab790559aa1d85a8657b9d4e8a48661ab492a3e886258e7d3bf9b671673bddd3a99d3e77b54bc8a3c34c0 SHA512 4eed26067290412ca8fb58aa50eeb1726a45c4a9e4ea9428f192e5787366d6b7d3743509036981a074964b7bf4095aa044efb1a5819ca8757a3ee16cd6f7ee29 +DIST NVIDIA-Linux-x86_64-570.123.01.run 375775046 BLAKE2B bd7f1521c740b1bb83d866457ef83c808ee2fd4d433a53a92c5002111a13600dea85e7de781000560e024aec8612ea05e09171696ecc7b8ddc0fd03e9e669b6b SHA512 1c6762d4c8e6e13ab7af74736e4ea47e44b77bc1bd81b3153c8abc2b35a0ede6796f42b776eb062bf448596583e4ca7414d5b60562e4a0f55ab4dafb19998c35 DIST NVIDIA-Linux-x86_64-570.124.04.run 375582187 BLAKE2B e0cd5103403e773bf79282592735bbfc5a6cbd2e6b062df16b463104f42de1abdf97d68695b73b052444bab0f5e16af5f8cc9be77fb0035aff17aaa11299fd32 SHA512 35fb1938a08586d902eb290aee04c5c6b570cc647354e49880e3c8715654ac1ab8c8cbe08e5b3c542fd9b2c36f7683454221b11625754980a6138a58c6363b40 DIST NVIDIA-Linux-x86_64-570.86.16.run 375504315 BLAKE2B 3fc5d4b9f8b64323399f201d4d9d896ff47593108d675e5d77a45255e7ca9354e6876e5b4dee1f59c6c933493fbbf9d35606016f83430c43c5fc54c82685f3f8 SHA512 415adf4609f093e8703dd6f2c03bc5cbd84270c694e67bb0ee72897ac18dddb0d8aaf8baaf47e8624a79c54a1f794126a3ddb10fae91784f05f1f32ba063b985 DIST NVIDIA-kernel-module-source-535.230.02.tar.xz 12527212 BLAKE2B fd641d03cf7b417f1300b39dc271b08c920d11861491c510ceb713aaf69f1b4d373a1b0417993a0483dc6b2cb1d3e2d176d9c23edf9586f129df13bef495ce0b SHA512 d9080f257312b6760140a7dad3bb8e1d6f5982e7b25b3e623a74c519a7c296b1a12eece07335fc79f2d209b790a8239df81948cdb4031852d6225c4768ae42c3 @@ -44,4 +44,4 @@ DIST nvidia-xconfig-535.230.02.tar.bz2 111060 BLAKE2B a29389a0d73f66b47131ce420a DIST nvidia-xconfig-550.144.03.tar.bz2 111209 BLAKE2B 733058b0960b04212ad058616a93e79fbc1d18b51d7bf8b2cf9a5227fe1f5fbc2af1accd4043b71137a9c12ef534c454db9a8b46c1c707bc22fbf618d76c0dd2 SHA512 98c637a243bfd0a7f3154994b05400701d3b1ddfe8a38cf7782c237baa33f11cbc5be305b9bce8ac98813af1d37143cf96c13b3e6d3357c30d3f89a9be8bee0d DIST nvidia-xconfig-570.124.04.tar.bz2 111194 BLAKE2B 9c98c38d99e7d7c1f929f9e5cb815be32a76c2015ff44eb7a2df403c2993ea110b84958077b67cc3cf775bc8b22b025a28b3190662b5e03ee3bc6681a5cbfc43 SHA512 6a9b702d38a8ab360aa85e77d4333b3e9111fa30cb3e674438ea2c3b0704b52caef0b47e8ceaa8339300f4c80b42067af092d0289a21cfe34349b415d124994d DIST nvidia-xconfig-570.86.16.tar.bz2 111239 BLAKE2B 490638802c16634c6d21e22d81991327d7b4d45a918ad64b05e1191a99143a57bfc84beae2fb900149686b0adff94ede06c16711fb4f4d43a374c270d851d668 SHA512 0c1834a979e8771a6fe29a7e25640f1bb414b2f3db6529ad359079fb5b0db0681c67ab38490c0df9fcbf754a7a6ddcffc8dd7fb4f969214aa81f067a43cfd83f -DIST open-gpu-kernel-modules-550.40.85.tar.gz 13813204 BLAKE2B 651bcfe33c0956b62cd6d1da392407502358500c0e443296d71a654da8faa1064c6037d449d596c825c7fd949fe66f2f34334cab1c17c3abf79fd92d17b08d0d SHA512 fe66e51930fff737671cb81222856696ef3cb3e57d6c38e93f29284782124ea2e5eb1ac0e31ab95e211c662b7d12566f0346319ddca7f15efa3fc2e833feed20 +DIST open-gpu-kernel-modules-570.123.01.tar.gz 18662517 BLAKE2B c1371b9b5c200d95d727baf347fed0a9a60656ab9d0d87e3aec505f1bd20c07c94aa92ecf8afd5aab3297716545db70f1a33269f16063b98677982e5415984fe SHA512 ae85098900a431fa2bed76fc36d370d81ecbb2bbb9b13ee66f296e4dfed62b08dd3f213530d5fc55a11df753040b8236e3f5f36504854237826ad84fac620fba diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-550.107.02-kernel-6.11-fbdev.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-550.107.02-kernel-6.11-fbdev.patch deleted file mode 100644 index 01f7e2aa1660..000000000000 --- a/x11-drivers/nvidia-drivers/files/nvidia-drivers-550.107.02-kernel-6.11-fbdev.patch +++ /dev/null @@ -1,134 +0,0 @@ -At a glance this should(?) only be affecting fbdev=1 (default-off and -marked experimental in nvidia.conf). Compiles fine either way given -the test would've failed resulting in usage being skipped. - -NVIDIA is already aware[1] and this should be unnecessary next bumps. -[1] https://github.com/NVIDIA/open-gpu-kernel-modules/pull/692 ---- a/kernel/conftest.sh -+++ b/kernel/conftest.sh -@@ -6612,2 +6612,21 @@ - -+ drm_fbdev_ttm_setup) -+ # -+ # Determine whether drm_fbdev_ttm_setup is present. -+ # -+ # Added by commit 9060d7f49376 ("drm/fb-helper: Finish the -+ # generic fbdev emulation") in v4.19. -+ # -+ CODE=" -+ #include -+ #if defined(NV_DRM_DRM_FBDEV_TTM_H_PRESENT) -+ #include -+ #endif -+ void conftest_drm_fbdev_ttm_setup(void) { -+ drm_fbdev_ttm_setup(); -+ }" -+ -+ compile_check_conftest "$CODE" "NV_DRM_FBDEV_TTM_SETUP_PRESENT" "" "functions" -+ ;; -+ - drm_aperture_remove_conflicting_pci_framebuffers) ---- a/kernel/header-presence-tests.mk -+++ b/kernel/header-presence-tests.mk -@@ -17,2 +17,3 @@ - drm/drm_fbdev_generic.h \ -+ drm/drm_fbdev_ttm.h \ - drm/drm_framebuffer.h \ ---- a/kernel/nvidia-drm/nvidia-drm-drv.c -+++ b/kernel/nvidia-drm/nvidia-drm-drv.c -@@ -75,2 +75,6 @@ - -+#if defined(NV_DRM_DRM_FBDEV_TTM_H_PRESENT) -+#include -+#endif -+ - #include -@@ -1853,3 +1857,7 @@ - } -+#if defined(NV_DRM_FBDEV_TTM_AVAILABLE) -+ drm_fbdev_ttm_setup(dev, 32); -+#else - drm_fbdev_generic_setup(dev, 32); -+#endif - } ---- a/kernel/nvidia-drm/nvidia-drm-os-interface.h -+++ b/kernel/nvidia-drm/nvidia-drm-os-interface.h -@@ -60,4 +60,7 @@ - --#if defined(NV_DRM_FBDEV_GENERIC_SETUP_PRESENT) && defined(NV_DRM_APERTURE_REMOVE_CONFLICTING_PCI_FRAMEBUFFERS_PRESENT) -+#if (defined(NV_DRM_FBDEV_GENERIC_SETUP_PRESENT) || defined(NV_DRM_FBDEV_TTM_SETUP_PRESENT)) && defined(NV_DRM_APERTURE_REMOVE_CONFLICTING_PCI_FRAMEBUFFERS_PRESENT) - #define NV_DRM_FBDEV_GENERIC_AVAILABLE -+#if defined(NV_DRM_FBDEV_TTM_SETUP_PRESENT) -+#define NV_DRM_FBDEV_TTM_AVAILABLE -+#endif - #endif ---- a/kernel/nvidia-drm/nvidia-drm-sources.mk -+++ b/kernel/nvidia-drm/nvidia-drm-sources.mk -@@ -69,2 +69,3 @@ - NV_CONFTEST_FUNCTION_COMPILE_TESTS += drm_fbdev_generic_setup -+NV_CONFTEST_FUNCTION_COMPILE_TESTS += drm_fbdev_ttm_setup - NV_CONFTEST_FUNCTION_COMPILE_TESTS += drm_connector_attach_hdr_output_metadata_property ---- a/kernel-module-source/kernel-open/conftest.sh -+++ b/kernel-module-source/kernel-open/conftest.sh -@@ -6612,2 +6612,21 @@ - -+ drm_fbdev_ttm_setup) -+ # -+ # Determine whether drm_fbdev_ttm_setup is present. -+ # -+ # Added by commit 9060d7f49376 ("drm/fb-helper: Finish the -+ # generic fbdev emulation") in v4.19. -+ # -+ CODE=" -+ #include -+ #if defined(NV_DRM_DRM_FBDEV_TTM_H_PRESENT) -+ #include -+ #endif -+ void conftest_drm_fbdev_ttm_setup(void) { -+ drm_fbdev_ttm_setup(); -+ }" -+ -+ compile_check_conftest "$CODE" "NV_DRM_FBDEV_TTM_SETUP_PRESENT" "" "functions" -+ ;; -+ - drm_aperture_remove_conflicting_pci_framebuffers) ---- a/kernel-module-source/kernel-open/header-presence-tests.mk -+++ b/kernel-module-source/kernel-open/header-presence-tests.mk -@@ -17,2 +17,3 @@ - drm/drm_fbdev_generic.h \ -+ drm/drm_fbdev_ttm.h \ - drm/drm_framebuffer.h \ ---- a/kernel-module-source/kernel-open/nvidia-drm/nvidia-drm-drv.c -+++ b/kernel-module-source/kernel-open/nvidia-drm/nvidia-drm-drv.c -@@ -75,2 +75,6 @@ - -+#if defined(NV_DRM_DRM_FBDEV_TTM_H_PRESENT) -+#include -+#endif -+ - #include -@@ -1853,3 +1857,7 @@ - } -+#if defined(NV_DRM_FBDEV_TTM_AVAILABLE) -+ drm_fbdev_ttm_setup(dev, 32); -+#else - drm_fbdev_generic_setup(dev, 32); -+#endif - } ---- a/kernel-module-source/kernel-open/nvidia-drm/nvidia-drm-os-interface.h -+++ b/kernel-module-source/kernel-open/nvidia-drm/nvidia-drm-os-interface.h -@@ -60,4 +60,7 @@ - --#if defined(NV_DRM_FBDEV_GENERIC_SETUP_PRESENT) && defined(NV_DRM_APERTURE_REMOVE_CONFLICTING_PCI_FRAMEBUFFERS_PRESENT) -+#if (defined(NV_DRM_FBDEV_GENERIC_SETUP_PRESENT) || defined(NV_DRM_FBDEV_TTM_SETUP_PRESENT)) && defined(NV_DRM_APERTURE_REMOVE_CONFLICTING_PCI_FRAMEBUFFERS_PRESENT) - #define NV_DRM_FBDEV_GENERIC_AVAILABLE -+#if defined(NV_DRM_FBDEV_TTM_SETUP_PRESENT) -+#define NV_DRM_FBDEV_TTM_AVAILABLE -+#endif - #endif ---- a/kernel-module-source/kernel-open/nvidia-drm/nvidia-drm-sources.mk -+++ b/kernel-module-source/kernel-open/nvidia-drm/nvidia-drm-sources.mk -@@ -69,2 +69,3 @@ - NV_CONFTEST_FUNCTION_COMPILE_TESTS += drm_fbdev_generic_setup -+NV_CONFTEST_FUNCTION_COMPILE_TESTS += drm_fbdev_ttm_setup - NV_CONFTEST_FUNCTION_COMPILE_TESTS += drm_connector_attach_hdr_output_metadata_property diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-550.40.85.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-570.123.01.ebuild similarity index 87% rename from x11-drivers/nvidia-drivers/nvidia-drivers-550.40.85.ebuild rename to x11-drivers/nvidia-drivers/nvidia-drivers-570.123.01.ebuild index afcf7d8e116f..669f8aa5d9e4 100644 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-550.40.85.ebuild +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-570.123.01.ebuild @@ -4,11 +4,11 @@ EAPI=8 MODULES_OPTIONAL_IUSE=+modules -inherit desktop eapi9-pipestatus flag-o-matic linux-mod-r1 readme.gentoo-r1 -inherit systemd toolchain-funcs unpacker user-info +inherit desktop eapi9-pipestatus eapi9-ver flag-o-matic linux-mod-r1 +inherit readme.gentoo-r1 systemd toolchain-funcs unpacker user-info -MODULES_KERNEL_MAX=6.12 -NV_PIN=550.144.03 +MODULES_KERNEL_MAX=6.13 +NV_PIN=570.124.04 DESCRIPTION="NVIDIA Accelerated Graphics Driver" HOMEPAGE="https://developer.nvidia.com/vulkan-driver" @@ -26,6 +26,8 @@ S=${WORKDIR} LICENSE="NVIDIA-r2 Apache-2.0 BSD BSD-2 GPL-2 MIT ZLIB curl openssl" SLOT="0/vulkan" KEYWORDS="-* ~amd64" +# note: kernel-open is an upstream default in >=560 if all GPUs on the system +# support it but, since no automagic here, keeping it off for the wider support IUSE="+X abi_x86_32 abi_x86_64 kernel-open persistenced powerd +static-libs +tools wayland" REQUIRED_USE="kernel-open? ( modules )" @@ -61,8 +63,9 @@ RDEPEND=" ) powerd? ( sys-apps/dbus[abi_x86_32(-)?] ) wayland? ( - gui-libs/egl-gbm - >=gui-libs/egl-wayland-1.1.10 + >=gui-libs/egl-gbm-1.1.1-r2[abi_x86_32(-)?] + >=gui-libs/egl-wayland-1.1.13.1[abi_x86_32(-)?] + X? ( gui-libs/egl-x11[abi_x86_32(-)?] ) ) " DEPEND=" @@ -73,6 +76,7 @@ DEPEND=" x11-libs/libXext ) tools? ( + dev-util/vulkan-headers media-libs/libglvnd sys-apps/dbus x11-base/xorg-proto @@ -92,7 +96,6 @@ QA_PREBUILT="lib/firmware/* usr/bin/* usr/lib*" PATCHES=( "${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch "${FILESDIR}"/nvidia-settings-530.30.02-desktop.patch - "${FILESDIR}"/nvidia-drivers-550.107.02-kernel-6.11-fbdev.patch ) pkg_setup() { @@ -105,6 +108,7 @@ pkg_setup() { local CONFIG_CHECK=" PROC_FS ~DRM_KMS_HELPER + ~DRM_FBDEV_EMULATION ~SYSVIPC ~!LOCKDEP ~!PREEMPT_RT @@ -130,6 +134,9 @@ pkg_setup() { local ERROR_DRM_TTM_HELPER="CONFIG_DRM_TTM_HELPER: is not set but is needed to compile when using kernel version 6.11.x or newer while DRM_FBDEV_EMULATION is set. ${drm_helper_msg}" + local ERROR_DRM_FBDEV_EMULATION="CONFIG_DRM_FBDEV_EMULATION: is not set but is needed for + nvidia-drm.fbdev=1 support, currently off-by-default and it could + be ignored, but note that is due to change in the future." local ERROR_MMU_NOTIFIER="CONFIG_MMU_NOTIFIER: is not set but needed to build with USE=kernel-open. Cannot be directly selected in the kernel's menuconfig, and may need selection of another option that requires it such as CONFIG_KVM." @@ -163,7 +170,7 @@ src_prepare() { use X || sed -i 's/"libGLX/"libEGL/' nvidia_{layers,icd}.json || die # enable nvidia-drm.modeset=1 by default with USE=wayland - cp "${FILESDIR}"/nvidia-545.conf "${T}"/nvidia.conf || die + cp "${FILESDIR}"/nvidia-570.conf "${T}"/nvidia.conf || die use !wayland || sed -i '/^#.*modeset=1$/s/^#//' "${T}"/nvidia.conf || die # makefile attempts to install wayland library even if not built @@ -206,6 +213,8 @@ src_compile() { filter-flags -fno-plt #912949 filter-lto CC=${KERNEL_CC} CXX=${KERNEL_CXX} strip-unsupported-flags + + LDFLAGS=$(raw-ldflags) fi local modlist=( nvidia{,-drm,-modeset,-peermem,-uvm}=${modlistargs} ) @@ -213,6 +222,11 @@ src_compile() { CC="${KERNEL_CC}" # needed for above gnu17 workaround IGNORE_CC_MISMATCH=yes NV_VERBOSE=1 SYSOUT="${KV_OUT_DIR}" SYSSRC="${KV_DIR}" + + # kernel takes "x86" and "x86_64" as meaning the same, but nvidia + # makes the distinction (since 550.135) and is not happy with "x86" + # TODO?: it should be ok/better for tc-arch-kernel to do x86_64 + $(usev amd64 ARCH=x86_64) ) # temporary workaround for bug #914468 @@ -250,8 +264,8 @@ src_install() { [GBM_BACKEND_LIB_SYMLINK]=/usr/${libdir}/gbm [GLVND_EGL_ICD_JSON]=/usr/share/glvnd/egl_vendor.d [OPENGL_DATA]=/usr/share/nvidia - [VULKAN_ICD_JSON]=/usr/share/vulkan [VULKANSC_ICD_JSON]=/usr/share/vulkansc + [VULKAN_ICD_JSON]=/usr/share/vulkan [WINE_LIB]=/usr/${libdir}/nvidia/wine [XORG_OUTPUTCLASS_CONFIG]=/usr/share/X11/xorg.conf.d @@ -266,6 +280,8 @@ src_install() { libnvidia-{gtk,wayland-client} nvidia-{settings,xconfig} # from source libnvidia-egl-gbm 15_nvidia_gbm # gui-libs/egl-gbm libnvidia-egl-wayland 10_nvidia_wayland # gui-libs/egl-wayland + libnvidia-egl-xcb 20_nvidia_xcb.json # gui-libs/egl-x11 + libnvidia-egl-xlib 20_nvidia_xlib.json # gui-libs/egl-x11 libnvidia-pkcs11.so # using the openssl3 version instead ) local skip_modules=( @@ -311,6 +327,12 @@ $(use amd64 && usev !abi_x86_32 " Note that without USE=abi_x86_32 on ${PN}, 32bit applications (typically using wine / steam) will not be able to use GPU acceleration.") +Be warned that USE=kernel-open may need to be either enabled or +disabled for certain cards to function: +- GTX 50xx (blackwell) and higher are known to require it to be enabled +- GTX 1650 and higher (pre-blackwell) should work either way +- Older cards require it to be disabled + For additional information or for troubleshooting issues, please see https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers and NVIDIA's own documentation that is installed alongside this README." @@ -398,8 +420,9 @@ documentation that is installed alongside this README." dosym ${m[4]} ${into}/${m[0]} continue fi - [[ ${m[0]} =~ ^libnvidia-ngx.so|^libnvidia-egl-gbm.so ]] && - dosym ${m[0]} ${into}/${m[0]%.so*}.so.1 # soname not in .manifest + # avoid portage warning due to missing soname links in manifest + [[ ${m[0]} =~ ^libnvidia-ngx.so ]] && + dosym ${m[0]} ${into}/${m[0]%.so*}.so.1 printf -v m[1] %o $((m[1] | 0200)) # 444->644 insopts -m${m[1]} @@ -413,10 +436,13 @@ documentation that is installed alongside this README." exeinto "${_#"${EPREFIX}"}" doexe systemd/system-sleep/nvidia dobin systemd/nvidia-sleep.sh - systemd_dounit systemd/system/nvidia-{hibernate,resume,suspend}.service + systemd_dounit systemd/system/nvidia-{hibernate,resume,suspend,suspend-then-hibernate}.service dobin nvidia-bug-report.sh + insinto /usr/share/nvidia/files.d + doins sandboxutils-filelist.json + # MODULE:powerd extras if use powerd; then newinitd "${FILESDIR}"/nvidia-powerd.initd nvidia-powerd #923117 @@ -435,6 +461,8 @@ documentation that is installed alongside this README." dosym {"${unitdir}",/etc/systemd/system/systemd-hibernate.service.wants}/nvidia-resume.service dosym {"${unitdir}",/etc/systemd/system/systemd-suspend.service.wants}/nvidia-suspend.service dosym {"${unitdir}",/etc/systemd/system/systemd-suspend.service.wants}/nvidia-resume.service + dosym {"${unitdir}",/etc/systemd/system/systemd-suspend-then-hibernate.service.wants}/nvidia-suspend-then-hibernate.service + dosym {"${unitdir}",/etc/systemd/system/systemd-suspend-then-hibernate.service.wants}/nvidia-resume.service # also add a custom elogind hook to do the equivalent of the above exeinto /usr/lib/elogind/system-sleep newexe "${FILESDIR}"/system-sleep.elogind nvidia @@ -493,6 +521,7 @@ pkg_preinst() { sed -i "s/@VIDEOGID@/${g}/" "${ED}"/etc/modprobe.d/nvidia.conf || die # try to find driver mismatches using temporary supported-gpus.json + # TODO?: automatically check "kernelopen" bit for USE=kernel-open compat for g in $(grep -l 0x10de /sys/bus/pci/devices/*/vendor 2>/dev/null); do g=$(grep -io "\"devid\":\"$(<${g%vendor}device)\"[^}]*branch\":\"[0-9]*" \ "${ED}"/usr/share/nvidia/supported-gpus.json 2>/dev/null) @@ -549,9 +578,9 @@ pkg_postinst() { if use kernel-open && [[ ! -v NV_HAD_KERNEL_OPEN ]]; then ewarn - ewarn "Open source variant of ${PN} was selected, be warned it is experimental" - ewarn "and only for modern GPUs (e.g. GTX 1650+). Try to disable if run into issues." - ewarn "Please also see: ${EROOT}/usr/share/doc/${PF}/html/kernel_open.html" + ewarn "Open source variant of ${PN} was selected, note that it requires" + ewarn "Turing/Ampere+ GPUs (aka GTX 1650+). Try disabling if run into issues." + ewarn "Also see: ${EROOT}/usr/share/doc/${PF}/html/kernel_open.html" fi if use wayland && use modules && [[ ! -v NV_HAD_WAYLAND ]]; then @@ -563,4 +592,11 @@ pkg_postinst() { elog "If you experience issues, either disable wayland or edit nvidia.conf." elog "Of note, may possibly cause issues with SLI and Reverse PRIME." fi + + if use !kernel-open && ver_replacing -lt 555; then + elog + elog "If using a Turing/Ampere+ GPU (aka GTX 1650+), note that >=nvidia-drivers-555" + elog "enables the use of the GSP firmware by default. *If* experience regressions," + elog "please see '${EROOT}/etc/modprobe.d/nvidia.conf' to optionally disable." + fi }