diff --git a/debian/changelog b/debian/changelog index 884310e919c5c0e9cecb2c037569e41ce57534a0..ab6ab0787b21dcf0fe152071a37755d6e8fb2f00 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,40 @@ +nvidia-settings (525.147.05-1~deb12u1) bookworm; urgency=medium + + * Rebuild for bookworm. + + -- Andreas Beckmann <anbe@debian.org> Mon, 12 Feb 2024 00:39:29 +0100 + +nvidia-settings (525.147.05-1) unstable; urgency=medium + + * New upstream release 525.147.05. + * Build for ppc64el. + + -- Andreas Beckmann <anbe@debian.org> Fri, 26 Jan 2024 19:29:45 +0100 + +nvidia-settings (525.125.06-1~deb12u1) bookworm; urgency=medium + + * Rebuild for bookworm. + + -- Andreas Beckmann <anbe@debian.org> Wed, 12 Jul 2023 11:01:23 +0200 + +nvidia-settings (525.125.06-1) unstable; urgency=medium + + * New upstream release 525.125.06. + * New upstream release 525.105.17. + - Fixed a bug that could cause the nvidia-settings control panel to + crash when resetting the display layout. + * Upload to unstable. + + -- Andreas Beckmann <anbe@debian.org> Tue, 11 Jul 2023 23:27:45 +0200 + +nvidia-settings (525.85.05-2) experimental; urgency=medium + + * Move source package back to contrib. + * libxnvctrl0, libxnvctrl-dev are now built by src:libxnvctrl. + * Upload to experimental. + + -- Andreas Beckmann <anbe@debian.org> Tue, 18 Apr 2023 22:28:02 +0200 + nvidia-settings (525.85.05-1) unstable; urgency=medium * New upstream release 525.85.05. diff --git a/debian/control b/debian/control index d9a6b3bda419adceb4313be3223aaab12578e13a..3cd072a832b820b571e69decf97d46778faea248 100644 --- a/debian/control +++ b/debian/control @@ -1,5 +1,5 @@ Source: nvidia-settings -Section: x11 +Section: contrib/x11 Priority: optional Maintainer: Debian NVIDIA Maintainers <pkg-nvidia-devel@lists.alioth.debian.org> Uploaders: @@ -26,13 +26,11 @@ Vcs-Browser: https://salsa.debian.org/nvidia-team/nvidia-settings Vcs-Git: https://salsa.debian.org/nvidia-team/nvidia-settings.git Package: nvidia-settings -Section: contrib/x11 -Architecture: amd64 arm64 +Architecture: amd64 arm64 ppc64el Pre-Depends: nvidia-installer-cleanup, Depends: , ${nvidia}-alternative - , libxnvctrl0 (= ${binary:Version}) , ${shlibs:Depends}, ${misc:Depends} Recommends: , libgl1-${nvidia}-glvnd-glx @@ -50,32 +48,3 @@ Description: tool for configuring the NVIDIA graphics driver${nvidia:VariantDesc . Values such as brightness and gamma, XVideo attributes, temperature, and OpenGL settings can be queried and configured via nvidia-settings. - -Package: libxnvctrl0 -Section: libs -Architecture: any -Multi-Arch: same -Pre-Depends: ${misc:Pre-Depends} -Depends: - ${shlibs:Depends}, ${misc:Depends} -Description: NV-CONTROL X extension (runtime library) - The NV-CONTROL X extension provides a mechanism for X clients to - query and set configuration parameters of the NVIDIA X driver. - State set by the NV-CONTROL X extension is assumed to be persistent - only for the current server generation. - . - This package contains the shared library. - -Package: libxnvctrl-dev -Section: libdevel -Architecture: any -Multi-Arch: same -Depends: - libxnvctrl0 (= ${binary:Version}), - libx11-dev, - ${misc:Depends} -Description: NV-CONTROL X extension (development files) - The NV-CONTROL X extension provides a mechanism for X clients to - query and set configuration parameters of the NVIDIA X driver. - State set by the NV-CONTROL X extension is assumed to be persistent - only for the current server generation. diff --git a/debian/copyright b/debian/copyright index ed8f54b67d3180edd09b1ead56f72359d6800227..a606761199d2ec26720dfa9b21dddf3ed0b86731 100644 --- a/debian/copyright +++ b/debian/copyright @@ -2,9 +2,15 @@ Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: nvidia-settings Upstream-Contact: NVIDIA Corporation Source: https://download.nvidia.com/XFree86/nvidia-settings/ +Disclaimer: + This package is not part of the GNU/Linux Debian distribution. It is + provided in the contrib archive area as a convenience to Debian users. + The contents of this source package are freely licensed under the Expat, + GPL, and other licenses, but it is only useful in combination with the + proprietary NVIDIA drivers in non-free. Files: * -Copyright: (C) 2004-2021 NVIDIA Corporation +Copyright: (C) 2004-2023 NVIDIA Corporation License: GPL-2 Files: samples/* @@ -96,7 +102,7 @@ License: Expat Files: debian/* Copyright: © 2004-2010 Randall Donald <rdonald@debian.org> © 2009-2010 Fathi Boudra <fabo@debian.org> - © 2011-2023 Andreas Beckmann <anbe@debian.org> + © 2011-2024 Andreas Beckmann <anbe@debian.org> © 2017 Luca Boccassi <bluca@debian.org> License: GPL-2 diff --git a/debian/libxnvctrl-dev.docs b/debian/libxnvctrl-dev.docs deleted file mode 100644 index 2eedfcc1bbc7bed144245811044d5b9c1cb1ddb1..0000000000000000000000000000000000000000 --- a/debian/libxnvctrl-dev.docs +++ /dev/null @@ -1,2 +0,0 @@ -doc/NV-CONTROL-API.txt -doc/FRAMELOCK.txt diff --git a/debian/libxnvctrl-dev.examples b/debian/libxnvctrl-dev.examples deleted file mode 100644 index f1e0cd1328a255e5e4c19430ef5d3459895973ba..0000000000000000000000000000000000000000 --- a/debian/libxnvctrl-dev.examples +++ /dev/null @@ -1,4 +0,0 @@ -samples/README -samples/Makefile -utils.mk -samples/*.c diff --git a/debian/libxnvctrl-dev.install b/debian/libxnvctrl-dev.install deleted file mode 100644 index 8d08a92ca068fce2e7f200e342372e0fc20dcedd..0000000000000000000000000000000000000000 --- a/debian/libxnvctrl-dev.install +++ /dev/null @@ -1,4 +0,0 @@ -src/libXNVCtrl/NVCtrl.h /usr/include/NVCtrl/ -src/libXNVCtrl/NVCtrlLib.h /usr/include/NVCtrl/ -src/libXNVCtrl/_out/debian/libXNVCtrl.a /usr/lib/${DEB_HOST_MULTIARCH}/ -src/libXNVCtrl/_out/debian/libXNVCtrl.so /usr/lib/${DEB_HOST_MULTIARCH}/ diff --git a/debian/libxnvctrl0.install b/debian/libxnvctrl0.install deleted file mode 100644 index 0958d1b2d5d13d374d6261708d13950aa07356ce..0000000000000000000000000000000000000000 --- a/debian/libxnvctrl0.install +++ /dev/null @@ -1 +0,0 @@ -src/libXNVCtrl/_out/debian/libXNVCtrl.so.* usr/lib/${DEB_HOST_MULTIARCH}/ diff --git a/debian/libxnvctrl0.symbols b/debian/libxnvctrl0.symbols deleted file mode 100644 index 134e51a588dafa5125b3d48225b80129d1969942..0000000000000000000000000000000000000000 --- a/debian/libxnvctrl0.symbols +++ /dev/null @@ -1,34 +0,0 @@ -libXNVCtrl.so.0 #PACKAGE# #MINVER# -* Build-Depends-Package: libxnvctrl-dev -#MISSING: 390.67# NV_ID@Base 337 - XNVCTRLBindWarpPixmapName@Base 313 - XNVCTRLIsNvScreen@Base 0 - XNVCTRLQueryAttribute@Base 0 - XNVCTRLQueryAttributePermissions@Base 0 - XNVCTRLQueryBinaryData@Base 0 - XNVCTRLQueryBinaryDataAttributePermissions@Base 0 - XNVCTRLQueryExtension@Base 0 - XNVCTRLQueryGvoColorConversion@Base 0 - XNVCTRLQueryStringAttribute@Base 0 - XNVCTRLQueryStringAttributePermissions@Base 0 - XNVCTRLQueryStringOperationAttributePermissions@Base 0 - XNVCTRLQueryTargetAttribute64@Base 0 - XNVCTRLQueryTargetAttribute@Base 0 - XNVCTRLQueryTargetBinaryData@Base 0 - XNVCTRLQueryTargetCount@Base 0 - XNVCTRLQueryTargetStringAttribute@Base 0 - XNVCTRLQueryValidAttributeValues@Base 0 - XNVCTRLQueryValidTargetAttributeValues@Base 0 - XNVCTRLQueryValidTargetStringAttributeValues@Base 0 - XNVCTRLQueryVersion@Base 0 - XNVCTRLSetAttribute@Base 0 - XNVCTRLSetAttributeAndGetStatus@Base 0 - XNVCTRLSetGvoColorConversion@Base 0 - XNVCTRLSetStringAttribute@Base 0 - XNVCTRLSetTargetAttribute@Base 0 - XNVCTRLSetTargetAttributeAndGetStatus@Base 0 - XNVCTRLSetTargetStringAttribute@Base 0 - XNVCTRLStringOperation@Base 0 - XNVCtrlSelectNotify@Base 0 - XNVCtrlSelectTargetNotify@Base 0 -#MISSING: 390.67# pNV_ID@Base 337 diff --git a/debian/nvidia-settings.desktop.in b/debian/nvidia-settings.desktop.in deleted file mode 100644 index 7f11284dc46b353817d76810e2733d14084e7483..0000000000000000000000000000000000000000 --- a/debian/nvidia-settings.desktop.in +++ /dev/null @@ -1,31 +0,0 @@ -[Desktop Entry] -Version=1.0 -Type=Application -Exec=nvidia-settings -Terminal=false -Categories=HardwareSettings;System;Settings; -Icon=nvidia-settings#VARIANT# -Name=NVIDIA X Server Settings#VARIANT_DESC# -Comment=Configure NVIDIA X Server Settings#VARIANT_DESC# - -# Translations provided by Sun Microsystems -Name[de]=NVIDIA X-Server-Einstellungen -Name[es]=Valores de configuración del servidor NVIDIA X -Name[fr]=Paramètres du serveur X NVIDIA -Name[it]=NVIDIA X Server Settings -Name[ja]=NVIDIA X サーãƒãƒ¼è¨å®š -Name[ko]=NVIDIA X 서버 ì„¤ì • -Name[pt_BR]=Configurações do NVIDIA X Server -Name[zh_CN]=NVIDIA X æœåŠ¡å™¨è®¾ç½® -Name[zh_HK]=NVIDIA X 伺æœå™¨è¨å®š -Name[zh_TW]=NVIDIA X 伺æœå™¨è¨å®š -Comment[de]=Konfigurieren der NVIDIA X-Server-Einstellungen -Comment[es]=Establezca los valores de configuración del servidor NVIDIA X -Comment[fr]=Configurer les paramètres du serveur X NVIDIA -Comment[it]=Configura NVIDIA X Server Settings -Comment[ja]=NVIDIA X サーãƒãƒ¼è¨å®šã‚’構æˆã—ã¾ã™ -Comment[ko]=NVIDIA X 서버 ì„¤ì • 구성 -Comment[pt_BR]=Definir &configurações de gerenciamento de usuário... -Comment[zh_CN]=é…ç½® NVIDIA X æœåŠ¡å™¨è®¾ç½® -Comment[zh_HK]=é…ç½® NVIDIA X 伺æœå™¨è¨å®š -Comment[zh_TW]=é…ç½® NVIDIA X 伺æœå™¨è¨å®š diff --git a/debian/nvidia-settings.desktop.in b/debian/nvidia-settings.desktop.in new file mode 120000 index 0000000000000000000000000000000000000000..5f6372e566a9d57fdfb5ab4db2f09111a0834725 --- /dev/null +++ b/debian/nvidia-settings.desktop.in @@ -0,0 +1 @@ +../doc/nvidia-settings.desktop \ No newline at end of file diff --git a/debian/patches/10_libxnvctrl_so_0.diff b/debian/patches/10_libxnvctrl_so_0.diff deleted file mode 100644 index 53064d6d9f7e4c244d79b5681251badfc242ce50..0000000000000000000000000000000000000000 --- a/debian/patches/10_libxnvctrl_so_0.diff +++ /dev/null @@ -1,44 +0,0 @@ -Author: Andreas Beckmann <debian@abeckmann.de> -Description: build a shared library for libXNVCtrl -Bug-Debian: https://bugs.debian.org/666909 - ---- a/src/libXNVCtrl/Makefile -+++ b/src/libXNVCtrl/Makefile -@@ -50,8 +50,11 @@ LDFLAGS += $(XNVCTRL_LDFLAGS) - - .PHONY: all - all: $(LIBXNVCTRL) -+all: $(LIBXNVCTRL_a) -+all: $(LIBXNVCTRL_so) - - .PHONY: clean - clean: - rm -rf $(LIBXNVCTRL) *~ \ - $(OUTPUTDIR)/*.o $(OUTPUTDIR)/*.d -+ rm -f $(LIBXNVCTRL_a) $(LIBXNVCTRL_so) $(LIBXNVCTRL_so).* ---- a/src/libXNVCtrl/xnvctrl.mk -+++ b/src/libXNVCtrl/xnvctrl.mk -@@ -37,7 +37,9 @@ endif - XNVCTRL_CFLAGS ?= - - --LIBXNVCTRL = $(OUTPUTDIR)/libXNVCtrl.a -+LIBXNVCTRL_a = $(OUTPUTDIR)/libXNVCtrl.a -+LIBXNVCTRL_so = $(OUTPUTDIR)/libXNVCtrl.so -+LIBXNVCTRL = $(LIBXNVCTRL_so) - - LIBXNVCTRL_SRC = $(XNVCTRL_DIR)/NVCtrl.c - -@@ -45,5 +47,11 @@ LIBXNVCTRL_OBJ = $(call BUILD_OBJECT_LIS - - $(eval $(call DEFINE_OBJECT_RULE,TARGET,$(LIBXNVCTRL_SRC))) - --$(LIBXNVCTRL) : $(LIBXNVCTRL_OBJ) -+$(LIBXNVCTRL_a) : $(LIBXNVCTRL_OBJ) - $(call quiet_cmd,AR) ru $@ $(LIBXNVCTRL_OBJ) -+ -+$(LIBXNVCTRL_so) : $(LIBXNVCTRL_OBJ) -+ $(RM) $@ $@.* -+ $(CC) -shared -Wl,-soname=$(@F).0 -o $@.0.0.0 $(LDFLAGS) $^ -lXext -lX11 -+ ln -s $(@F).0.0.0 $@.0 -+ ln -s $(@F).0 $@ diff --git a/debian/patches/12_nvidia-settings.desktop.diff b/debian/patches/12_nvidia-settings.desktop.diff index 39f2282355776cb3df9458270965be65dac61902..381b03cbe60068b25f6b643a70aba476097564aa 100644 --- a/debian/patches/12_nvidia-settings.desktop.diff +++ b/debian/patches/12_nvidia-settings.desktop.diff @@ -9,15 +9,17 @@ Forwarded: not-needed +Version=1.0 Type=Application -Encoding=UTF-8 -+Exec=nvidia-settings -+Terminal=false -+Categories=HardwareSettings;System;Settings; -+Icon=nvidia-settings - Name=NVIDIA X Server Settings - Comment=Configure NVIDIA X Server Settings +-Name=NVIDIA X Server Settings +-Comment=Configure NVIDIA X Server Settings -Exec=__UTILS_PATH__/nvidia-settings -Icon=__PIXMAP_PATH__/nvidia-settings.png -Categories=__NVIDIA_SETTINGS_DESKTOP_CATEGORIES__ ++Exec=nvidia-settings ++Terminal=false ++Categories=HardwareSettings;System;Settings; ++Icon=nvidia-settings#VARIANT# ++Name=NVIDIA X Server Settings#VARIANT_DESC# ++Comment=Configure NVIDIA X Server Settings#VARIANT_DESC# # Translation by Marcin MikoÅ‚ajczak Name[pl]=Ustawienia serwera X NVIDIA diff --git a/debian/patches/series b/debian/patches/series index d5ba55e2e2fffe43c76af3cec7bf54c7fc1908e1..122e720a03a3ca65a3a858af771b723b00a63608 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,5 +1,4 @@ link-order.diff -10_libxnvctrl_so_0.diff 12_nvidia-settings.desktop.diff typos.diff kfreebsd-hurd.diff diff --git a/debian/rules b/debian/rules index 5efee5d49e96d333562705c12021ad58b0510108..bf56bec96b19b12b59a2c01bddc6b28de2ec808f 100755 --- a/debian/rules +++ b/debian/rules @@ -31,12 +31,25 @@ include debian/rules.defs NVIDIA_LEGACY ?= NVIDIA_TESLA ?= NVIDIA_RELEASE = $(DEB_VERSION_UPSTREAM) -variant = $(if $(NVIDIA_TESLA),tesla-$(NVIDIA_TESLA),$(if $(NVIDIA_LEGACY),legacy-$(NVIDIA_LEGACY)xx)) -variant_description = $(if $(NVIDIA_TESLA), (Tesla $(NVIDIA_TESLA) version),$(if $(NVIDIA_LEGACY), ($(NVIDIA_LEGACY)xx legacy version))) +empty = +variant = +variant_description = +ifneq (,$(NVIDIA_LEGACY)) +variant = legacy-$(NVIDIA_LEGACY)xx)) +variant_description = $(empty) ($(NVIDIA_LEGACY)xx legacy version))) +endif +ifneq (,$(NVIDIA_TESLA)) +variant = tesla-$(NVIDIA_TESLA) +variant_description = $(empty) (Tesla $(NVIDIA_TESLA) version) +endif +ifeq (yes,$(NVIDIA_TESLA)) +variant = tesla +variant_description = $(empty) (Tesla version) +endif -variant = $(if $(variant),-$(variant)) nvidia = nvidia$(-variant) nvidia_private = nvidia/$(if $(variant),$(variant),current) -watch_version ?= $(or $(NVIDIA_TESLA),$(NVIDIA_LEGACY)) +watch_version ?= $(or $(filter-out yes,$(NVIDIA_TESLA)),$(NVIDIA_LEGACY)) ALL_CONTROL := $(wildcard debian/nvidia-settings.*) VARIANT_CONTROL := $(wildcard debian/nvidia-settings$(-variant).*) @@ -53,14 +66,7 @@ AUTOCLEAN = $(filter-out $(AUTOKEEP),$(AUTOGEN)) %: dh $@ -ifeq (,$(filter nvidia-settings,$(shell dh_listpackages))) override_dh_auto_build: $(AUTOGEN) - CC_ONLY_CFLAGS="$(CPPFLAGS)" dh_auto_build --sourcedirectory=src/libXNVCtrl - -override_dh_auto_install: -else -override_dh_auto_build: $(AUTOGEN) - CC_ONLY_CFLAGS="$(CPPFLAGS)" dh_auto_build --sourcedirectory=src/libXNVCtrl CC_ONLY_CFLAGS="$(CPPFLAGS)" dh_auto_build -O--parallel $(MAKE) -C samples @@ -69,7 +75,6 @@ override_dh_auto_install: install -m 0755 samples/$(OUTPUTDIR)/nv-control-dpy debian/tmp/usr/bin/ install -d -m 0755 debian/tmp/usr/share/icons/hicolor/128x128/apps/ install -m 0644 doc/nvidia-settings.png debian/tmp/usr/share/icons/hicolor/128x128/apps/nvidia-settings$(-variant).png -endif override_dh_auto_clean: dh_auto_clean -- BUILD_GTK3LIB=1 diff --git a/debian/salsa-ci.yml b/debian/salsa-ci.yml index bfed02b3642e188bbb8bf7225d8c1bd2d5527a35..c3d1fdf3872c8432ffe07f442d927fd4911a6b8b 100644 --- a/debian/salsa-ci.yml +++ b/debian/salsa-ci.yml @@ -1,7 +1,7 @@ --- include: - - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml - - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml + - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/recipes/debian.yml variables: SALSA_CI_COMPONENTS: 'main contrib non-free' + SALSA_CI_DISABLE_BUILD_PACKAGE_I386: 1 diff --git a/doc/version.mk b/doc/version.mk index 36f573873ecf76141759e9e85268e2021c2ad673..dae35ac2315e7ed874c063beacadec078b9447d1 100644 --- a/doc/version.mk +++ b/doc/version.mk @@ -1,4 +1,4 @@ -NVIDIA_VERSION = 525.85.05 +NVIDIA_VERSION = 525.147.05 # This file. VERSION_MK_FILE := $(lastword $(MAKEFILE_LIST)) diff --git a/samples/version.mk b/samples/version.mk index 36f573873ecf76141759e9e85268e2021c2ad673..dae35ac2315e7ed874c063beacadec078b9447d1 100644 --- a/samples/version.mk +++ b/samples/version.mk @@ -1,4 +1,4 @@ -NVIDIA_VERSION = 525.85.05 +NVIDIA_VERSION = 525.147.05 # This file. VERSION_MK_FILE := $(lastword $(MAKEFILE_LIST)) diff --git a/src/gtk+-2.x/ctkslimm.c b/src/gtk+-2.x/ctkslimm.c index ed1ca88770a2b0d441ebc5715d73c854f0662dd7..d476f59956084e3cc65db8e19b9c39779ed0914e 100644 --- a/src/gtk+-2.x/ctkslimm.c +++ b/src/gtk+-2.x/ctkslimm.c @@ -1292,7 +1292,7 @@ static nvDisplayPtr setup_display(CtkMMDialog *ctk_mmdialog) void update_mosaic_dialog_ui(CtkMMDialog *ctk_mmdialog, nvLayoutPtr layout) { nvModeLineItemPtr iter; - char *id; + char *id = NULL; if (ctk_mmdialog == NULL) { return; @@ -1300,6 +1300,7 @@ void update_mosaic_dialog_ui(CtkMMDialog *ctk_mmdialog, nvLayoutPtr layout) if (layout) { ctk_mmdialog->layout = layout; + ctk_mmdialog->cur_modeline = NULL; } parse_slimm_layout(ctk_mmdialog, @@ -1307,12 +1308,14 @@ void update_mosaic_dialog_ui(CtkMMDialog *ctk_mmdialog, nvLayoutPtr layout) &ctk_mmdialog->h_overlap_parsed, &ctk_mmdialog->v_overlap_parsed); - id = g_strdup(ctk_mmdialog->cur_modeline->data.identifier); + if (ctk_mmdialog->cur_modeline) { + id = g_strdup(ctk_mmdialog->cur_modeline->data.identifier); + } setup_display(ctk_mmdialog); iter = ctk_mmdialog->modelines; - while (iter->next) { + while (id && iter->next) { if (strcmp(id, iter->modeline->data.identifier) == 0) { ctk_mmdialog->cur_modeline = iter->modeline; break; diff --git a/src/libXNVCtrl/version.mk b/src/libXNVCtrl/version.mk index 36f573873ecf76141759e9e85268e2021c2ad673..dae35ac2315e7ed874c063beacadec078b9447d1 100644 --- a/src/libXNVCtrl/version.mk +++ b/src/libXNVCtrl/version.mk @@ -1,4 +1,4 @@ -NVIDIA_VERSION = 525.85.05 +NVIDIA_VERSION = 525.147.05 # This file. VERSION_MK_FILE := $(lastword $(MAKEFILE_LIST)) diff --git a/src/nvml.h b/src/nvml.h index 0da0f8c0f73a5728c06c77bc2e02c6a4b25c5d02..9ac2324180ae72e0215147d376c7dd5cecb7fe2b 100644 --- a/src/nvml.h +++ b/src/nvml.h @@ -1,5 +1,5 @@ /* - * Copyright 1993-2022 NVIDIA Corporation. All rights reserved. + * Copyright 1993-2023 NVIDIA Corporation. All rights reserved. * * NOTICE TO USER: * @@ -525,6 +525,7 @@ typedef enum nvmlValueType_enum NVML_VALUE_TYPE_UNSIGNED_LONG = 2, NVML_VALUE_TYPE_UNSIGNED_LONG_LONG = 3, NVML_VALUE_TYPE_SIGNED_LONG_LONG = 4, + NVML_VALUE_TYPE_SIGNED_INT = 5, // Keep this last NVML_VALUE_TYPE_COUNT @@ -537,6 +538,7 @@ typedef enum nvmlValueType_enum typedef union nvmlValue_st { double dVal; //!< If the value is double + int siVal; //!< If the value is signed long long unsigned int uiVal; //!< If the value is unsigned int unsigned long ulVal; //!< If the value is unsigned long unsigned long long ullVal; //!< If the value is unsigned long long @@ -1730,7 +1732,39 @@ typedef struct nvmlGpuDynamicPstatesInfo_st #define NVML_FI_DEV_PCIE_L0_TO_RECOVERY_COUNTER 169 //!< Device PEX error recovery counter -#define NVML_FI_MAX 170 //!< One greater than the largest field ID defined above +/* + * PCIe error counter + */ +#define NVML_FI_DEV_PCIE_COUNT_CORRECTABLE_ERRORS 173 +#define NVML_FI_DEV_PCIE_COUNT_NAKS_RECEIVED 174 +#define NVML_FI_DEV_PCIE_COUNT_RECEIVER_ERROR 175 +#define NVML_FI_DEV_PCIE_COUNT_BAD_TLP 176 +#define NVML_FI_DEV_PCIE_COUNT_NAKS_SENT 177 +#define NVML_FI_DEV_PCIE_COUNT_BAD_DLLP 178 +#define NVML_FI_DEV_PCIE_COUNT_NON_FATAL_ERROR 179 +#define NVML_FI_DEV_PCIE_COUNT_FATAL_ERROR 180 +#define NVML_FI_DEV_PCIE_COUNT_UNSUPPORTED_REQ 181 +#define NVML_FI_DEV_PCIE_COUNT_LCRC_ERROR 182 + +/** + * Retrieves power usage for this GPU in milliwatts. + * It is only available if power management mode is supported. See \ref nvmlDeviceGetPowerManagementMode and + * \ref nvmlDeviceGetPowerUsage. + */ +#define NVML_FI_DEV_POWER_AVERAGE 185 //!< GPU power averaged over 1 sec interval, supported on Ampere (except GA100) or newer architectures. +#define NVML_FI_DEV_POWER_INSTANT 186 //!< Current GPU power, supported on all architectures. + +/** + * GPU T.Limit temperature thresholds in degree Celsius + * + * These fields are supported on Ada and later architectures and supersedes \ref nvmlDeviceGetTemperatureThreshold. + */ +#define NVML_FI_DEV_TEMPERATURE_SHUTDOWN_TLIMIT 193 //!< T.Limit temperature after which GPU may shut down for HW protection +#define NVML_FI_DEV_TEMPERATURE_SLOWDOWN_TLIMIT 194 //!< T.Limit temperature after which GPU may begin HW slowdown +#define NVML_FI_DEV_TEMPERATURE_MEM_MAX_TLIMIT 195 //!< T.Limit temperature after which GPU may begin SW slowdown due to memory temperature +#define NVML_FI_DEV_TEMPERATURE_GPU_MAX_TLIMIT 196 //!< T.Limit temperature after which GPU may be throttled below base clock + +#define NVML_FI_MAX 197 //!< One greater than the largest field ID defined above /** * Information for a Field Value Sample @@ -2140,7 +2174,7 @@ typedef struct nvmlEncoderSessionInfo_st */ typedef enum nvmlFBCSessionType_enum { - NVML_FBC_SESSION_TYPE_UNKNOWN = 0, //!< Unknwon + NVML_FBC_SESSION_TYPE_UNKNOWN = 0, //!< Unknown NVML_FBC_SESSION_TYPE_TOSYS, //!< ToSys NVML_FBC_SESSION_TYPE_CUDA, //!< Cuda NVML_FBC_SESSION_TYPE_VID, //!< Vid @@ -3641,6 +3675,20 @@ nvmlReturn_t DECLDIR nvmlDeviceGetClockInfo(nvmlDevice_t device, nvmlClockType_t */ nvmlReturn_t DECLDIR nvmlDeviceGetMaxClockInfo(nvmlDevice_t device, nvmlClockType_t type, unsigned int *clock); +/** + * Retrieve the GPCCLK VF offset value + * @param[in] device The identifier of the target device + * @param[out] offset The retrieved GPCCLK VF offset value + * + * @return + * - \ref NVML_SUCCESS if \a offset has been successfully queried + * - \ref NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized + * - \ref NVML_ERROR_INVALID_ARGUMENT if \a device is invalid or \a offset is NULL + * - \ref NVML_ERROR_NOT_SUPPORTED if the device does not support this feature + * - \ref NVML_ERROR_UNKNOWN on any unexpected error + */ +nvmlReturn_t DECLDIR nvmlDeviceGetGpcClkVfOffset(nvmlDevice_t device, int *offset); + /** * Retrieves the current setting of a clock that applications will use unless an overspec situation occurs. * Can be changed using \ref nvmlDeviceSetApplicationsClocks. @@ -4097,6 +4145,14 @@ nvmlReturn_t DECLDIR nvmlDeviceGetTemperature(nvmlDevice_t device, nvmlTemperatu * * See \ref nvmlTemperatureThresholds_t for details on available temperature thresholds. * + * Note: This API is no longer the preferred interface for retrieving the following temperature thresholds + * on Ada and later architectures: NVML_TEMPERATURE_THRESHOLD_SHUTDOWN, NVML_TEMPERATURE_THRESHOLD_SLOWDOWN, + * NVML_TEMPERATURE_THRESHOLD_MEM_MAX and NVML_TEMPERATURE_THRESHOLD_GPU_MAX. + * + * Support for reading these temperature thresholds for Ada and later architectures would be removed from this + * API in future releases. Please use \ref nvmlDeviceGetFieldValues with NVML_FI_DEV_TEMPERATURE_* fields to retrieve + * temperature thresholds on these architectures. + * * @param device The identifier of the target device * @param thresholdType The type of threshold value queried * @param temp Reference in which to return the temperature reading @@ -4237,6 +4293,113 @@ nvmlReturn_t DECLDIR nvmlDeviceGetSupportedClocksThrottleReasons(nvmlDevice_t de */ nvmlReturn_t DECLDIR nvmlDeviceGetPowerState(nvmlDevice_t device, nvmlPstates_t *pState); +/** + * Retrieve performance monitor samples from the associated subdevice. + * + * @param device + * @param pDynamicPstatesInfo + * + * @return + * - \ref NVML_SUCCESS if \a pDynamicPstatesInfo has been set + * - \ref NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized + * - \ref NVML_ERROR_INVALID_ARGUMENT if \a device is invalid or \a pDynamicPstatesInfo is NULL + * - \ref NVML_ERROR_NOT_SUPPORTED if the device does not support this feature + * - \ref NVML_ERROR_GPU_IS_LOST if the target GPU has fallen off the bus or is otherwise inaccessible + * - \ref NVML_ERROR_UNKNOWN on any unexpected error + */ +nvmlReturn_t DECLDIR nvmlDeviceGetDynamicPstatesInfo(nvmlDevice_t device, nvmlGpuDynamicPstatesInfo_t *pDynamicPstatesInfo); + +/** + * Retrieve the MemClk (Memory Clock) VF offset value. + * @param[in] device The identifier of the target device + * @param[out] offset The retrieved MemClk VF offset value + * + * @return + * - \ref NVML_SUCCESS if \a offset has been successfully queried + * - \ref NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized + * - \ref NVML_ERROR_INVALID_ARGUMENT if \a device is invalid or \a offset is NULL + * - \ref NVML_ERROR_NOT_SUPPORTED if the device does not support this feature + * - \ref NVML_ERROR_UNKNOWN on any unexpected error + */ +nvmlReturn_t DECLDIR nvmlDeviceGetMemClkVfOffset(nvmlDevice_t device, int *offset); + +/** + * Retrieve min and max clocks of some clock domain for a given PState + * + * @param device The identifier of the target device + * @param type Clock domain + * @param pstate PState to query + * @param minClockMHz Reference in which to return min clock frequency + * @param maxClockMHz Reference in which to return max clock frequency + * + * @return + * - \ref NVML_SUCCESS if everything worked + * - \ref NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized + * - \ref NVML_ERROR_INVALID_ARGUMENT if \a device, \a type or \a pstate are invalid or both + * \a minClockMHz and \a maxClockMHz are NULL + * - \ref NVML_ERROR_NOT_SUPPORTED if the device does not support this feature + */ +nvmlReturn_t DECLDIR nvmlDeviceGetMinMaxClockOfPState(nvmlDevice_t device, nvmlClockType_t type, nvmlPstates_t pstate, + unsigned int * minClockMHz, unsigned int * maxClockMHz); + +/** + * Get all supported Performance States (P-States) for the device. + * + * The returned array would contain a contiguous list of valid P-States supported by + * the device. If the number of supported P-States is fewer than the size of the array + * supplied missing elements would contain \a NVML_PSTATE_UNKNOWN. + * + * The number of elements in the returned list will never exceed \a NVML_MAX_GPU_PERF_PSTATES. + * + * @param device The identifier of the target device + * @param pstates Container to return the list of performance states + * supported by device + * @param size Size of the supplied \a pstates array in bytes + * + * @return + * - \ref NVML_SUCCESS if \a pstates array has been retrieved + * - \ref NVML_ERROR_INSUFFICIENT_SIZE if the the container supplied was not large enough to + * hold the resulting list + * - \ref NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized + * - \ref NVML_ERROR_INVALID_ARGUMENT if \a device or \a pstates is invalid + * - \ref NVML_ERROR_NOT_SUPPORTED if the device does not support performance state readings + * - \ref NVML_ERROR_UNKNOWN on any unexpected error + */ +nvmlReturn_t DECLDIR nvmlDeviceGetSupportedPerformanceStates(nvmlDevice_t device, + nvmlPstates_t *pstates, unsigned int size); + +/** + * Retrieve the GPCCLK min max VF offset value. + * @param[in] device The identifier of the target device + * @param[out] minOffset The retrieved GPCCLK VF min offset value + * @param[out] maxOffset The retrieved GPCCLK VF max offset value + * + * @return + * - \ref NVML_SUCCESS if \a offset has been successfully queried + * - \ref NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized + * - \ref NVML_ERROR_INVALID_ARGUMENT if \a device is invalid or \a offset is NULL + * - \ref NVML_ERROR_NOT_SUPPORTED if the device does not support this feature + * - \ref NVML_ERROR_UNKNOWN on any unexpected error + */ +nvmlReturn_t DECLDIR nvmlDeviceGetGpcClkMinMaxVfOffset(nvmlDevice_t device, + int *minOffset, int *maxOffset); + +/** + * Retrieve the MemClk (Memory Clock) min max VF offset value. + * @param[in] device The identifier of the target device + * @param[out] minOffset The retrieved MemClk VF min offset value + * @param[out] maxOffset The retrieved MemClk VF max offset value + * + * @return + * - \ref NVML_SUCCESS if \a offset has been successfully queried + * - \ref NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized + * - \ref NVML_ERROR_INVALID_ARGUMENT if \a device is invalid or \a offset is NULL + * - \ref NVML_ERROR_NOT_SUPPORTED if the device does not support this feature + * - \ref NVML_ERROR_UNKNOWN on any unexpected error + */ +nvmlReturn_t DECLDIR nvmlDeviceGetMemClkMinMaxVfOffset(nvmlDevice_t device, + int *minOffset, int *maxOffset); + /** * This API has been deprecated. * @@ -4336,7 +4499,12 @@ nvmlReturn_t DECLDIR nvmlDeviceGetPowerManagementDefaultLimit(nvmlDevice_t devic * * For Fermi &tm; or newer fully supported devices. * - * On Fermi and Kepler GPUs the reading is accurate to within +/- 5% of current power draw. + * On Fermi and Kepler GPUs the reading is accurate to within +/- 5% of current power draw. On Ampere + * (except GA100) or newer GPUs, the API returns power averaged over 1 sec interval. On GA100 and + * older architectures, instantaneous power is returned. + * + * See \ref NVML_FI_DEV_POWER_AVERAGE and \ref NVML_FI_DEV_POWER_INSTANT to query specific power + * values. * * It is only available if power management mode is supported. See \ref nvmlDeviceGetPowerManagementMode. * @@ -4792,10 +4960,10 @@ nvmlReturn_t DECLDIR nvmlDeviceGetEncoderStats (nvmlDevice_t device, unsigned in * Retrieves information about active encoder sessions on a target device. * * An array of active encoder sessions is returned in the caller-supplied buffer pointed at by \a sessionInfos. The - * array elememt count is passed in \a sessionCount, and \a sessionCount is used to return the number of sessions + * array element count is passed in \a sessionCount, and \a sessionCount is used to return the number of sessions * written to the buffer. * - * If the supplied buffer is not large enough to accomodate the active session array, the function returns + * If the supplied buffer is not large enough to accommodate the active session array, the function returns * NVML_ERROR_INSUFFICIENT_SIZE, with the element count of nvmlEncoderSessionInfo_t array required in \a sessionCount. * To query the number of active encoder sessions, call this function with *sessionCount = 0. The code will return * NVML_SUCCESS with number of active encoder sessions updated in *sessionCount. @@ -4844,7 +5012,7 @@ nvmlReturn_t DECLDIR nvmlDeviceGetDecoderUtilization(nvmlDevice_t device, unsign * For Maxwell &tm; or newer fully supported devices. * * @param device The identifier of the target device -* @param fbcStats Reference to nvmlFBCStats_t structure contianing NvFBC stats +* @param fbcStats Reference to nvmlFBCStats_t structure containing NvFBC stats * * @return * - \ref NVML_SUCCESS if \a fbcStats is fetched @@ -4862,7 +5030,7 @@ nvmlReturn_t DECLDIR nvmlDeviceGetFBCStats(nvmlDevice_t device, nvmlFBCStats_t * * array element count is passed in \a sessionCount, and \a sessionCount is used to return the number of sessions * written to the buffer. * -* If the supplied buffer is not large enough to accomodate the active session array, the function returns +* If the supplied buffer is not large enough to accommodate the active session array, the function returns * NVML_ERROR_INSUFFICIENT_SIZE, with the element count of nvmlFBCSessionInfo_t array required in \a sessionCount. * To query the number of active FBC sessions, call this function with *sessionCount = 0. The code will return * NVML_SUCCESS with number of active FBC sessions updated in *sessionCount. @@ -5339,6 +5507,41 @@ nvmlReturn_t DECLDIR nvmlDeviceGetPcieSpeed(nvmlDevice_t device, unsigned int *p */ nvmlReturn_t DECLDIR nvmlDeviceGetAdaptiveClockInfoStatus(nvmlDevice_t device, unsigned int *adaptiveClockStatus); +/** + * Get the type of the GPU Bus (PCIe, PCI, ...) + * + * @param device The identifier of the target device + * @param type The PCI Bus type + * + * return + * - \ref NVML_SUCCESS if the bus \a type is successfully retreived + * - \ref NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized + * - \ref NVML_ERROR_INVALID_ARGUMENT if \device is invalid or \type is NULL + * - \ref NVML_ERROR_UNKNOWN on any unexpected error + */ +nvmlReturn_t DECLDIR nvmlDeviceGetBusType(nvmlDevice_t device, nvmlBusType_t *type); + +/** + * Get fabric information associated with the device. + * + * %HOPPER_OR_NEWER% + * + * On Hopper + NVSwitch systems, GPU is registered with the NVIDIA Fabric Manager + * Upon successful registration, the GPU is added to the NVLink fabric to enable + * peer-to-peer communication. + * This API reports the current state of the GPU in the NVLink fabric + * along with other useful information. + * + * @param device The identifier of the target device + * @param gpuFabricInfo Information about GPU fabric state + * + * @return + * - \ref NVML_SUCCESS Upon success + * - \ref NVML_ERROR_NOT_SUPPORTED If \a device doesn't support gpu fabric + */ +nvmlReturn_t DECLDIR nvmlDeviceGetGpuFabricInfo(nvmlDevice_t device, nvmlGpuFabricInfo_t *gpuFabricInfo); + + /** * @} */ @@ -5501,7 +5704,7 @@ nvmlReturn_t DECLDIR nvmlDeviceGetRetiredPages(nvmlDevice_t device, nvmlPageReti * The address information provided from this API is the hardware address of the page that was retired. Note * that this does not match the virtual address used in CUDA, but will match the address information in XID 63 * - * \note nvmlDeviceGetRetiredPages_v2 adds an additional timestamps paramter to return the time of each page's + * \note nvmlDeviceGetRetiredPages_v2 adds an additional timestamps parameter to return the time of each page's * retirement. * * For Kepler &tm; or newer fully supported devices. @@ -5838,7 +6041,7 @@ typedef enum nvmlClockLimitId_enum { * Set clocks that device will lock to. * * Sets the clocks that the device will be running at to the value in the range of minGpuClockMHz to maxGpuClockMHz. - * Setting this will supercede application clock values and take effect regardless if a cuda app is running. + * Setting this will supersede application clock values and take effect regardless if a cuda app is running. * See /ref nvmlDeviceSetApplicationsClocks * * Can be used as a setting to request constant performance. @@ -6105,6 +6308,60 @@ nvmlReturn_t DECLDIR nvmlDeviceSetGpuOperationMode(nvmlDevice_t device, nvmlGpuO */ nvmlReturn_t DECLDIR nvmlDeviceSetAPIRestriction(nvmlDevice_t device, nvmlRestrictedAPI_t apiType, nvmlEnableState_t isRestricted); +/** + * Sets the speed of a specified fan. + * + * WARNING: This function changes the fan control policy to manual. It means that YOU have to monitor + * the temperature and adjust the fan speed accordingly. + * If you set the fan speed too low you can burn your GPU! + * Use nvmlDeviceSetDefaultFanSpeed_v2 to restore default control policy. + * + * For all cuda-capable discrete products with fans that are Maxwell or Newer. + * + * device The identifier of the target device + * fan The index of the fan, starting at zero + * speed The target speed of the fan [0-100] in % of max speed + * + * return + * NVML_SUCCESS if the fan speed has been set + * NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized + * NVML_ERROR_INVALID_ARGUMENT if the device is not valid, or the speed is outside acceptable ranges, + * or if the fan index doesn't reference an actual fan. + * NVML_ERROR_NOT_SUPPORTED if the device is older than Maxwell. + * NVML_ERROR_UNKNOWN if there was an unexpected error. + */ +nvmlReturn_t DECLDIR nvmlDeviceSetFanSpeed_v2(nvmlDevice_t device, unsigned int fan, unsigned int speed); + +/** + * Set the GPCCLK VF offset value + * @param[in] device The identifier of the target device + * @param[in] offset The GPCCLK VF offset value to set + * + * @return + * - \ref NVML_SUCCESS if \a offset has been set + * - \ref NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized + * - \ref NVML_ERROR_INVALID_ARGUMENT if \a device is invalid or \a offset is NULL + * - \ref NVML_ERROR_NOT_SUPPORTED if the device does not support this feature + * - \ref NVML_ERROR_GPU_IS_LOST if the target GPU has fallen off the bus or is otherwise inaccessible + * - \ref NVML_ERROR_UNKNOWN on any unexpected error + */ +nvmlReturn_t DECLDIR nvmlDeviceSetGpcClkVfOffset(nvmlDevice_t device, int offset); + +/** + * Set the MemClk (Memory Clock) VF offset value. It requires elevated privileges. + * @param[in] device The identifier of the target device + * @param[in] offset The MemClk VF offset value to set + * + * @return + * - \ref NVML_SUCCESS if \a offset has been set + * - \ref NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized + * - \ref NVML_ERROR_INVALID_ARGUMENT if \a device is invalid or \a offset is NULL + * - \ref NVML_ERROR_NOT_SUPPORTED if the device does not support this feature + * - \ref NVML_ERROR_GPU_IS_LOST if the target GPU has fallen off the bus or is otherwise inaccessible + * - \ref NVML_ERROR_UNKNOWN on any unexpected error + */ +nvmlReturn_t DECLDIR nvmlDeviceSetMemClkVfOffset(nvmlDevice_t device, int offset); + /** * @} */ @@ -6955,7 +7212,7 @@ nvmlReturn_t DECLDIR nvmlDeviceGetVgpuCapabilities(nvmlDevice_t device, nvmlDevi * pointed at by \a vgpuTypeIds. The element count of nvmlVgpuTypeId_t array is passed in \a vgpuCount, and \a vgpuCount * is used to return the number of vGPU types written to the buffer. * - * If the supplied buffer is not large enough to accomodate the vGPU type array, the function returns + * If the supplied buffer is not large enough to accommodate the vGPU type array, the function returns * NVML_ERROR_INSUFFICIENT_SIZE, with the element count of nvmlVgpuTypeId_t array required in \a vgpuCount. * To query the number of vGPU types supported for the GPU, call this function with *vgpuCount = 0. * The code will return NVML_ERROR_INSUFFICIENT_SIZE, or NVML_SUCCESS if no vGPU types are supported. @@ -6984,9 +7241,9 @@ nvmlReturn_t DECLDIR nvmlDeviceGetSupportedVgpus(nvmlDevice_t device, unsigned i * can concurrently run on a device. For example, if only one vGPU type is allowed at a time on a device, then the creatable * list will be restricted to whatever vGPU type is already running on the device. * - * If the supplied buffer is not large enough to accomodate the vGPU type array, the function returns + * If the supplied buffer is not large enough to accommodate the vGPU type array, the function returns * NVML_ERROR_INSUFFICIENT_SIZE, with the element count of nvmlVgpuTypeId_t array required in \a vgpuCount. - * To query the number of vGPU types createable for the GPU, call this function with *vgpuCount = 0. + * To query the number of vGPU types that can be created for the GPU, call this function with *vgpuCount = 0. * The code will return NVML_ERROR_INSUFFICIENT_SIZE, or NVML_SUCCESS if no vGPU types are creatable. * * @param device The identifier of the target device @@ -7066,7 +7323,7 @@ nvmlReturn_t DECLDIR nvmlVgpuTypeGetGpuInstanceProfileId(nvmlVgpuTypeId_t vgpuTy * * @param vgpuTypeId Handle to vGPU type * @param deviceID Device ID and vendor ID of the device contained in single 32 bit value - * @param subsystemID Subsytem ID and subsytem vendor ID of the device contained in single 32 bit value + * @param subsystemID Subsystem ID and subsystem vendor ID of the device contained in single 32 bit value * * @return * - \ref NVML_SUCCESS successful completion @@ -7205,10 +7462,10 @@ nvmlReturn_t DECLDIR nvmlVgpuTypeGetMaxInstancesPerVm(nvmlVgpuTypeId_t vgpuTypeI * Retrieve the active vGPU instances on a device. * * An array of active vGPU instances is returned in the caller-supplied buffer pointed at by \a vgpuInstances. The - * array elememt count is passed in \a vgpuCount, and \a vgpuCount is used to return the number of vGPU instances + * array element count is passed in \a vgpuCount, and \a vgpuCount is used to return the number of vGPU instances * written to the buffer. * - * If the supplied buffer is not large enough to accomodate the vGPU instance array, the function returns + * If the supplied buffer is not large enough to accommodate the vGPU instance array, the function returns * NVML_ERROR_INSUFFICIENT_SIZE, with the element count of nvmlVgpuInstance_t array required in \a vgpuCount. * To query the number of active vGPU instances, call this function with *vgpuCount = 0. The code will return * NVML_ERROR_INSUFFICIENT_SIZE, or NVML_SUCCESS if no vGPU Types are supported. @@ -7409,7 +7666,7 @@ nvmlReturn_t DECLDIR nvmlVgpuInstanceGetEccMode(nvmlVgpuInstance_t vgpuInstance, * @param encoderCapacity Reference to an unsigned int for the encoder capacity * * @return - * - \ref NVML_SUCCESS if \a encoderCapacity has been retrived + * - \ref NVML_SUCCESS if \a encoderCapacity has been retrieved * - \ref NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized * - \ref NVML_ERROR_INVALID_ARGUMENT if \a vgpuInstance is 0, or \a encoderQueryType is invalid * - \ref NVML_ERROR_NOT_FOUND if \a vgpuInstance does not match a valid active vGPU instance on the system @@ -7462,7 +7719,7 @@ nvmlReturn_t DECLDIR nvmlVgpuInstanceGetEncoderStats(nvmlVgpuInstance_t vgpuInst * array element count is passed in \a sessionCount, and \a sessionCount is used to return the number of sessions * written to the buffer. * - * If the supplied buffer is not large enough to accomodate the active session array, the function returns + * If the supplied buffer is not large enough to accommodate the active session array, the function returns * NVML_ERROR_INSUFFICIENT_SIZE, with the element count of nvmlEncoderSessionInfo_t array required in \a sessionCount. * To query the number of active encoder sessions, call this function with *sessionCount = 0. The code will return * NVML_SUCCESS with number of active encoder sessions updated in *sessionCount. @@ -7492,7 +7749,7 @@ nvmlReturn_t DECLDIR nvmlVgpuInstanceGetEncoderSessions(nvmlVgpuInstance_t vgpuI * For Maxwell &tm; or newer fully supported devices. * * @param vgpuInstance Identifier of the target vGPU instance -* @param fbcStats Reference to nvmlFBCStats_t structure contianing NvFBC stats +* @param fbcStats Reference to nvmlFBCStats_t structure containing NvFBC stats * * @return * - \ref NVML_SUCCESS if \a fbcStats is fetched @@ -7510,7 +7767,7 @@ nvmlReturn_t DECLDIR nvmlVgpuInstanceGetFBCStats(nvmlVgpuInstance_t vgpuInstance * array element count is passed in \a sessionCount, and \a sessionCount is used to return the number of sessions * written to the buffer. * -* If the supplied buffer is not large enough to accomodate the active session array, the function returns +* If the supplied buffer is not large enough to accommodate the active session array, the function returns * NVML_ERROR_INSUFFICIENT_SIZE, with the element count of nvmlFBCSessionInfo_t array required in \a sessionCount. * To query the number of active FBC sessions, call this function with *sessionCount = 0. The code will return * NVML_SUCCESS with number of active FBC sessions updated in *sessionCount. @@ -7620,7 +7877,7 @@ typedef struct nvmlVgpuMetadata_st char guestDriverVersion[NVML_SYSTEM_DRIVER_VERSION_BUFFER_SIZE]; //!< Version of driver installed in guest char hostDriverVersion[NVML_SYSTEM_DRIVER_VERSION_BUFFER_SIZE]; //!< Version of driver installed in host unsigned int reserved[6]; //!< Reserved for internal use - unsigned int vgpuVirtualizationCaps; //!< vGPU virtualizaion capabilities bitfileld + unsigned int vgpuVirtualizationCaps; //!< vGPU virtualization capabilities bitfield unsigned int guestVgpuVersion; //!< vGPU version of guest driver unsigned int opaqueDataSize; //!< Size of opaque data field in bytes char opaqueData[4]; //!< Opaque data @@ -7634,7 +7891,7 @@ typedef struct nvmlVgpuPgpuMetadata_st unsigned int version; //!< Current version of the structure unsigned int revision; //!< Current revision of the structure char hostDriverVersion[NVML_SYSTEM_DRIVER_VERSION_BUFFER_SIZE]; //!< Host driver version - unsigned int pgpuVirtualizationCaps; //!< Pgpu virtualizaion capabilities bitfileld + unsigned int pgpuVirtualizationCaps; //!< Pgpu virtualization capabilities bitfield unsigned int reserved[5]; //!< Reserved for internal use nvmlVgpuVersion_t hostSupportedVgpuRange; //!< vGPU version range supported by host driver unsigned int opaqueDataSize; //!< Size of opaque data field in bytes @@ -7732,7 +7989,7 @@ nvmlReturn_t DECLDIR nvmlDeviceGetVgpuMetadata(nvmlDevice_t device, nvmlVgpuPgpu * * The caller passes in a buffer via \a compatibilityInfo, into which a compatibility information structure is written. The * structure defines the states in which the vGPU / VM may be booted on the physical GPU. If the vGPU / VM compatibility - * with the physical GPU is limited, a limit code indicates the factor limiting compability. + * with the physical GPU is limited, a limit code indicates the factor limiting compatability. * (see \ref nvmlVgpuPgpuCompatibilityLimitCode_t for details). * * Note: vGPU compatibility does not take into account dynamic capacity conditions that may limit a system's ability to @@ -9022,216 +9279,7 @@ nvmlReturn_t DECLDIR nvmlDeviceGetMigDeviceHandleByIndex(nvmlDevice_t device, un */ nvmlReturn_t DECLDIR nvmlDeviceGetDeviceHandleFromMigDeviceHandle(nvmlDevice_t migDevice, nvmlDevice_t *device); -/** - * Get the type of the GPU Bus (PCIe, PCI, ...) - * - * @param device The identifier of the target device - * @param type The PCI Bus type - * - * return - * - \ref NVML_SUCCESS if the bus \a type is successfully retreived - * - \ref NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized - * - \ref NVML_ERROR_INVALID_ARGUMENT if \device is invalid or \type is NULL - * - \ref NVML_ERROR_UNKNOWN on any unexpected error - */ -nvmlReturn_t DECLDIR nvmlDeviceGetBusType(nvmlDevice_t device, nvmlBusType_t *type); - -/** - * Retrieve performance monitor samples from the associated subdevice. - * - * @param device - * @param pDynamicPstatesInfo - * - * @return - * - \ref NVML_SUCCESS if \a pDynamicPstatesInfo has been set - * - \ref NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized - * - \ref NVML_ERROR_INVALID_ARGUMENT if \a device is invalid or \a pDynamicPstatesInfo is NULL - * - \ref NVML_ERROR_NOT_SUPPORTED if the device does not support this feature - * - \ref NVML_ERROR_GPU_IS_LOST if the target GPU has fallen off the bus or is otherwise inaccessible - * - \ref NVML_ERROR_UNKNOWN on any unexpected error - */ -nvmlReturn_t DECLDIR nvmlDeviceGetDynamicPstatesInfo(nvmlDevice_t device, nvmlGpuDynamicPstatesInfo_t *pDynamicPstatesInfo); - -/** - * Sets the speed of a specified fan. - * - * WARNING: This function changes the fan control policy to manual. It means that YOU have to monitor - * the temperature and adjust the fan speed accordingly. - * If you set the fan speed too low you can burn your GPU! - * Use nvmlDeviceSetDefaultFanSpeed_v2 to restore default control policy. - * - * For all cuda-capable discrete products with fans that are Maxwell or Newer. - * - * device The identifier of the target device - * fan The index of the fan, starting at zero - * speed The target speed of the fan [0-100] in % of max speed - * - * return - * NVML_SUCCESS if the fan speed has been set - * NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized - * NVML_ERROR_INVALID_ARGUMENT if the device is not valid, or the speed is outside acceptable ranges, - * or if the fan index doesn't reference an actual fan. - * NVML_ERROR_NOT_SUPPORTED if the device is older than Maxwell. - * NVML_ERROR_UNKNOWN if there was an unexpected error. - */ -nvmlReturn_t DECLDIR nvmlDeviceSetFanSpeed_v2(nvmlDevice_t device, unsigned int fan, unsigned int speed); - -/** - * Retrieve the GPCCLK VF offset value - * @param[in] device The identifier of the target device - * @param[out] offset The retrieved GPCCLK VF offset value - * - * @return - * - \ref NVML_SUCCESS if \a offset has been successfully queried - * - \ref NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized - * - \ref NVML_ERROR_INVALID_ARGUMENT if \a device is invalid or \a offset is NULL - * - \ref NVML_ERROR_NOT_SUPPORTED if the device does not support this feature - * - \ref NVML_ERROR_UNKNOWN on any unexpected error - */ -nvmlReturn_t DECLDIR nvmlDeviceGetGpcClkVfOffset(nvmlDevice_t device, int *offset); - -/** - * Set the GPCCLK VF offset value - * @param[in] device The identifier of the target device - * @param[in] offset The GPCCLK VF offset value to set - * - * @return - * - \ref NVML_SUCCESS if \a offset has been set - * - \ref NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized - * - \ref NVML_ERROR_INVALID_ARGUMENT if \a device is invalid or \a offset is NULL - * - \ref NVML_ERROR_NOT_SUPPORTED if the device does not support this feature - * - \ref NVML_ERROR_GPU_IS_LOST if the target GPU has fallen off the bus or is otherwise inaccessible - * - \ref NVML_ERROR_UNKNOWN on any unexpected error - */ -nvmlReturn_t DECLDIR nvmlDeviceSetGpcClkVfOffset(nvmlDevice_t device, int offset); - -/** - * Retrieve the MemClk (Memory Clock) VF offset value. - * @param[in] device The identifier of the target device - * @param[out] offset The retrieved MemClk VF offset value - * - * @return - * - \ref NVML_SUCCESS if \a offset has been successfully queried - * - \ref NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized - * - \ref NVML_ERROR_INVALID_ARGUMENT if \a device is invalid or \a offset is NULL - * - \ref NVML_ERROR_NOT_SUPPORTED if the device does not support this feature - * - \ref NVML_ERROR_UNKNOWN on any unexpected error - */ -nvmlReturn_t DECLDIR nvmlDeviceGetMemClkVfOffset(nvmlDevice_t device, int *offset); - -/** - * Set the MemClk (Memory Clock) VF offset value. It requires elevated privileges. - * @param[in] device The identifier of the target device - * @param[in] offset The MemClk VF offset value to set - * - * @return - * - \ref NVML_SUCCESS if \a offset has been set - * - \ref NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized - * - \ref NVML_ERROR_INVALID_ARGUMENT if \a device is invalid or \a offset is NULL - * - \ref NVML_ERROR_NOT_SUPPORTED if the device does not support this feature - * - \ref NVML_ERROR_GPU_IS_LOST if the target GPU has fallen off the bus or is otherwise inaccessible - * - \ref NVML_ERROR_UNKNOWN on any unexpected error - */ -nvmlReturn_t DECLDIR nvmlDeviceSetMemClkVfOffset(nvmlDevice_t device, int offset); - -/** - * Retrieve min and max clocks of some clock domain for a given PState - * - * @param device The identifier of the target device - * @param type Clock domain - * @param pstate PState to query - * @param minClockMHz Reference in which to return min clock frequency - * @param maxClockMHz Reference in which to return max clock frequency - * - * @return - * - \ref NVML_SUCCESS if everything worked - * - \ref NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized - * - \ref NVML_ERROR_INVALID_ARGUMENT if \a device, \a type or \a pstate are invalid or both - * \a minClockMHz and \a maxClockMHz are NULL - * - \ref NVML_ERROR_NOT_SUPPORTED if the device does not support this feature - */ -nvmlReturn_t DECLDIR nvmlDeviceGetMinMaxClockOfPState(nvmlDevice_t device, nvmlClockType_t type, nvmlPstates_t pstate, - unsigned int * minClockMHz, unsigned int * maxClockMHz); - -/** - * Get all supported Performance States (P-States) for the device. - * - * The returned array would contain a contiguous list of valid P-States supported by - * the device. If the number of supported P-States is fewer than the size of the array - * supplied missing elements would contain \a NVML_PSTATE_UNKNOWN. - * - * The number of elements in the returned list will never exceed \a NVML_MAX_GPU_PERF_PSTATES. - * - * @param device The identifier of the target device - * @param pstates Container to return the list of performance states - * supported by device - * @param size Size of the supplied \a pstates array in bytes - * - * @return - * - \ref NVML_SUCCESS if \a pstates array has been retrieved - * - \ref NVML_ERROR_INSUFFICIENT_SIZE if the the container supplied was not large enough to - * hold the resulting list - * - \ref NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized - * - \ref NVML_ERROR_INVALID_ARGUMENT if \a device or \a pstates is invalid - * - \ref NVML_ERROR_NOT_SUPPORTED if the device does not support performance state readings - * - \ref NVML_ERROR_UNKNOWN on any unexpected error - */ -nvmlReturn_t DECLDIR nvmlDeviceGetSupportedPerformanceStates(nvmlDevice_t device, - nvmlPstates_t *pstates, unsigned int size); - -/** - * Retrieve the GPCCLK min max VF offset value. - * @param[in] device The identifier of the target device - * @param[out] minOffset The retrieved GPCCLK VF min offset value - * @param[out] maxOffset The retrieved GPCCLK VF max offset value - * - * @return - * - \ref NVML_SUCCESS if \a offset has been successfully queried - * - \ref NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized - * - \ref NVML_ERROR_INVALID_ARGUMENT if \a device is invalid or \a offset is NULL - * - \ref NVML_ERROR_NOT_SUPPORTED if the device does not support this feature - * - \ref NVML_ERROR_UNKNOWN on any unexpected error - */ -nvmlReturn_t DECLDIR nvmlDeviceGetGpcClkMinMaxVfOffset(nvmlDevice_t device, - int *minOffset, int *maxOffset); - -/** - * Retrieve the MemClk (Memory Clock) min max VF offset value. - * @param[in] device The identifier of the target device - * @param[out] minOffset The retrieved MemClk VF min offset value - * @param[out] maxOffset The retrieved MemClk VF max offset value - * - * @return - * - \ref NVML_SUCCESS if \a offset has been successfully queried - * - \ref NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized - * - \ref NVML_ERROR_INVALID_ARGUMENT if \a device is invalid or \a offset is NULL - * - \ref NVML_ERROR_NOT_SUPPORTED if the device does not support this feature - * - \ref NVML_ERROR_UNKNOWN on any unexpected error - */ -nvmlReturn_t DECLDIR nvmlDeviceGetMemClkMinMaxVfOffset(nvmlDevice_t device, - int *minOffset, int *maxOffset); - -/** - * Get fabric information associated with the device. - * - * %HOPPER_OR_NEWER% - * - * On Hopper + NVSwitch systems, GPU is registered with the NVIDIA Fabric Manager - * Upon successful registration, the GPU is added to the NVLink fabric to enable - * peer-to-peer communication. - * This API reports the current state of the GPU in the NVLink fabric - * along with other useful information. - * - * @param device The identifier of the target device - * @param gpuFabricInfo Information about GPU fabric state - * - * @return - * - \ref NVML_SUCCESS Upon success - * - \ref NVML_ERROR_NOT_SUPPORTED If \a device doesn't support gpu fabric - */ -nvmlReturn_t DECLDIR nvmlDeviceGetGpuFabricInfo(nvmlDevice_t device, nvmlGpuFabricInfo_t *gpuFabricInfo); - -/** @} */ +/** @} */ // @defgroup nvmlMultiInstanceGPU /***************************************************************************************************/ /** @defgroup GPM NVML GPM diff --git a/src/version.mk b/src/version.mk index 36f573873ecf76141759e9e85268e2021c2ad673..dae35ac2315e7ed874c063beacadec078b9447d1 100644 --- a/src/version.mk +++ b/src/version.mk @@ -1,4 +1,4 @@ -NVIDIA_VERSION = 525.85.05 +NVIDIA_VERSION = 525.147.05 # This file. VERSION_MK_FILE := $(lastword $(MAKEFILE_LIST)) diff --git a/version.mk b/version.mk index 36f573873ecf76141759e9e85268e2021c2ad673..dae35ac2315e7ed874c063beacadec078b9447d1 100644 --- a/version.mk +++ b/version.mk @@ -1,4 +1,4 @@ -NVIDIA_VERSION = 525.85.05 +NVIDIA_VERSION = 525.147.05 # This file. VERSION_MK_FILE := $(lastword $(MAKEFILE_LIST))