From 5ec1a8559a43aaf2a087c91d029254adb77f18bb Mon Sep 17 00:00:00 2001 From: Chris Duncan Date: Fri, 3 Jan 2025 14:58:23 -0800 Subject: [PATCH] Fix nonce output to CPU which is expecting the 32-bit values in reverse for reasons I don't fully understand, something to do with endianness I'm sure. --- src/lib/workers/powgpu.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/lib/workers/powgpu.ts b/src/lib/workers/powgpu.ts index ed44986..e19bf18 100644 --- a/src/lib/workers/powgpu.ts +++ b/src/lib/workers/powgpu.ts @@ -153,7 +153,7 @@ export class PowGpu extends WorkerInterface { ((workgroup_id.z & 0xff) << 8) | (local_id.x & 0xff); var m: array; - m[0u] = 0u; + m[0u] = id; m[1u] = id; m[2u] = ubo.blockhash[0u].x; m[3u] = ubo.blockhash[0u].y; @@ -190,7 +190,7 @@ export class PowGpu extends WorkerInterface { /** * Iterate and hash until nonce found */ - for (var j: u32 = 0u; j < 1u; j = j + 1u) { + for (var j: u32 = id; j < id + 1u; j = j + 1u) { if (atomicLoad(&work.found) != 0u) { return; } @@ -211,8 +211,8 @@ export class PowGpu extends WorkerInterface { // Store the result directly into work array if ((BLAKE2B_IV32_1 ^ v[1u] ^ v[17u]) > ubo.threshold) { atomicStore(&work.found, 1u); - work.nonce.x = j; - work.nonce.y = id; + work.nonce.x = id; + work.nonce.y = j; return; } } -- 2.34.1