]> zoso.dev Git - nano-pow.git/commitdiff
Deprecate x and y temp vars for fourth round.
authorChris Duncan <chris@zoso.dev>
Tue, 4 Feb 2025 02:55:20 +0000 (18:55 -0800)
committerChris Duncan <chris@zoso.dev>
Tue, 4 Feb 2025 02:55:20 +0000 (18:55 -0800)
src/shaders/compute.wgsl

index d11c7ab23777f6c51ccb1485f439d08bbaa2a1c8..b1e2048487090799a34c9d15b333856bbcf85c18 100644 (file)
@@ -239,8 +239,8 @@ fn main(id: vec3<u32>) {
        ****************************************************************************/
 
        /**
-       * r=1, i=0, a=v[0], b=v[4], c=v[8], d=v[12], m[sigma]=?, m[sigma+1]=4
-       * r=1, i=1, a=v[1], b=v[5], c=v[9], d=v[13], m[sigma]=?, m[sigma+1]=?
+       * r=1, i=0, a=v[0], b=v[4], c=v[8], d=v[12], m[sigma]=14, m[sigma+1]=10
+       * r=1, i=1, a=v[1], b=v[5], c=v[9], d=v[13], m[sigma]=4, m[sigma+1]=8
        */
        v01 += v45 + vec4(0u, u32(v01.x + v45.x < v01.x), 0u, u32(v01.z + v45.z < v01.z));
        v01 += vec4(0u, 0u, m4) + vec4(0u, 0u, 0u, u32(v01.z + m4.x < v01.z));
@@ -254,8 +254,8 @@ fn main(id: vec3<u32>) {
        v45 = ((v45 ^ v89) << ROTATE_1) | ((v45 ^ v89).yxwz >> ROTATE_31);
 
        /**
-       * r=1, i=2, a=v[2], b=v[6], c=v[10], d=v[14], m[sigma]=?, m[sigma+1]=?
-       * r=1, i=3, a=v[3], b=v[7], c=v[11], d=v[15], m[sigma]=?, m[sigma+1]=?
+       * r=1, i=2, a=v[2], b=v[6], c=v[10], d=v[14], m[sigma]=9, m[sigma+1]=15
+       * r=1, i=3, a=v[3], b=v[7], c=v[11], d=v[15], m[sigma]=13, m[sigma+1]=6
        */
        v23 += v67 + vec4(0u, u32(v23.x + v67.x < v23.x), 0u, u32(v23.z + v67.z < v23.z));
        // NOP
@@ -269,8 +269,8 @@ fn main(id: vec3<u32>) {
        v67 = ((v67 ^ vAB) << ROTATE_1) | ((v67 ^ vAB).yxwz >> ROTATE_31);
 
        /**
-       * r=1, i=4, a=v[0], b=v[5], c=v[10], d=v[15], m[sigma]=1, m[sigma+1]=0
-       * r=1, i=5, a=v[1], b=v[6], c=v[11], d=v[12], m[sigma]=?, m[sigma+1]=2
+       * r=1, i=4, a=v[0], b=v[5], c=v[10], d=v[15], m[sigma]=1, m[sigma+1]=12
+       * r=1, i=5, a=v[1], b=v[6], c=v[11], d=v[12], m[sigma]=0, m[sigma+1]=2
        */
        b = vec4(v45.zw, v67.xy);
        d = vec4(vEF.zw, vCD.xy);
@@ -292,8 +292,8 @@ fn main(id: vec3<u32>) {
        vCD = vec4(d.zw, vCD.zw);
 
        /**
-       * r=1, i=6, a=v[2], b=v[7], c=v[8], d=v[13], m[sigma]=?, m[sigma+1]=?
-       * r=1, i=7, a=v[3], b=v[4], c=v[9], d=v[14], m[sigma]=?, m[sigma+1]=3
+       * r=1, i=6, a=v[2], b=v[7], c=v[8], d=v[13], m[sigma]=11, m[sigma+1]=7
+       * r=1, i=7, a=v[3], b=v[4], c=v[9], d=v[14], m[sigma]=5, m[sigma+1]=3
        */
        b = vec4(v67.zw, v45.xy);
        d = vec4(vCD.zw, vEF.xy);
@@ -323,8 +323,8 @@ fn main(id: vec3<u32>) {
        ****************************************************************************/
 
        /**
-       * r=2, i=0, a=v[0], b=v[4], c=v[8], d=v[12], m[sigma]=?, m[sigma+1]=?
-       * r=2, i=1, a=v[1], b=v[5], c=v[9], d=v[13], m[sigma]=?, m[sigma+1]=0
+       * r=2, i=0, a=v[0], b=v[4], c=v[8], d=v[12], m[sigma]=11, m[sigma+1]=8
+       * r=2, i=1, a=v[1], b=v[5], c=v[9], d=v[13], m[sigma]=12, m[sigma+1]=0
        */
        v01 += v45 + vec4(0u, u32(v01.x + v45.x < v01.x), 0u, u32(v01.z + v45.z < v01.z));
        // NOP
@@ -338,8 +338,8 @@ fn main(id: vec3<u32>) {
        v45 = ((v45 ^ v89) << ROTATE_1) | ((v45 ^ v89).yxwz >> ROTATE_31);
 
        /**
-       * r=2, i=2, a=v[2], b=v[6], c=v[10], d=v[14], m[sigma]=?, m[sigma+1]=2
-       * r=2, i=3, a=v[3], b=v[7], c=v[11], d=v[15], m[sigma]=?, m[sigma+1]=?
+       * r=2, i=2, a=v[2], b=v[6], c=v[10], d=v[14], m[sigma]=5, m[sigma+1]=2
+       * r=2, i=3, a=v[3], b=v[7], c=v[11], d=v[15], m[sigma]=15, m[sigma+1]=13
        */
        v23 += v67 + vec4(0u, u32(v23.x + v67.x < v23.x), 0u, u32(v23.z + v67.z < v23.z));
        // NOP
@@ -353,8 +353,8 @@ fn main(id: vec3<u32>) {
        v67 = ((v67 ^ vAB) << ROTATE_1) | ((v67 ^ vAB).yxwz >> ROTATE_31);
 
        /**
-       * r=2, i=4, a=v[0], b=v[5], c=v[10], d=v[15], m[sigma]=?, m[sigma+1]=?
-       * r=2, i=5, a=v[1], b=v[6], c=v[11], d=v[12], m[sigma]=3, m[sigma+1]=?
+       * r=2, i=4, a=v[0], b=v[5], c=v[10], d=v[15], m[sigma]=10, m[sigma+1]=14
+       * r=2, i=5, a=v[1], b=v[6], c=v[11], d=v[12], m[sigma]=3, m[sigma+1]=6
        */
        b = vec4(v45.zw, v67.xy);
        d = vec4(vEF.zw, vCD.xy);
@@ -376,8 +376,8 @@ fn main(id: vec3<u32>) {
        vCD = vec4(d.zw, vCD.zw);
 
        /**
-       * r=2, i=6, a=v[2], b=v[7], c=v[8], d=v[13], m[sigma]=?, m[sigma+1]=1
-       * r=2, i=7, a=v[3], b=v[4], c=v[9], d=v[14], m[sigma]=?, m[sigma+1]=4
+       * r=2, i=6, a=v[2], b=v[7], c=v[8], d=v[13], m[sigma]=7, m[sigma+1]=1
+       * r=2, i=7, a=v[3], b=v[4], c=v[9], d=v[14], m[sigma]=9, m[sigma+1]=4
        */
        b = vec4(v67.zw, v45.xy);
        d = vec4(vCD.zw, vEF.xy);
@@ -407,7 +407,7 @@ fn main(id: vec3<u32>) {
        ****************************************************************************/
 
        /**
-       * r=3, i=0, a=v[0], b=v[4], c=v[8], d=v[12], m[sigma]=?, m[sigma+1]=?
+       * r=3, i=0, a=v[0], b=v[4], c=v[8], d=v[12], m[sigma]=7, m[sigma+1]=9
        * r=3, i=1, a=v[1], b=v[5], c=v[9], d=v[13], m[sigma]=3, m[sigma+1]=1
        */
        v01 += v45 + vec4(0u, u32(v01.x + v45.x < v01.x), 0u, u32(v01.z + v45.z < v01.z));
@@ -422,8 +422,8 @@ fn main(id: vec3<u32>) {
        v45 = ((v45 ^ v89) << ROTATE_1) | ((v45 ^ v89).yxwz >> ROTATE_31);
 
        /**
-       * r=3, i=2, a=v[2], b=v[6], c=v[10], d=v[14], m[sigma]=?, m[sigma+1]=?
-       * r=3, i=3, a=v[3], b=v[7], c=v[11], d=v[15], m[sigma]=?, m[sigma+1]=?
+       * r=3, i=2, a=v[2], b=v[6], c=v[10], d=v[14], m[sigma]=13, m[sigma+1]=12
+       * r=3, i=3, a=v[3], b=v[7], c=v[11], d=v[15], m[sigma]=11, m[sigma+1]=14
        */
        v23 += v67 + vec4(0u, u32(v23.x + v67.x < v23.x), 0u, u32(v23.z + v67.z < v23.z));
        // NOP
@@ -437,15 +437,14 @@ fn main(id: vec3<u32>) {
        v67 = ((v67 ^ vAB) << ROTATE_1) | ((v67 ^ vAB).yxwz >> ROTATE_31);
 
        /**
-       * r=3, i=4, a=v[0], b=v[5], c=v[10], d=v[15], m[sigma]=?, m[sigma+1]=?
-       * r=3, i=5, a=v[1], b=v[6], c=v[11], d=v[12], m[sigma]=?, m[sigma+1]=?
+       * r=3, i=4, a=v[0], b=v[5], c=v[10], d=v[15], m[sigma]=2, m[sigma+1]=6
+       * r=3, i=5, a=v[1], b=v[6], c=v[11], d=v[12], m[sigma]=5, m[sigma+1]=10
        */
        b = vec4(v45.zw, v67.xy);
        d = vec4(vEF.zw, vCD.xy);
-       x = vec4(m2, VEC2_0);
 
        v01 += b + vec4(0u, u32(v01.x + b.x < v01.x), 0u, u32(v01.z + b.z < v01.z));
-       v01 += x + vec4(0u, u32(v01.x + x.x < v01.x), 0u, u32(v01.z + x.z < v01.z));
+       v01 += vec4(m2, VEC2_0) + vec4(0u, u32(v01.x + m2.x < v01.x), 0u, 0u);
        d = (d ^ v01).yxwz;
        vAB += d + vec4(0u, u32(vAB.x + d.x < vAB.x), 0u, u32(vAB.z + d.z < vAB.z));
        b = ((b ^ vAB) >> ROTATE_24) | ((b ^ vAB).yxwz << ROTATE_8);
@@ -461,21 +460,19 @@ fn main(id: vec3<u32>) {
        vCD = vec4(d.zw, vCD.zw);
 
        /**
-       * r=3, i=6, a=v[2], b=v[7], c=v[8], d=v[13], m[sigma]=?, m[sigma+1]=?
-       * r=3, i=7, a=v[3], b=v[4], c=v[9], d=v[14], m[sigma]=?, m[sigma+1]=?
+       * r=3, i=6, a=v[2], b=v[7], c=v[8], d=v[13], m[sigma]=4, m[sigma+1]=0
+       * r=3, i=7, a=v[3], b=v[4], c=v[9], d=v[14], m[sigma]=15, m[sigma+1]=8
        */
        b = vec4(v67.zw, v45.xy);
        d = vec4(vCD.zw, vEF.xy);
-       x = vec4(m4, VEC2_0);
-       y = vec4(m0, VEC2_0);
 
        v23 += b + vec4(0u, u32(v23.x + b.x < v23.x), 0u, u32(v23.z + b.z < v23.z));
-       v23 += x + vec4(0u, u32(v23.x + x.x < v23.x), 0u, u32(v23.z + x.z < v23.z));
+       v23 += vec4(m4, VEC2_0) + vec4(0u, u32(v23.x + m4.x < v23.x), 0u, 0u);
        d = (d ^ v23).yxwz;
        v89 += d + vec4(0u, u32(v89.x + d.x < v89.x), 0u, u32(v89.z + d.z < v89.z));
        b = ((b ^ v89) >> ROTATE_24) | ((b ^ v89).yxwz << ROTATE_8);
        v23 += b + vec4(0u, u32(v23.x + b.x < v23.x), 0u, u32(v23.z + b.z < v23.z));
-       v23 += y + vec4(0u, u32(v23.x + y.x < v23.x), 0u, u32(v23.z + y.z < v23.z));
+       v23 += vec4(m0, VEC2_0) + vec4(0u, u32(v23.x + m0.x < v23.x), 0u, 0u);
        d = ((d ^ v23) >> ROTATE_16) | ((d ^ v23).yxwz << ROTATE_16);
        v89 += d + vec4(0u, u32(v89.x + d.x < v89.x), 0u, u32(v89.z + d.z < v89.z));
        b = ((b ^ v89) << ROTATE_1) | ((b ^ v89).yxwz >> ROTATE_31);
@@ -494,18 +491,16 @@ fn main(id: vec3<u32>) {
        ****************************************************************************/
 
        /**
-       * r=4, i=0, a=v[0], b=v[4], c=v[8], d=v[12], m[sigma]=?, m[sigma+1]=?
-       * r=4, i=1, a=v[1], b=v[5], c=v[9], d=v[13], m[sigma]=?, m[sigma+1]=?
+       * r=4, i=0, a=v[0], b=v[4], c=v[8], d=v[12], m[sigma]=9, m[sigma+1]=0
+       * r=4, i=1, a=v[1], b=v[5], c=v[9], d=v[13], m[sigma]=5, m[sigma+1]=7
        */
-       // y = vec4(m0, VEC2_0); // still assigned this value from last assignment at r=3 i=6/7
-
        v01 += v45 + vec4(0u, u32(v01.x + v45.x < v01.x), 0u, u32(v01.z + v45.z < v01.z));
        // NOP
        vCD = (vCD ^ v01).yxwz;
        v89 += vCD + vec4(0u, u32(v89.x + vCD.x < v89.x), 0u, u32(v89.z + vCD.z < v89.z));
        v45 = ((v45 ^ v89) >> ROTATE_24) | ((v45 ^ v89).yxwz << ROTATE_8);
        v01 += v45 + vec4(0u, u32(v01.x + v45.x < v01.x), 0u, u32(v01.z + v45.z < v01.z));
-       v01 += y + vec4(0u, u32(v01.x + y.x < v01.x), 0u, u32(v01.z + y.z < v01.z));
+       v01 += vec4(m0, VEC2_0) + vec4(0u, u32(v01.x + m0.x < v01.x), 0u, 0u);
        vCD = ((vCD ^ v01) >> ROTATE_16) | ((vCD ^ v01).yxwz << ROTATE_16);
        v89 += vCD + vec4(0u, u32(v89.x + vCD.x < v89.x), 0u, u32(v89.z + vCD.z < v89.z));
        v45 = ((v45 ^ v89) << ROTATE_1) | ((v45 ^ v89).yxwz >> ROTATE_31);