# HG changeset patch # User moel.mich # Date 1264620610 0 # Node ID 1a0928afac6bd14ecbc9ae7a481b43add5280d7e # Parent 105939e4eb7e0703623fbf383f5048f227e4fa2f Changed ATI GPU enumeration. diff -r 105939e4eb7e -r 1a0928afac6b GUI/AboutBox.resources Binary file GUI/AboutBox.resources has changed diff -r 105939e4eb7e -r 1a0928afac6b GUI/LicenseBox.resources Binary file GUI/LicenseBox.resources has changed diff -r 105939e4eb7e -r 1a0928afac6b GUI/MainForm.resources Binary file GUI/MainForm.resources has changed diff -r 105939e4eb7e -r 1a0928afac6b GUI/PlotPanel.resources Binary file GUI/PlotPanel.resources has changed diff -r 105939e4eb7e -r 1a0928afac6b Hardware/ATI/ADL.cs --- a/Hardware/ATI/ADL.cs Wed Jan 27 18:12:51 2010 +0000 +++ b/Hardware/ATI/ADL.cs Wed Jan 27 19:30:10 2010 +0000 @@ -48,7 +48,7 @@ [MarshalAs(UnmanagedType.ByValTStr, SizeConst = ADL.ADL_MAX_PATH)] public string UDID; public int BusNumber; - public int DriverNumber; + public int DeviceNumber; public int FunctionNumber; public int VendorID; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = ADL.ADL_MAX_PATH)] @@ -124,6 +124,9 @@ public const int ADL_DL_FANCTRL_SUPPORTS_RPM_READ = 4; public const int ADL_DL_FANCTRL_SUPPORTS_RPM_WRITE = 8; + public const int ATI_VENDOR_ID1 = 1002; + public const int ATI_VENDOR_ID2 = 0x1002; + private delegate int ADL_Main_Control_CreateDelegate( ADL_Main_Memory_AllocDelegate callback, int enumConnectedAdapters); private delegate int ADL_Adapter_AdapterInfo_GetDelegate(IntPtr info, diff -r 105939e4eb7e -r 1a0928afac6b Hardware/ATI/ATIGPU.cs --- a/Hardware/ATI/ATIGPU.cs Wed Jan 27 18:12:51 2010 +0000 +++ b/Hardware/ATI/ATIGPU.cs Wed Jan 27 19:30:10 2010 +0000 @@ -46,16 +46,22 @@ private string name; private Image icon; private int adapterIndex; + private int busNumber; + private int deviceNumber; private Sensor temperature; private Sensor fan; private Sensor coreClock; private Sensor memoryClock; private Sensor coreVoltage; - public ATIGPU(string name, int adapterIndex) { + public ATIGPU(string name, int adapterIndex, int busNumber, + int deviceNumber) + { this.name = name; this.icon = Utilities.EmbeddedResources.GetImage("ati.png"); this.adapterIndex = adapterIndex; + this.busNumber = busNumber; + this.deviceNumber = deviceNumber; ADLFanSpeedInfo speedInfo = new ADLFanSpeedInfo(); ADL.ADL_Overdrive5_FanSpeedInfo_Get(adapterIndex, 0, ref speedInfo); @@ -69,6 +75,10 @@ Update(); } + public int BusNumber { get { return busNumber; } } + + public int DeviceNumber { get { return deviceNumber; } } + public string Name { get { return name; } } diff -r 105939e4eb7e -r 1a0928afac6b Hardware/ATI/ATIGroup.cs --- a/Hardware/ATI/ATIGroup.cs Wed Jan 27 18:12:51 2010 +0000 +++ b/Hardware/ATI/ATIGroup.cs Wed Jan 27 19:30:10 2010 +0000 @@ -73,6 +73,16 @@ report.AppendLine(adapterInfo[i].AdapterName); report.Append("UDID: "); report.AppendLine(adapterInfo[i].UDID); + report.Append("Present: "); + report.AppendLine(adapterInfo[i].Present.ToString()); + report.Append("VendorID: "); + report.AppendLine(adapterInfo[i].VendorID.ToString()); + report.Append("BusNumber: "); + report.AppendLine(adapterInfo[i].BusNumber.ToString()); + report.Append("DeviceNumber: "); + report.AppendLine(adapterInfo[i].DeviceNumber.ToString()); + report.Append("FunctionNumber: "); + report.AppendLine(adapterInfo[i].FunctionNumber.ToString()); report.AppendLine(); if (isActive == 1) { @@ -80,10 +90,25 @@ ADL.ADL_Adapter_ID_Get(adapterInfo[i].AdapterIndex, out adapterID); - if (adapterID > 0 && adapterInfo[i].UDID != "") { - hardware.Add(new ATIGPU( - adapterInfo[i].AdapterName, - adapterInfo[i].AdapterIndex)); + if (adapterID > 0 && + adapterInfo[i].UDID != "" && + adapterInfo[i].Present > 0 && + (adapterInfo[i].VendorID == ADL.ATI_VENDOR_ID1 || + adapterInfo[i].VendorID == ADL.ATI_VENDOR_ID2)) + { + bool found = false; + foreach (ATIGPU gpu in hardware) + if (gpu.BusNumber == adapterInfo[i].BusNumber && + gpu.DeviceNumber == adapterInfo[i].DeviceNumber) { + found = true; + break; + } + if (!found) + hardware.Add(new ATIGPU( + adapterInfo[i].AdapterName, + adapterInfo[i].AdapterIndex, + adapterInfo[i].BusNumber, + adapterInfo[i].DeviceNumber)); } } }