|
|
|
@ -159,6 +159,77 @@ static cl_int queue_darkcoin_mod_kernel(struct __clState *clState, struct _dev_b
@@ -159,6 +159,77 @@ static cl_int queue_darkcoin_mod_kernel(struct __clState *clState, struct _dev_b
|
|
|
|
|
return status; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static cl_int queue_marucoin_mod_kernel(struct __clState *clState, struct _dev_blk_ctx *blk, __maybe_unused cl_uint threads) |
|
|
|
|
{ |
|
|
|
|
cl_kernel *kernel; |
|
|
|
|
unsigned int num; |
|
|
|
|
cl_ulong le_target; |
|
|
|
|
cl_int status = 0; |
|
|
|
|
|
|
|
|
|
le_target = *(cl_ulong *)(blk->work->device_target + 24); |
|
|
|
|
flip80(clState->cldata, blk->work->data); |
|
|
|
|
status = clEnqueueWriteBuffer(clState->commandQueue, clState->CLbuffer0, true, 0, 80, clState->cldata, 0, NULL,NULL); |
|
|
|
|
|
|
|
|
|
// blake - search
|
|
|
|
|
kernel = &clState->kernel; |
|
|
|
|
num = 0; |
|
|
|
|
CL_SET_ARG(clState->CLbuffer0); |
|
|
|
|
CL_SET_ARG(clState->padbuffer8); |
|
|
|
|
// bmw - search1
|
|
|
|
|
kernel = clState->extra_kernels; |
|
|
|
|
num = 0; |
|
|
|
|
CL_SET_ARG(clState->padbuffer8); |
|
|
|
|
// groestl - search2
|
|
|
|
|
kernel++; |
|
|
|
|
num = 0; |
|
|
|
|
CL_SET_ARG(clState->padbuffer8); |
|
|
|
|
// skein - search3
|
|
|
|
|
kernel++; |
|
|
|
|
num = 0; |
|
|
|
|
CL_SET_ARG(clState->padbuffer8); |
|
|
|
|
// jh - search4
|
|
|
|
|
kernel++; |
|
|
|
|
num = 0; |
|
|
|
|
CL_SET_ARG(clState->padbuffer8); |
|
|
|
|
// keccak - search5
|
|
|
|
|
kernel++; |
|
|
|
|
num = 0; |
|
|
|
|
CL_SET_ARG(clState->padbuffer8); |
|
|
|
|
// luffa - search6
|
|
|
|
|
kernel++; |
|
|
|
|
num = 0; |
|
|
|
|
CL_SET_ARG(clState->padbuffer8); |
|
|
|
|
// cubehash - search7
|
|
|
|
|
kernel++; |
|
|
|
|
num = 0; |
|
|
|
|
CL_SET_ARG(clState->padbuffer8); |
|
|
|
|
// shavite - search8
|
|
|
|
|
kernel++; |
|
|
|
|
num = 0; |
|
|
|
|
CL_SET_ARG(clState->padbuffer8); |
|
|
|
|
// simd - search9
|
|
|
|
|
kernel++; |
|
|
|
|
num = 0; |
|
|
|
|
CL_SET_ARG(clState->padbuffer8); |
|
|
|
|
// echo - search10
|
|
|
|
|
kernel++; |
|
|
|
|
num = 0; |
|
|
|
|
CL_SET_ARG(clState->padbuffer8); |
|
|
|
|
// hamsi - search11
|
|
|
|
|
kernel++; |
|
|
|
|
num = 0; |
|
|
|
|
CL_SET_ARG(clState->padbuffer8); |
|
|
|
|
// fugue - search12
|
|
|
|
|
kernel++; |
|
|
|
|
num = 0; |
|
|
|
|
CL_SET_ARG(clState->padbuffer8); |
|
|
|
|
CL_SET_ARG(clState->outputBuffer); |
|
|
|
|
CL_SET_ARG(le_target); |
|
|
|
|
|
|
|
|
|
return status; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
typedef struct _algorithm_settings_t { |
|
|
|
|
const char *name; /* Human-readable identifier */ |
|
|
|
|
double diff_multiplier1; |
|
|
|
@ -211,6 +282,7 @@ static algorithm_settings_t algos[] = {
@@ -211,6 +282,7 @@ static algorithm_settings_t algos[] = {
|
|
|
|
|
{ "twecoin", 1, 1, 1, 0, 0, 0xFF, 0x00000000ffff0000ULL, 0xFFFFULL, 0x0000ffffUL, 0, 0, CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE, twecoin_regenhash, queue_sph_kernel, sha256}, |
|
|
|
|
{ "maxcoin", 1, 256, 1, 4, 15, 0x0F, 0x00000000ffff0000ULL, 0xFFFFULL, 0x000000ffUL, 0, 0, CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE, maxcoin_regenhash, queue_maxcoin_kernel, sha256}, |
|
|
|
|
{ "darkcoin-mod", 1, 1, 1, 0, 0, 0xFF, 0x00000000ffff0000ULL, 0xFFFFULL, 0x0000ffffUL, 10, 8 * 16 * 4194304, 0, darkcoin_regenhash, queue_darkcoin_mod_kernel, gen_hash}, |
|
|
|
|
{ "marucoin-mod", 1, 1, 1, 0, 0, 0xFF, 0x00000000ffff0000ULL, 0xFFFFULL, 0x0000ffffUL, 12, 8 * 16 * 4194304, 0, marucoin_regenhash, queue_marucoin_mod_kernel, gen_hash}, |
|
|
|
|
|
|
|
|
|
// kernels starting from this will have difficulty calculated by using fuguecoin algorithm
|
|
|
|
|
#define A_FUGUE(a, b) \ |
|
|
|
|