1
0
mirror of https://github.com/GOSTSec/sgminer synced 2025-09-04 02:02:29 +00:00

Ignore whether the display is active or not since only display enabled devices work this way, and we skip over repeat entries anwyay.

This commit is contained in:
Con Kolivas 2011-09-07 09:17:51 +10:00
parent 4d13f8ad3c
commit b8be1e6c15
2 changed files with 17 additions and 24 deletions

37
adl.c
View File

@ -57,7 +57,6 @@ static ADL_ADAPTER_NUMBEROFADAPTERS_GET ADL_Adapter_NumberOfAdapters_Get;
static ADL_ADAPTER_ADAPTERINFO_GET ADL_Adapter_AdapterInfo_Get; static ADL_ADAPTER_ADAPTERINFO_GET ADL_Adapter_AdapterInfo_Get;
static ADL_ADAPTER_ID_GET ADL_Adapter_ID_Get; static ADL_ADAPTER_ID_GET ADL_Adapter_ID_Get;
static ADL_OVERDRIVE5_TEMPERATURE_GET ADL_Overdrive5_Temperature_Get; static ADL_OVERDRIVE5_TEMPERATURE_GET ADL_Overdrive5_Temperature_Get;
static ADL_ADAPTER_ACTIVE_GET ADL_Adapter_Active_Get;
static ADL_OVERDRIVE5_CURRENTACTIVITY_GET ADL_Overdrive5_CurrentActivity_Get; static ADL_OVERDRIVE5_CURRENTACTIVITY_GET ADL_Overdrive5_CurrentActivity_Get;
static ADL_OVERDRIVE5_ODPARAMETERS_GET ADL_Overdrive5_ODParameters_Get; static ADL_OVERDRIVE5_ODPARAMETERS_GET ADL_Overdrive5_ODParameters_Get;
static ADL_OVERDRIVE5_FANSPEEDINFO_GET ADL_Overdrive5_FanSpeedInfo_Get; static ADL_OVERDRIVE5_FANSPEEDINFO_GET ADL_Overdrive5_FanSpeedInfo_Get;
@ -120,7 +119,6 @@ void init_adl(int nDevs)
ADL_Adapter_AdapterInfo_Get = (ADL_ADAPTER_ADAPTERINFO_GET) GetProcAddress(hDLL,"ADL_Adapter_AdapterInfo_Get"); ADL_Adapter_AdapterInfo_Get = (ADL_ADAPTER_ADAPTERINFO_GET) GetProcAddress(hDLL,"ADL_Adapter_AdapterInfo_Get");
ADL_Adapter_ID_Get = (ADL_ADAPTER_ID_GET) GetProcAddress(hDLL,"ADL_Adapter_ID_Get"); ADL_Adapter_ID_Get = (ADL_ADAPTER_ID_GET) GetProcAddress(hDLL,"ADL_Adapter_ID_Get");
ADL_Overdrive5_Temperature_Get = (ADL_OVERDRIVE5_TEMPERATURE_GET) GetProcAddress(hDLL,"ADL_Overdrive5_Temperature_Get"); ADL_Overdrive5_Temperature_Get = (ADL_OVERDRIVE5_TEMPERATURE_GET) GetProcAddress(hDLL,"ADL_Overdrive5_Temperature_Get");
ADL_Adapter_Active_Get = (ADL_ADAPTER_ACTIVE_GET) GetProcAddress(hDLL, "ADL_Adapter_Active_Get");
ADL_Overdrive5_CurrentActivity_Get = (ADL_OVERDRIVE5_CURRENTACTIVITY_GET) GetProcAddress(hDLL, "ADL_Overdrive5_CurrentActivity_Get"); ADL_Overdrive5_CurrentActivity_Get = (ADL_OVERDRIVE5_CURRENTACTIVITY_GET) GetProcAddress(hDLL, "ADL_Overdrive5_CurrentActivity_Get");
ADL_Overdrive5_ODParameters_Get = (ADL_OVERDRIVE5_ODPARAMETERS_GET) GetProcAddress(hDLL, "ADL_Overdrive5_ODParameters_Get"); ADL_Overdrive5_ODParameters_Get = (ADL_OVERDRIVE5_ODPARAMETERS_GET) GetProcAddress(hDLL, "ADL_Overdrive5_ODParameters_Get");
ADL_Overdrive5_FanSpeedInfo_Get = (ADL_OVERDRIVE5_FANSPEEDINFO_GET) GetProcAddress(hDLL, "ADL_Overdrive5_FanSpeedInfo_Get"); ADL_Overdrive5_FanSpeedInfo_Get = (ADL_OVERDRIVE5_FANSPEEDINFO_GET) GetProcAddress(hDLL, "ADL_Overdrive5_FanSpeedInfo_Get");
@ -137,7 +135,7 @@ void init_adl(int nDevs)
if (!ADL_Main_Control_Create || !ADL_Main_Control_Destroy || if (!ADL_Main_Control_Create || !ADL_Main_Control_Destroy ||
!ADL_Adapter_NumberOfAdapters_Get || !ADL_Adapter_AdapterInfo_Get || !ADL_Adapter_NumberOfAdapters_Get || !ADL_Adapter_AdapterInfo_Get ||
!ADL_Adapter_ID_Get || !ADL_Overdrive5_Temperature_Get || !ADL_Adapter_ID_Get || !ADL_Overdrive5_Temperature_Get ||
!ADL_Adapter_Active_Get || !ADL_Overdrive5_CurrentActivity_Get || !ADL_Overdrive5_CurrentActivity_Get ||
!ADL_Overdrive5_ODParameters_Get || !ADL_Overdrive5_FanSpeedInfo_Get || !ADL_Overdrive5_ODParameters_Get || !ADL_Overdrive5_FanSpeedInfo_Get ||
!ADL_Overdrive5_FanSpeed_Get || !ADL_Overdrive5_FanSpeed_Set || !ADL_Overdrive5_FanSpeed_Get || !ADL_Overdrive5_FanSpeed_Set ||
!ADL_Overdrive5_ODPerformanceLevels_Get || !ADL_Overdrive5_ODPerformanceLevels_Set || !ADL_Overdrive5_ODPerformanceLevels_Get || !ADL_Overdrive5_ODPerformanceLevels_Set ||
@ -189,7 +187,7 @@ void init_adl(int nDevs)
int lev; int lev;
iAdapterIndex = lpInfo[i].iAdapterIndex; iAdapterIndex = lpInfo[i].iAdapterIndex;
/* Get unique identifier of the adapter */ /* Get unique identifier of the adapter, 0 means not AMD */
if (ADL_Adapter_ID_Get(iAdapterIndex, &lpAdapterID) != ADL_OK) { if (ADL_Adapter_ID_Get(iAdapterIndex, &lpAdapterID) != ADL_OK) {
applog(LOG_INFO, "Failed to ADL_Adapter_ID_Get"); applog(LOG_INFO, "Failed to ADL_Adapter_ID_Get");
continue; continue;
@ -197,33 +195,26 @@ void init_adl(int nDevs)
if (!lpAdapterID) if (!lpAdapterID)
continue; continue;
if (lpAdapterID != last_adapter) { /* Each adapter may have multiple entries */
/* We found a truly new adapter instead of a logical if (lpAdapterID == last_adapter)
* one. Now since there's no way of correlating the continue;
* opencl enumerated devices and the ADL enumerated
* ones, we have to assume they're in the same order.*/
if (++devices > nDevs) {
applog(LOG_ERR, "ADL found more devices than opencl");
return;
}
gpu = devices - 1;
last_adapter = lpAdapterID;
}
/* See if the adapter is an AMD device with ADL active */ /* We found a truly new adapter instead of a logical
if (ADL_Adapter_Active_Get(iAdapterIndex, &lpStatus) != ADL_OK) { * one. Now since there's no way of correlating the
applog(LOG_INFO, "Failed to ADL_Adapter_Active_Get"); * opencl enumerated devices and the ADL enumerated
continue; * ones, we have to assume they're in the same order.*/
if (++devices > nDevs) {
applog(LOG_ERR, "ADL found more devices than opencl");
return;
} }
if (!lpStatus) gpu = devices - 1;
continue; last_adapter = lpAdapterID;
/* From here on we know this device is a discrete device and /* From here on we know this device is a discrete device and
* should support ADL */ * should support ADL */
ga = &gpus[gpu].adl; ga = &gpus[gpu].adl;
ga->iAdapterIndex = iAdapterIndex; ga->iAdapterIndex = iAdapterIndex;
ga->lpAdapterID = lpAdapterID; ga->lpAdapterID = lpAdapterID;
ga->lpStatus = lpStatus;
ga->DefPerfLev = NULL; ga->DefPerfLev = NULL;
/* Save whatever the current speed setting is to restore on exit */ /* Save whatever the current speed setting is to restore on exit */

View File

@ -160,13 +160,14 @@ struct gpu_adl {
ADLTemperature lpTemperature; ADLTemperature lpTemperature;
int iAdapterIndex; int iAdapterIndex;
int lpAdapterID; int lpAdapterID;
int lpStatus;
ADLPMActivity lpActivity; ADLPMActivity lpActivity;
ADLODParameters lpOdParameters; ADLODParameters lpOdParameters;
ADLODPerformanceLevels *DefPerfLev; ADLODPerformanceLevels *DefPerfLev;
ADLFanSpeedInfo lpFanSpeedInfo; ADLFanSpeedInfo lpFanSpeedInfo;
ADLFanSpeedValue lpFanSpeedValue; ADLFanSpeedValue lpFanSpeedValue;
ADLFanSpeedValue DefFanSpeedValue; ADLFanSpeedValue DefFanSpeedValue;
int iEngineClock; int iEngineClock;
int iMemoryClock; int iMemoryClock;
int iVddc; int iVddc;
@ -175,6 +176,7 @@ struct gpu_adl {
bool autofan; bool autofan;
bool autoengine; bool autoengine;
int targettemp; int targettemp;
int overtemp; int overtemp;
int minspeed; int minspeed;