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;