Browse Source

only change gpu engine, memclock, fans, if ADL is enabled

djm34
Jan Berdajs 11 years ago
parent
commit
87bbca6148
  1. 4
      driver-opencl.c
  2. 2
      driver-opencl.h
  3. 34
      sgminer.c

4
driver-opencl.c

@ -295,10 +295,12 @@ char *set_gpu_engine(const char *_arg) @@ -295,10 +295,12 @@ char *set_gpu_engine(const char *_arg)
return NULL;
}
char *set_gpu_fan(char *arg)
char *set_gpu_fan(const char *_arg)
{
int i, val1 = 0, val2 = 0, device = 0;
char *nextptr;
char *arg = (char *)alloca(strlen(_arg) + 1);
strcpy(arg, _arg);
nextptr = strtok(arg, ",");
if (nextptr == NULL)

2
driver-opencl.h

@ -9,7 +9,7 @@ extern void *reinit_gpu(void *userdata); @@ -9,7 +9,7 @@ extern void *reinit_gpu(void *userdata);
extern char *set_gpu_map(char *arg);
extern char *set_gpu_threads(const char *arg);
extern char *set_gpu_engine(const char *arg);
extern char *set_gpu_fan(char *arg);
extern char *set_gpu_fan(const char *arg);
extern char *set_gpu_memclock(const char *arg);
extern char *set_gpu_memdiff(char *arg);
extern char *set_gpu_powertune(char *arg);

34
sgminer.c

@ -6241,22 +6241,24 @@ static void get_work_prepare_thread(struct thr_info *mythr, struct work *work) @@ -6241,22 +6241,24 @@ static void get_work_prepare_thread(struct thr_info *mythr, struct work *work)
set_rawintensity(work->pool->rawintensity);
if (work->pool->thread_concurrency)
set_thread_concurrency(work->pool->thread_concurrency);
if (work->pool->gpu_engine) {
set_gpu_engine(work->pool->gpu_engine);
for (i = 0; i < nDevs; i++)
set_engineclock(i, gpus[i].min_engine);
}
if (work->pool->gpu_memclock) {
set_gpu_memclock(work->pool->gpu_memclock);
for (i = 0; i < nDevs; i++)
set_memoryclock(i, gpus[i].gpu_memclock);
}
if (work->pool->gpu_fan) {
set_gpu_fan(work->pool->gpu_fan);
for (i = 0; i < nDevs; i++)
if (gpus[i].min_fan == gpus[i].gpu_fan)
set_fanspeed(i, gpus[i].gpu_fan);
}
#ifdef HAVE_ADL
if (work->pool->gpu_engine) {
set_gpu_engine(work->pool->gpu_engine);
for (i = 0; i < nDevs; i++)
set_engineclock(i, gpus[i].min_engine);
}
if (work->pool->gpu_memclock) {
set_gpu_memclock(work->pool->gpu_memclock);
for (i = 0; i < nDevs; i++)
set_memoryclock(i, gpus[i].gpu_memclock);
}
if (work->pool->gpu_fan) {
set_gpu_fan(work->pool->gpu_fan);
for (i = 0; i < nDevs; i++)
if (gpus[i].min_fan == gpus[i].gpu_fan)
set_fanspeed(i, gpus[i].gpu_fan);
}
#endif
// Change algorithm for each thread (thread_prepare calls initCl)
for (i = 0; i < mining_threads; i++) {
struct thr_info *thr = mining_thr[i];

Loading…
Cancel
Save