Added the AMD GPU driver version to the report. Added a check for erroneous ActivityPercent values returned by the ADL_Overdrive5_CurrentActivity_Get method.

This commit is contained in:
Michael Möller 2020-03-11 21:34:33 +01:00
parent 2019791af9
commit 8afd59327e
4 changed files with 45 additions and 4 deletions

View File

@ -131,6 +131,18 @@ namespace OpenHardwareMonitor.Hardware.ATI {
public int VDDCI; public int VDDCI;
} }
[StructLayout(LayoutKind.Sequential)]
internal struct ADLVersionsInfo {
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
public string DriverVersion;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
public string CatalystVersion;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
public string CatalystWebLink;
}
internal enum ADLODNCurrentPowerType { internal enum ADLODNCurrentPowerType {
TOTAL_POWER = 0, TOTAL_POWER = 0,
PPT_POWER, PPT_POWER,
@ -357,6 +369,8 @@ namespace OpenHardwareMonitor.Hardware.ATI {
public delegate ADLStatus ADL2_OverdriveN_PerformanceStatus_GetDelegate( public delegate ADLStatus ADL2_OverdriveN_PerformanceStatus_GetDelegate(
IntPtr context, int adapterIndex, IntPtr context, int adapterIndex,
out ADLODNPerformanceStatus performanceStatus); out ADLODNPerformanceStatus performanceStatus);
public delegate ADLStatus ADL_Graphics_Versions_GetDelegate(
out ADLVersionsInfo versionInfo);
private static ADL_Main_Control_CreateDelegate private static ADL_Main_Control_CreateDelegate
_ADL_Main_Control_Create; _ADL_Main_Control_Create;
@ -401,6 +415,8 @@ namespace OpenHardwareMonitor.Hardware.ATI {
ADL_Overdrive5_ODParameters_Get; ADL_Overdrive5_ODParameters_Get;
public static ADL2_OverdriveN_PerformanceStatus_GetDelegate public static ADL2_OverdriveN_PerformanceStatus_GetDelegate
ADL2_OverdriveN_PerformanceStatus_Get; ADL2_OverdriveN_PerformanceStatus_Get;
public static ADL_Graphics_Versions_GetDelegate
ADL_Graphics_Versions_Get;
private static string dllName; private static string dllName;
@ -463,6 +479,8 @@ namespace OpenHardwareMonitor.Hardware.ATI {
out ADL_Overdrive5_ODParameters_Get); out ADL_Overdrive5_ODParameters_Get);
GetDelegate("ADL2_OverdriveN_PerformanceStatus_Get", GetDelegate("ADL2_OverdriveN_PerformanceStatus_Get",
out ADL2_OverdriveN_PerformanceStatus_Get); out ADL2_OverdriveN_PerformanceStatus_Get);
GetDelegate("ADL_Graphics_Versions_Get",
out ADL_Graphics_Versions_Get);
} }
static ADL() { static ADL() {

View File

@ -563,8 +563,12 @@ namespace OpenHardwareMonitor.Hardware.ATI {
coreVoltage.Value = null; coreVoltage.Value = null;
} }
coreLoad.Value = Math.Min(adlp.ActivityPercent, 100); if (adlp.ActivityPercent >= 0 && adlp.ActivityPercent <= 100) {
ActivateSensor(coreLoad); coreLoad.Value = adlp.ActivityPercent;
ActivateSensor(coreLoad);
} else {
coreLoad.Value = null;
}
} else { } else {
coreClock.Value = null; coreClock.Value = null;
memoryClock.Value = null; memoryClock.Value = null;

View File

@ -34,6 +34,25 @@ namespace OpenHardwareMonitor.Hardware.ATI {
report.AppendLine(adl2Status.ToString()); report.AppendLine(adl2Status.ToString());
report.AppendLine(); report.AppendLine();
report.AppendLine("Graphics Versions");
report.AppendLine();
try {
var status = ADL.ADL_Graphics_Versions_Get(out var versionInfo);
report.Append(" Status: ");
report.AppendLine(status.ToString());
report.Append(" DriverVersion: ");
report.AppendLine(versionInfo.DriverVersion);
report.Append(" CatalystVersion: ");
report.AppendLine(versionInfo.CatalystVersion);
report.Append(" CatalystWebLink: ");
report.AppendLine(versionInfo.CatalystWebLink);
} catch (DllNotFoundException) {
report.AppendLine(" Status: DLL not found");
} catch (Exception e) {
report.AppendLine(" Status: " + e.Message);
}
report.AppendLine();
if (adlStatus == ADLStatus.OK) { if (adlStatus == ADLStatus.OK) {
int numberOfAdapters = 0; int numberOfAdapters = 0;
ADL.ADL_Adapter_NumberOfAdapters_Get(ref numberOfAdapters); ADL.ADL_Adapter_NumberOfAdapters_Get(ref numberOfAdapters);

View File

@ -10,5 +10,5 @@
using System.Reflection; using System.Reflection;
[assembly: AssemblyVersion("0.9.2.2")] [assembly: AssemblyVersion("0.9.2.3")]
[assembly: AssemblyInformationalVersion("0.9.2.2 Alpha")] [assembly: AssemblyInformationalVersion("0.9.2.3 Alpha")]