1
0
mirror of https://github.com/GOSTSec/sgminer synced 2025-01-10 14:58:01 +00:00

Fix to apply correct GPU engine clock or range

This addresses issue #265. GPU engine clock will be the exact value or range specified, with the correct min/max.
This commit is contained in:
ystarnaud 2014-06-20 13:10:13 -04:00
parent 5430d1ee91
commit ef722e697d

View File

@ -265,30 +265,34 @@ char *set_gpu_engine(const char *_arg)
char *arg = (char *)alloca(strlen(_arg) + 1); char *arg = (char *)alloca(strlen(_arg) + 1);
strcpy(arg, _arg); strcpy(arg, _arg);
nextptr = strtok(arg, ","); if(!(nextptr = strtok(arg, ",")))
if (nextptr == NULL)
return "Invalid parameters for set gpu engine"; return "Invalid parameters for set gpu engine";
get_intrange(nextptr, &val1, &val2);
if (val1 < 0 || val1 > 9999 || val2 < 0 || val2 > 9999) do {
return "Invalid value passed to set_gpu_engine";
gpus[device].min_engine = val1;
gpus[device].gpu_engine = val2;
device++;
while ((nextptr = strtok(NULL, ",")) != NULL) {
get_intrange(nextptr, &val1, &val2); get_intrange(nextptr, &val1, &val2);
if (val1 < 0 || val1 > 9999 || val2 < 0 || val2 > 9999) if (val1 < 0 || val1 > 9999 || val2 < 0 || val2 > 9999)
return "Invalid value passed to set_gpu_engine"; return "Invalid value passed to set_gpu_engine";
gpus[device].min_engine = val1; gpus[device].min_engine = val1;
gpus[device].gpu_engine = val2; gpus[device].gpu_engine = val2;
//also set adl settings otherwise range will never properly be applied
//since min_engine/gpu_engine are only called during init_adl() at startup
gpus[device].adl.minspeed = val1 * 100;
gpus[device].adl.maxspeed = val2 * 100;
device++; device++;
} } while ((nextptr = strtok(NULL, ",")) != NULL);
//if only 1 range passed, apply to all gpus
if (device == 1) { if (device == 1) {
for (i = 1; i < MAX_GPUDEVICES; i++) { for (i = 1; i < MAX_GPUDEVICES; i++) {
gpus[i].min_engine = gpus[0].min_engine; gpus[i].min_engine = gpus[0].min_engine;
gpus[i].gpu_engine = gpus[0].gpu_engine; gpus[i].gpu_engine = gpus[0].gpu_engine;
//set adl values
gpus[i].adl.minspeed = val1 * 100;
gpus[i].adl.maxspeed = val2 * 100;
} }
} }