mirror of
https://github.com/GOSTSec/sgminer
synced 2025-02-11 06:25:18 +00:00
Send correct values to scrypt kernel to get it finally working.
This commit is contained in:
parent
3e61db105d
commit
d72add9af3
12
cgminer.c
12
cgminer.c
@ -1711,9 +1711,14 @@ static bool submit_upstream_work(const struct work *work, CURL *curl)
|
|||||||
|
|
||||||
if (!QUIET) {
|
if (!QUIET) {
|
||||||
hash32 = (uint32_t *)(work->hash);
|
hash32 = (uint32_t *)(work->hash);
|
||||||
|
if (opt_scrypt) {
|
||||||
|
sprintf(hashshow, "%08lx.%08lx%s", (unsigned long)(hash32[7]), (unsigned long)(hash32[6]),
|
||||||
|
work->block? " BLOCK!" : "");
|
||||||
|
} else {
|
||||||
sprintf(hashshow, "%08lx.%08lx%s", (unsigned long)(hash32[6]), (unsigned long)(hash32[5]),
|
sprintf(hashshow, "%08lx.%08lx%s", (unsigned long)(hash32[6]), (unsigned long)(hash32[5]),
|
||||||
work->block? " BLOCK!" : "");
|
work->block? " BLOCK!" : "");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Theoretically threads could race when modifying accepted and
|
/* Theoretically threads could race when modifying accepted and
|
||||||
* rejected values but the chance of two submits completing at the
|
* rejected values but the chance of two submits completing at the
|
||||||
@ -3991,10 +3996,13 @@ bool test_nonce(struct work *work, uint32_t nonce)
|
|||||||
{
|
{
|
||||||
uint32_t *work_nonce = (uint32_t *)(work->data + 64 + 12);
|
uint32_t *work_nonce = (uint32_t *)(work->data + 64 + 12);
|
||||||
|
|
||||||
|
if (opt_scrypt) {
|
||||||
|
*work_nonce = nonce;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
*work_nonce = htobe32(nonce);
|
*work_nonce = htobe32(nonce);
|
||||||
|
|
||||||
if (opt_scrypt)
|
|
||||||
return true;
|
|
||||||
|
|
||||||
return hashtest(work);
|
return hashtest(work);
|
||||||
}
|
}
|
||||||
|
@ -995,7 +995,7 @@ static cl_int queue_diablo_kernel(_clState *clState, dev_blk_ctx *blk, cl_uint t
|
|||||||
#ifdef USE_SCRYPT
|
#ifdef USE_SCRYPT
|
||||||
static cl_int queue_scrypt_kernel(_clState *clState, dev_blk_ctx *blk, __maybe_unused cl_uint threads)
|
static cl_int queue_scrypt_kernel(_clState *clState, dev_blk_ctx *blk, __maybe_unused cl_uint threads)
|
||||||
{
|
{
|
||||||
cl_uint4 *midstate = (cl_uint4 *)blk->work->midstate;
|
char *midstate = blk->work->midstate;
|
||||||
cl_kernel *kernel = &clState->kernel;
|
cl_kernel *kernel = &clState->kernel;
|
||||||
unsigned int num = 0;
|
unsigned int num = 0;
|
||||||
cl_int status = 0;
|
cl_int status = 0;
|
||||||
@ -1006,16 +1006,9 @@ static cl_int queue_scrypt_kernel(_clState *clState, dev_blk_ctx *blk, __maybe_u
|
|||||||
CL_SET_ARG(clState->CLbuffer0);
|
CL_SET_ARG(clState->CLbuffer0);
|
||||||
CL_SET_ARG(clState->outputBuffer);
|
CL_SET_ARG(clState->outputBuffer);
|
||||||
CL_SET_ARG(clState->padbuffer8);
|
CL_SET_ARG(clState->padbuffer8);
|
||||||
CL_SET_ARG(midstate[0]);
|
CL_SET_VARG(4, &midstate[0]);
|
||||||
CL_SET_ARG(midstate[16]);
|
CL_SET_VARG(4, &midstate[16]);
|
||||||
|
|
||||||
#if 0
|
|
||||||
clSetKernelArg(clState->kernel,0,sizeof(cl_mem), &clState->CLbuffer[0]);
|
|
||||||
clSetKernelArg(clState->kernel,1,sizeof(cl_mem), &clState->CLbuffer[1]);
|
|
||||||
clSetKernelArg(clState->kernel,2,sizeof(cl_mem), &clState->padbuffer8);
|
|
||||||
clSetKernelArg(clState->kernel,3,sizeof(cl_uint4), &midstate[0]);
|
|
||||||
clSetKernelArg(clState->kernel,4,sizeof(cl_uint4), &midstate[16]);
|
|
||||||
#endif
|
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -229,13 +229,16 @@ static void *postcalc_hash(void *userdata)
|
|||||||
pthread_detach(pthread_self());
|
pthread_detach(pthread_self());
|
||||||
|
|
||||||
for (entry = 0; entry < FOUND; entry++) {
|
for (entry = 0; entry < FOUND; entry++) {
|
||||||
if (pcd->res[entry]) {
|
uint32_t nonce = pcd->res[entry];
|
||||||
|
|
||||||
|
if (nonce) {
|
||||||
|
applog(LOG_DEBUG, "OCL NONCE %u", nonce);
|
||||||
#ifdef USE_SCRYPT
|
#ifdef USE_SCRYPT
|
||||||
if (opt_scrypt)
|
if (opt_scrypt)
|
||||||
submit_nonce(thr, pcd->work, pcd->res[entry]);
|
submit_nonce(thr, pcd->work, nonce);
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
send_nonce(pcd, pcd->res[entry]);
|
send_nonce(pcd, nonce);
|
||||||
nonces++;
|
nonces++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
4
ocl.c
4
ocl.c
@ -487,8 +487,8 @@ _clState *initCl(unsigned int gpu, char *name, size_t nameSize)
|
|||||||
|
|
||||||
#ifdef USE_SCRYPT
|
#ifdef USE_SCRYPT
|
||||||
if (opt_scrypt) {
|
if (opt_scrypt) {
|
||||||
clState->lookup_gap = 1;
|
clState->lookup_gap = 2;
|
||||||
clState->thread_concurrency = 1;
|
clState->thread_concurrency = 6144;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user