diff --git a/src/shared.c b/src/shared.c index 4aedad78c..8cfa46ef9 100644 --- a/src/shared.c +++ b/src/shared.c @@ -3402,11 +3402,17 @@ int hm_get_throttle_with_device_id (const uint device_id) if (hm_NVML_nvmlDeviceGetCurrentClocksThrottleReasons (data.hm_nvml, 1, data.hm_device[device_id].nvml, &clocksThrottleReasons) != NVML_SUCCESS) return -1; if (hm_NVML_nvmlDeviceGetSupportedClocksThrottleReasons (data.hm_nvml, 1, data.hm_device[device_id].nvml, &supportedThrottleReasons) != NVML_SUCCESS) return -1; - clocksThrottleReasons &= supportedThrottleReasons; - + clocksThrottleReasons &= supportedThrottleReasons; + clocksThrottleReasons &= ~nvmlClocksThrottleReasonGpuIdle; + clocksThrottleReasons &= ~nvmlClocksThrottleReasonApplicationsClocksSetting; clocksThrottleReasons &= ~nvmlClocksThrottleReasonUnknown; - return (clocksThrottleReasons > 0); + if (data.kernel_power_final) + { + clocksThrottleReasons &= ~nvmlClocksThrottleReasonHwSlowdown; + } + + return (clocksThrottleReasons != nvmlClocksThrottleReasonNone); } return -1;