Sanity check the config values

These values are up for debate, perhaps AMD or NV give nice limits
This commit is contained in:
Marc Di Luzio 2019-02-03 15:31:10 +00:00
parent a9237bc1dd
commit 252aa89fa6

View File

@ -95,24 +95,46 @@ int game_mode_initialise_gpu(GameModeConfig *config, GameModeGPUInfo **info)
return -1;
}
/* Load the config based on GPU */
/* Load the config based on GPU and also verify the values are sane */
switch (new_info->vendor) {
case Vendor_NVIDIA:
config_get_nv_core_clock_mhz_offset(config, &new_info->core);
config_get_nv_mem_clock_mhz_offset(config, &new_info->mem);
/* Reject values over some guessed values
* If a user wants to go into very unsafe levels they can recompile
*/
const int nv_core_hard_limit = 200;
const int nv_mem_hard_limit = 2000;
if( new_info->core > nv_core_hard_limit || new_info->mem > nv_mem_hard_limit ) {
LOG_ERROR("ERROR NVIDIA Overclock value above safety levels of +%d (core) +%d (mem), will not overclock!\n", nv_core_hard_limit, nv_mem_hard_limit );
LOG_ERROR("nv_core_clock_mhz_offset:%ld nv_mem_clock_mhz_offset:%ld\n", new_info->core, new_info->mem );
free(new_info);
return -1;
}
break;
case Vendor_AMD:
config_get_amd_core_clock_percentage(config, &new_info->core);
config_get_amd_mem_clock_percentage(config, &new_info->mem);
/* Reject values over 25%
* If a user wants to go into very unsafe levels they can recompile
*/
const int amd_hard_limit = 25;
if( new_info->core > amd_hard_limit || new_info->mem > amd_hard_limit ) {
LOG_ERROR("ERROR AMD Overclock value above safety level of %d%%, will not overclock!\n", amd_hard_limit );
LOG_ERROR("amd_core_clock_percentage:%ld amd_mem_clock_percentage:%ld\n", new_info->core, new_info->mem );
free(new_info);
return -1;
}
break;
default:
break;
}
/* TODO : Sanity check these values */
/* Give back the new gpu info */
*info = new_info;
return status;
}