From c73b4fce97d93a7d908b6f3213fa134988664095 Mon Sep 17 00:00:00 2001 From: seerge Date: Wed, 5 Apr 2023 20:25:05 +0200 Subject: [PATCH] Added NVidia GPU usage --- app/Gpu/AmdGpuTemperatureProvider.cs | 6 +++--- app/Gpu/NvidiaGpuTemperatureProvider.cs | 14 +++++++++++++- app/HardwareMonitor.cs | 1 + 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/app/Gpu/AmdGpuTemperatureProvider.cs b/app/Gpu/AmdGpuTemperatureProvider.cs index e5cd645d..35d79bb3 100644 --- a/app/Gpu/AmdGpuTemperatureProvider.cs +++ b/app/Gpu/AmdGpuTemperatureProvider.cs @@ -77,14 +77,14 @@ public class AmdGpuTemperatureProvider : IGpuTemperatureProvider { public int? GetGpuUse() { if (!IsValid) - return -1; + return null; if (Adl2.NativeMethods.ADL2_New_QueryPMLogData_Get(_adlContextHandle, _internalDiscreteAdapter.AdapterIndex, out ADLPMLogDataOutput adlpmLogDataOutput) != Adl2.ADL_SUCCESS) - return -1; + return null; ADLSingleSensorData gpuUsage = adlpmLogDataOutput.Sensors[(int)ADLSensorType.PMLOG_INFO_ACTIVITY_GFX]; if (gpuUsage.Supported == 0) - return -1; + return null; return gpuUsage.Value; diff --git a/app/Gpu/NvidiaGpuTemperatureProvider.cs b/app/Gpu/NvidiaGpuTemperatureProvider.cs index 527b6c8f..03261e42 100644 --- a/app/Gpu/NvidiaGpuTemperatureProvider.cs +++ b/app/Gpu/NvidiaGpuTemperatureProvider.cs @@ -50,7 +50,19 @@ public class NvidiaGpuTemperatureProvider : IGpuTemperatureProvider public int? GetGpuUse() { - return -1; + if (!IsValid) + return null; + + PhysicalGPU internalGpu = _internalGpu!; + + IUtilizationDomainInfo? gpuUsage = GPUApi.GetUsages(internalGpu.Handle).GPU; + + if (gpuUsage == null) + return null; + + return + (int)gpuUsage?.Percentage; + } } diff --git a/app/HardwareMonitor.cs b/app/HardwareMonitor.cs index 2de42eb3..f70a6ab7 100644 --- a/app/HardwareMonitor.cs +++ b/app/HardwareMonitor.cs @@ -57,6 +57,7 @@ public static class HardwareMonitor } catch (Exception ex) { + Debug.WriteLine(ex.ToString()); } return 0;