Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/jp7677/dxvk-nvapi.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKrzysztof Bogacki <krzysztof.bogacki@leancode.pl>2022-06-06 22:57:43 +0300
committerJens Peters <jp7677@gmail.com>2022-06-25 01:53:54 +0300
commit5202c20472cd9b1b98a1a646dfad80dd217391f6 (patch)
treeaa969d731389960913e9bd31c57bdc11ec5f9047
parentbf3c425946ab8cb61660f9d0de14e7b8c12ac966 (diff)
nvml: Load and expose nvmlDeviceGetThermalSettings
-rw-r--r--src/sysinfo/nvapi_adapter.cpp4
-rw-r--r--src/sysinfo/nvapi_adapter.h1
-rw-r--r--src/sysinfo/nvml.cpp7
-rw-r--r--src/sysinfo/nvml.h3
4 files changed, 15 insertions, 0 deletions
diff --git a/src/sysinfo/nvapi_adapter.cpp b/src/sysinfo/nvapi_adapter.cpp
index b15941e..e30d184 100644
--- a/src/sysinfo/nvapi_adapter.cpp
+++ b/src/sysinfo/nvapi_adapter.cpp
@@ -258,6 +258,10 @@ namespace dxvk {
return m_nvml.DeviceGetTemperature(m_nvmlDevice, sensorType, temp);
}
+ nvmlReturn_t NvapiAdapter::GetNvmlDeviceThermalSettings(unsigned int sensorIndex, nvmlGpuThermalSettings_t* pThermalSettings) const {
+ return m_nvml.DeviceGetThermalSettings(m_nvmlDevice, sensorIndex, pThermalSettings);
+ }
+
nvmlReturn_t NvapiAdapter::GetNvmlDevicePerformanceState(nvmlPstates_t* pState) const {
return m_nvml.DeviceGetPerformanceState(m_nvmlDevice, pState);
}
diff --git a/src/sysinfo/nvapi_adapter.h b/src/sysinfo/nvapi_adapter.h
index 2cf1fe7..19000a6 100644
--- a/src/sysinfo/nvapi_adapter.h
+++ b/src/sysinfo/nvapi_adapter.h
@@ -33,6 +33,7 @@ namespace dxvk {
[[nodiscard]] std::string GetNvmlErrorString(nvmlReturn_t result) const;
[[nodiscard]] nvmlReturn_t GetNvmlDeviceClockInfo(nvmlClockType_t type, unsigned int* clock) const;
[[nodiscard]] nvmlReturn_t GetNvmlDeviceTemperature(nvmlTemperatureSensors_t sensorType, unsigned int* temp) const;
+ [[nodiscard]] nvmlReturn_t GetNvmlDeviceThermalSettings(unsigned int sensorIndex, nvmlGpuThermalSettings_t* pThermalSettings) const;
[[nodiscard]] nvmlReturn_t GetNvmlDevicePerformanceState(nvmlPstates_t* pState) const;
[[nodiscard]] nvmlReturn_t GetNvmlDeviceUtilizationRates(nvmlUtilization_t* utilization) const;
[[nodiscard]] nvmlReturn_t GetNvmlDeviceVbiosVersion(char* version, unsigned int length) const;
diff --git a/src/sysinfo/nvml.cpp b/src/sysinfo/nvml.cpp
index 3c7029d..b0c5800 100644
--- a/src/sysinfo/nvml.cpp
+++ b/src/sysinfo/nvml.cpp
@@ -23,6 +23,7 @@ namespace dxvk {
GETPROCADDR(nvmlDeviceGetPciInfo_v3);
GETPROCADDR(nvmlDeviceGetClockInfo);
GETPROCADDR(nvmlDeviceGetTemperature);
+ GETPROCADDR(nvmlDeviceGetThermalSettings);
GETPROCADDR(nvmlDeviceGetPerformanceState);
GETPROCADDR(nvmlDeviceGetUtilizationRates);
GETPROCADDR(nvmlDeviceGetVbiosVersion);
@@ -87,6 +88,12 @@ namespace dxvk {
: NVML_ERROR_FUNCTION_NOT_FOUND;
}
+ nvmlReturn_t Nvml::DeviceGetThermalSettings(nvmlDevice_t device, unsigned int sensorIndex, nvmlGpuThermalSettings_t* pThermalSettings) const {
+ return m_nvmlDeviceGetThermalSettings
+ ? m_nvmlDeviceGetThermalSettings(device, sensorIndex, pThermalSettings)
+ : NVML_ERROR_FUNCTION_NOT_FOUND;
+ }
+
nvmlReturn_t Nvml::DeviceGetPerformanceState(nvmlDevice_t device, nvmlPstates_t* pState) const {
return m_nvmlDeviceGetPerformanceState
? m_nvmlDeviceGetPerformanceState(device, pState)
diff --git a/src/sysinfo/nvml.h b/src/sysinfo/nvml.h
index 3b8280a..6a42e0e 100644
--- a/src/sysinfo/nvml.h
+++ b/src/sysinfo/nvml.h
@@ -15,6 +15,7 @@ namespace dxvk {
[[nodiscard]] virtual nvmlReturn_t DeviceGetPciInfo_v3(nvmlDevice_t device, nvmlPciInfo_t* pci) const;
[[nodiscard]] virtual nvmlReturn_t DeviceGetClockInfo(nvmlDevice_t device, nvmlClockType_t type, unsigned int* clock) const;
[[nodiscard]] virtual nvmlReturn_t DeviceGetTemperature(nvmlDevice_t device, nvmlTemperatureSensors_t sensorType, unsigned int* temp) const;
+ [[nodiscard]] virtual nvmlReturn_t DeviceGetThermalSettings(nvmlDevice_t device, unsigned int sensorIndex, nvmlGpuThermalSettings_t* pThermalSettings) const;
[[nodiscard]] virtual nvmlReturn_t DeviceGetPerformanceState(nvmlDevice_t device, nvmlPstates_t* pState) const;
[[nodiscard]] virtual nvmlReturn_t DeviceGetUtilizationRates(nvmlDevice_t device, nvmlUtilization_t* utilization) const;
[[nodiscard]] virtual nvmlReturn_t DeviceGetVbiosVersion(nvmlDevice_t device, char* version, unsigned int length) const;
@@ -29,6 +30,7 @@ namespace dxvk {
typedef decltype(&nvmlDeviceGetPciInfo_v3) PFN_nvmlDeviceGetPciInfo_v3;
typedef decltype(&nvmlDeviceGetClockInfo) PFN_nvmlDeviceGetClockInfo;
typedef decltype(&nvmlDeviceGetTemperature) PFN_nvmlDeviceGetTemperature;
+ typedef decltype(&nvmlDeviceGetThermalSettings) PFN_nvmlDeviceGetThermalSettings;
typedef decltype(&nvmlDeviceGetPerformanceState) PFN_nvmlDeviceGetPerformanceState;
typedef decltype(&nvmlDeviceGetUtilizationRates) PFN_nvmlDeviceGetUtilizationRates;
typedef decltype(&nvmlDeviceGetVbiosVersion) PFN_nvmlDeviceGetVbiosVersion;
@@ -43,6 +45,7 @@ namespace dxvk {
PFN_nvmlDeviceGetPciInfo_v3 m_nvmlDeviceGetPciInfo_v3{};
PFN_nvmlDeviceGetClockInfo m_nvmlDeviceGetClockInfo{};
PFN_nvmlDeviceGetTemperature m_nvmlDeviceGetTemperature{};
+ PFN_nvmlDeviceGetThermalSettings m_nvmlDeviceGetThermalSettings{};
PFN_nvmlDeviceGetPerformanceState m_nvmlDeviceGetPerformanceState{};
PFN_nvmlDeviceGetUtilizationRates m_nvmlDeviceGetUtilizationRates{};
PFN_nvmlDeviceGetVbiosVersion m_nvmlDeviceGetVbiosVersion{};