]> zoso.dev Git - libnemo.git/commitdiff
Add sectional comments to clearly delineate G mix rounds as this moves into inlining...
authorChris Duncan <chris@zoso.dev>
Wed, 8 Jan 2025 16:21:09 +0000 (08:21 -0800)
committerChris Duncan <chris@zoso.dev>
Wed, 8 Jan 2025 16:21:09 +0000 (08:21 -0800)
src/lib/nano-pow/shaders/gpu-compute.ts

index 6e485bfddf90fdf30be828224e797e977235e67f..e13fed43101589dcd37481612ca2dfd38e28ae40 100644 (file)
@@ -196,7 +196,11 @@ fn main(
        /**
        * Twelve rounds of mixing as part of BLAKE2b compression step
        */
-       // ROUND(0)
+
+       /******************************************************************
+       *                                                                                                       ROUND(0)                                                                                                                        *
+       ******************************************************************/
+
        G(&v0, &v1, &v8, &v9, &v16, &v17, &v24, &v25, m0, m1, m2, m3);
        G(&v2, &v3, &v10, &v11, &v18, &v19, &v26, &v27, m4, m5, m6, m7);
        G(&v4, &v5, &v12, &v13, &v20, &v21, &v28, &v29, m8, m9, 0u, 0u);
@@ -206,7 +210,12 @@ fn main(
        G(&v4, &v5, &v14, &v15, &v16, &v17, &v26, &v27, 0u, 0u, 0u, 0u);
        G(&v6, &v7, &v8, &v9, &v18, &v19, &v28, &v29, 0u, 0u, 0u, 0u);
 
-       // ROUND(1)
+
+
+       /******************************************************************
+       *                                                                                                       ROUND(1)                                                                                                                        *
+       ******************************************************************/
+
        G(&v0, &v1, &v8, &v9, &v16, &v17, &v24, &v25, 0u, 0u, 0u, 0u);
        G(&v2, &v3, &v10, &v11, &v18, &v19, &v26, &v27, m8, m9, 0u, 0u);
        G(&v4, &v5, &v12, &v13, &v20, &v21, &v28, &v29, 0u, 0u, 0u, 0u);
@@ -216,7 +225,12 @@ fn main(
        G(&v4, &v5, &v14, &v15, &v16, &v17, &v26, &v27, 0u, 0u, 0u, 0u);
        G(&v6, &v7, &v8, &v9, &v18, &v19, &v28, &v29, 0u, 0u, m6, m7);
 
-       // ROUND(2)
+
+
+       /******************************************************************
+       *                                                                                                       ROUND(2)                                                                                                                        *
+       ******************************************************************/
+
        G(&v0, &v1, &v8, &v9, &v16, &v17, &v24, &v25, 0u, 0u, 0u, 0u);
        G(&v2, &v3, &v10, &v11, &v18, &v19, &v26, &v27, 0u, 0u, m0, m1);
        G(&v4, &v5, &v12, &v13, &v20, &v21, &v28, &v29, 0u, 0u, m4, m5);
@@ -226,7 +240,12 @@ fn main(
        G(&v4, &v5, &v14, &v15, &v16, &v17, &v26, &v27, 0u, 0u, m2, m3);
        G(&v6, &v7, &v8, &v9, &v18, &v19, &v28, &v29, 0u, 0u, m8, m9);
 
-       // ROUND(3)
+
+
+       /******************************************************************
+       *                                                                                                       ROUND(3)                                                                                                                        *
+       ******************************************************************/
+
        G(&v0, &v1, &v8, &v9, &v16, &v17, &v24, &v25, 0u, 0u, 0u, 0u);
        G(&v2, &v3, &v10, &v11, &v18, &v19, &v26, &v27, m6, m7, m2, m3);
        G(&v4, &v5, &v12, &v13, &v20, &v21, &v28, &v29, 0u, 0u, 0u, 0u);
@@ -236,7 +255,12 @@ fn main(
        G(&v4, &v5, &v14, &v15, &v16, &v17, &v26, &v27, m8, m9, m0, m1);
        G(&v6, &v7, &v8, &v9, &v18, &v19, &v28, &v29, 0u, 0u, 0u, 0u);
 
-       // ROUND(4)
+
+
+       /******************************************************************
+       *                                                                                                       ROUND(4)                                                                                                                        *
+       ******************************************************************/
+
        G(&v0, &v1, &v8, &v9, &v16, &v17, &v24, &v25, 0u, 0u, m0, m1);
        G(&v2, &v3, &v10, &v11, &v18, &v19, &v26, &v27, 0u, 0u, 0u, 0u);
        G(&v4, &v5, &v12, &v13, &v20, &v21, &v28, &v29, m4, m5, m8, m9);
@@ -246,7 +270,12 @@ fn main(
        G(&v4, &v5, &v14, &v15, &v16, &v17, &v26, &v27, 0u, 0u, 0u, 0u);
        G(&v6, &v7, &v8, &v9, &v18, &v19, &v28, &v29, m6, m7, 0u, 0u);
 
-       // ROUND(5)
+
+
+       /******************************************************************
+       *                                                                                                       ROUND(5)                                                                                                                        *
+       ******************************************************************/
+
        G(&v0, &v1, &v8, &v9, &v16, &v17, &v24, &v25, m4, m5, 0u, 0u);
        G(&v2, &v3, &v10, &v11, &v18, &v19, &v26, &v27, 0u, 0u, 0u, 0u);
        G(&v4, &v5, &v12, &v13, &v20, &v21, &v28, &v29, m0, m1, 0u, 0u);
@@ -256,7 +285,12 @@ fn main(
        G(&v4, &v5, &v14, &v15, &v16, &v17, &v26, &v27, 0u, 0u, 0u, 0u);
        G(&v6, &v7, &v8, &v9, &v18, &v19, &v28, &v29, m2, m3, 0u, 0u);
 
-       // ROUND(6)
+
+
+       /******************************************************************
+       *                                                                                                       ROUND(6)                                                                                                                        *
+       ******************************************************************/
+
        G(&v0, &v1, &v8, &v9, &v16, &v17, &v24, &v25, 0u, 0u, 0u, 0u);
        G(&v2, &v3, &v10, &v11, &v18, &v19, &v26, &v27, m2, m3, 0u, 0u);
        G(&v4, &v5, &v12, &v13, &v20, &v21, &v28, &v29, 0u, 0u, 0u, 0u);
@@ -266,7 +300,12 @@ fn main(
        G(&v4, &v5, &v14, &v15, &v16, &v17, &v26, &v27, 0u, 0u, m4, m5);
        G(&v6, &v7, &v8, &v9, &v18, &v19, &v28, &v29, 0u, 0u, 0u, 0u);
 
-       // ROUND(7)
+
+
+       /******************************************************************
+       *                                                                                                       ROUND(7)                                                                                                                        *
+       ******************************************************************/
+
        G(&v0, &v1, &v8, &v9, &v16, &v17, &v24, &v25, 0u, 0u, 0u, 0u);
        G(&v2, &v3, &v10, &v11, &v18, &v19, &v26, &v27, 0u, 0u, 0u, 0u);
        G(&v4, &v5, &v12, &v13, &v20, &v21, &v28, &v29, 0u, 0u, m2, m3);
@@ -276,7 +315,12 @@ fn main(
        G(&v4, &v5, &v14, &v15, &v16, &v17, &v26, &v27, 0u, 0u, 0u, 0u);
        G(&v6, &v7, &v8, &v9, &v18, &v19, &v28, &v29, m4, m5, 0u, 0u);
 
-       // ROUND(8)
+
+
+       /******************************************************************
+       *                                                                                                       ROUND(8)                                                                                                                        *
+       ******************************************************************/
+
        G(&v0, &v1, &v8, &v9, &v16, &v17, &v24, &v25, 0u, 0u, 0u, 0u);
        G(&v2, &v3, &v10, &v11, &v18, &v19, &v26, &v27, 0u, 0u, 0u, 0u);
        G(&v4, &v5, &v12, &v13, &v20, &v21, &v28, &v29, 0u, 0u, m6, m7);
@@ -286,7 +330,12 @@ fn main(
        G(&v4, &v5, &v14, &v15, &v16, &v17, &v26, &v27, m2, m3, m8, m9);
        G(&v6, &v7, &v8, &v9, &v18, &v19, &v28, &v29, 0u, 0u, 0u, 0u);
 
-       // ROUND(9)
+
+
+       /******************************************************************
+       *                                                                                                       ROUND(9)                                                                                                                        *
+       ******************************************************************/
+
        G(&v0, &v1, &v8, &v9, &v16, &v17, &v24, &v25, 0u, 0u, m4, m5);
        G(&v2, &v3, &v10, &v11, &v18, &v19, &v26, &v27, 0u, 0u, m8, m9);
        G(&v4, &v5, &v12, &v13, &v20, &v21, &v28, &v29, 0u, 0u, 0u, 0u);
@@ -296,7 +345,12 @@ fn main(
        G(&v4, &v5, &v14, &v15, &v16, &v17, &v26, &v27, m6, m7, 0u, 0u);
        G(&v6, &v7, &v8, &v9, &v18, &v19, &v28, &v29, 0u, 0u, m0, m1);
 
-       // ROUND(10)
+
+
+       /******************************************************************
+       *                                                                                                       ROUND(10)                                                                                                                       *
+       ******************************************************************/
+
        G(&v0, &v1, &v8, &v9, &v16, &v17, &v24, &v25, m0, m1, m2, m3);
        G(&v2, &v3, &v10, &v11, &v18, &v19, &v26, &v27, m4, m5, m6, m7);
        G(&v4, &v5, &v12, &v13, &v20, &v21, &v28, &v29, m8, m9, 0u, 0u);
@@ -306,7 +360,12 @@ fn main(
        G(&v4, &v5, &v14, &v15, &v16, &v17, &v26, &v27, 0u, 0u, 0u, 0u);
        G(&v6, &v7, &v8, &v9, &v18, &v19, &v28, &v29, 0u, 0u, 0u, 0u);
 
-       // ROUND(11)
+
+
+       /******************************************************************
+       *                                                                                                       ROUND(11)                                                                                                                       *
+       ******************************************************************/
+
        G(&v0, &v1, &v8, &v9, &v16, &v17, &v24, &v25, 0u, 0u, 0u, 0u);
        G(&v2, &v3, &v10, &v11, &v18, &v19, &v26, &v27, m8, m9, 0u, 0u);
        G(&v4, &v5, &v12, &v13, &v20, &v21, &v28, &v29, 0u, 0u, 0u, 0u);
@@ -316,6 +375,12 @@ fn main(
        G(&v4, &v5, &v14, &v15, &v16, &v17, &v26, &v27, 0u, 0u, 0u, 0u);
        G(&v6, &v7, &v8, &v9, &v18, &v19, &v28, &v29, 0u, 0u, m6, m7);
 
+
+
+       /******************************************************************
+       *                                                                                                       NONCE CHECK                                                                                                             *
+       ******************************************************************/
+
        /**
        * Set nonce if it passes the threshold and no other thread has set it
        */