From b2f835586cb5efa176663277390c70d0c4694da9 Mon Sep 17 00:00:00 2001 From: Chris Duncan Date: Thu, 16 Jan 2025 06:28:30 -0800 Subject: [PATCH] Revert special nonce naming to maintain consistency with reference implementation. --- src/shaders/compute.wgsl | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/shaders/compute.wgsl b/src/shaders/compute.wgsl index fc984b9..a50cba1 100644 --- a/src/shaders/compute.wgsl +++ b/src/shaders/compute.wgsl @@ -61,7 +61,7 @@ fn main(id: vec3) { /** * Initialize (nonce||blockhash) concatenation */ - var nonce: vec2 = ubo.random ^ vec2(id.x, id.y); + var m0: vec2 = ubo.random ^ vec2(id.x, id.y); var m1: vec2 = vec2(ubo.blockhash[0u].x, ubo.blockhash[0u].y); var m2: vec2 = vec2(ubo.blockhash[0u].z, ubo.blockhash[0u].w); var m3: vec2 = vec2(ubo.blockhash[1u].x, ubo.blockhash[1u].y); @@ -123,7 +123,7 @@ fn main(id: vec3) { v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x)); // a = a + m[sigma[r][2*i+0]] - v0 = v0 + nonce + vec2(0u, u32(v0.x + nonce.x < v0.x)); + v0 = v0 + m0 + vec2(0u, u32(v0.x + m0.x < v0.x)); // d = rotr64(d ^ a, 32) v12 = v12.yx ^ v0.yx; @@ -621,7 +621,7 @@ fn main(id: vec3) { v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x)); // a = a + m[sigma[r][2*i+0]] - v1 = v1 + nonce + vec2(0u, u32(v1.x + nonce.x < v1.x)); + v1 = v1 + m0 + vec2(0u, u32(v1.x + m0.x < v1.x)); // d = rotr64(d ^ a, 32) v12 = v12.yx ^ v1.yx; @@ -792,7 +792,7 @@ fn main(id: vec3) { v1 = v1 + v5 + vec2(0u, u32(v1.x + v5.x < v1.x)); // a = a + m[sigma[r][2*i+1]] - v1 = v1 + nonce + vec2(0u, u32(v1.x + nonce.x < v1.x)); + v1 = v1 + m0 + vec2(0u, u32(v1.x + m0.x < v1.x)); // d = rotr64(d ^ a, 16) v13 = ((v13 ^ v1).xy >> ROTATE_16) | ((v13 ^ v1).yx << ROTATE_16); @@ -1290,7 +1290,7 @@ fn main(id: vec3) { v2 = v2 + v7 + vec2(0u, u32(v2.x + v7.x < v2.x)); // a = a + m[sigma[r][2*i+1]] - v2 = v2 + nonce + vec2(0u, u32(v2.x + nonce.x < v2.x)); + v2 = v2 + m0 + vec2(0u, u32(v2.x + m0.x < v2.x)); // d = rotr64(d ^ a, 16) v13 = ((v13 ^ v2).xy >> ROTATE_16) | ((v13 ^ v2).yx << ROTATE_16); @@ -1370,7 +1370,7 @@ fn main(id: vec3) { v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x)); // a = a + m[sigma[r][2*i+1]] - v0 = v0 + nonce + vec2(0u, u32(v0.x + nonce.x < v0.x)); + v0 = v0 + m0 + vec2(0u, u32(v0.x + m0.x < v0.x)); // d = rotr64(d ^ a, 16) v12 = ((v12 ^ v0).xy >> ROTATE_16) | ((v12 ^ v0).yx << ROTATE_16); @@ -1739,7 +1739,7 @@ fn main(id: vec3) { v2 = v2 + v6 + vec2(0u, u32(v2.x + v6.x < v2.x)); // a = a + m[sigma[r][2*i+0]] - v2 = v2 + nonce + vec2(0u, u32(v2.x + nonce.x < v2.x)); + v2 = v2 + m0 + vec2(0u, u32(v2.x + m0.x < v2.x)); // d = rotr64(d ^ a, 32) v14 = v14.yx ^ v2.yx; @@ -2123,7 +2123,7 @@ fn main(id: vec3) { v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x)); // a = a + m[sigma[r][2*i+0]] - v0 = v0 + nonce + vec2(0u, u32(v0.x + nonce.x < v0.x)); + v0 = v0 + m0 + vec2(0u, u32(v0.x + m0.x < v0.x)); // d = rotr64(d ^ a, 32) v15 = v15.yx ^ v0.yx; @@ -2446,7 +2446,7 @@ fn main(id: vec3) { v0 = v0 + v5 + vec2(0u, u32(v0.x + v5.x < v0.x)); // a = a + m[sigma[r][2*i+1]] - v0 = v0 + nonce + vec2(0u, u32(v0.x + nonce.x < v0.x)); + v0 = v0 + m0 + vec2(0u, u32(v0.x + m0.x < v0.x)); // d = rotr64(d ^ a, 16) v15 = ((v15 ^ v0).xy >> ROTATE_16) | ((v15 ^ v0).yx << ROTATE_16); @@ -2701,7 +2701,7 @@ fn main(id: vec3) { v3 = v3 + v7 + vec2(0u, u32(v3.x + v7.x < v3.x)); // a = a + m[sigma[r][2*i+0]] - v3 = v3 + nonce + vec2(0u, u32(v3.x + nonce.x < v3.x)); + v3 = v3 + m0 + vec2(0u, u32(v3.x + m0.x < v3.x)); // d = rotr64(d ^ a, 32) v15 = v15.yx ^ v3.yx; @@ -3176,7 +3176,7 @@ fn main(id: vec3) { v3 = v3 + v4 + vec2(0u, u32(v3.x + v4.x < v3.x)); // a = a + m[sigma[r][2*i+1]] - v3 = v3 + nonce + vec2(0u, u32(v3.x + nonce.x < v3.x)); + v3 = v3 + m0 + vec2(0u, u32(v3.x + m0.x < v3.x)); // d = rotr64(d ^ a, 16) v14 = ((v14 ^ v3).xy >> ROTATE_16) | ((v14 ^ v3).yx << ROTATE_16); @@ -3203,7 +3203,7 @@ fn main(id: vec3) { v0 = v0 + v4 + vec2(0u, u32(v0.x + v4.x < v0.x)); // a = a + m[sigma[r][2*i+0]] - v0 = v0 + nonce + vec2(0u, u32(v0.x + nonce.x < v0.x)); + v0 = v0 + m0 + vec2(0u, u32(v0.x + m0.x < v0.x)); // d = rotr64(d ^ a, 32) v12 = v12.yx ^ v0.yx; @@ -3701,7 +3701,7 @@ fn main(id: vec3) { v1 = v1 + v6 + vec2(0u, u32(v1.x + v6.x < v1.x)); // a = a + m[sigma[r][2*i+0]] - v1 = v1 + nonce + vec2(0u, u32(v1.x + nonce.x < v1.x)); + v1 = v1 + m0 + vec2(0u, u32(v1.x + m0.x < v1.x)); // d = rotr64(d ^ a, 32) v12 = v12.yx ^ v1.yx; @@ -3812,11 +3812,11 @@ fn main(id: vec3) { ****************************************************************************/ /** - * Set nonce if it passes the threshold and no other thread has set it + * Set m0 if it passes the threshold and no other thread has set it */ if ((BLAKE2B_IV32_1 ^ v0.y ^ v8.y) > threshold && atomicLoad(&work.found) == 0u) { atomicStore(&work.found, 1u); - work.nonce = nonce; + work.nonce = m0; } return; } -- 2.34.1