Объясните функцию - PullRequest
       59

Объясните функцию

0 голосов
/ 28 июня 2018

Я сейчас анализирую AMD ADL SDK и обнаружил очень интересную функцию

int FindTController(const int iAdapter)
{
    for (int i = 0; ; i++)
    {
        ADLThermalControllerInfo tcinfo;

        tcinfo.iSize = sizeof(tcinfo);

        if (ADL_OK == ADL_Overdrive5_ThermalDevices_Enum(iAdapter, i, &tcinfo))
        {
            if (tcinfo.iThermalDomain) // if GPU domain
                return i;
            //tcinfo.iDomainIndex;
            //tcinfo.iFlags;
        }
    }
    return 0;
}

Я понимаю, что эта функция ищет адаптивное тепловое устройство AMD GPU, но зачем она нужна в таких функциях, как

void SetDefaultFanSpeed(const int iAdapter, const int iTController)
{
    if (ADL_OK != ADL_Overdrive5_FanSpeedToDefault_Set(iAdapter, iTController))
    {
        fprintf(stderr, "Error: cannot set Fan Speed to default.\n");
    }
}
int ADL_Overdrive5_FanSpeedToDefault_Set(int iAdapterIndex, int iThermalControllerIndex)
    {
        return Error = ((int (*)(int,int)) (mProcAddress[E_ADL_Overdrive5_FanSpeedToDefault_Set]))
            (iAdapterIndex, iThermalControllerIndex);
    }

Почти все функции ADD ADL используют эту функцию FindTController, это действительно важно или просто змеиное масло?

1 Ответ

0 голосов
/ 28 июня 2018

Не зная внутренности оборудования, трудно сказать. Но с чего ты взял, что это будет змеиное масло?

Не изменяется ли скорость вентилятора при вызове SetDefaultFanSpeed? Интерфейс кажется абсолютно разумным. Вы должны указать, для какой карты GFX и для какого вентилятора установить скорость. Без аргумента iTController, как бы вы по-другому установили скорость для 2 вентиляторов на карте?

...