Limit thread concurrency for scrypt to 5xshaders if shaders is specified.
diff --git a/ocl.c b/ocl.c
index 71b69ac..5fe7b1b 100644
--- a/ocl.c
+++ b/ocl.c
@@ -482,8 +482,11 @@ _clState *initCl(unsigned int gpu, char *name, size_t nameSize)
}
if (!cgpu->thread_concurrency) {
cgpu->thread_concurrency = ma / 32768 / cgpu->lookup_gap;
- if (cgpu->shaders && cgpu->thread_concurrency > cgpu->shaders)
+ if (cgpu->shaders && cgpu->thread_concurrency > cgpu->shaders) {
cgpu->thread_concurrency -= cgpu->thread_concurrency % cgpu->shaders;
+ if (cgpu->thread_concurrency > cgpu->shaders * 5)
+ cgpu->thread_concurrency = cgpu->shaders * 5;
+ }
applog(LOG_DEBUG, "GPU %d: selecting thread concurrency of %u",gpu, cgpu->thread_concurrency);
}