From: Chris Duncan Date: Tue, 21 Jan 2025 17:08:11 +0000 (-0800) Subject: Reduce loop iteration by reading 64 bits at a time into UBO. X-Git-Tag: v3.0.0~81 X-Git-Url: https://zoso.dev/?a=commitdiff_plain;h=7fb1b2b439f16b40a142c24b4a0665fd13839a55;p=nano-pow.git Reduce loop iteration by reading 64 bits at a time into UBO. --- diff --git a/src/classes/gpu.ts b/src/classes/gpu.ts index caf2ad1..8fb469a 100644 --- a/src/classes/gpu.ts +++ b/src/classes/gpu.ts @@ -134,9 +134,9 @@ export class NanoPowGpu { // Set up uniform buffer object // Note: u32 size is 4, but total alignment must be multiple of 16 const uboView = new DataView(new ArrayBuffer(48)) - for (let i = 0; i < 64; i += 8) { - const uint32 = hash.slice(i, i + 8) - uboView.setUint32(i / 2, parseInt(uint32, 16)) + for (let i = 0; i < 64; i += 16) { + const u64 = hash.slice(i, i + 16) + uboView.setBigUint64(i / 2, BigInt(`0x${u64}`)) } uboView.setBigUint64(32, seed, true) uboView.setUint32(40, threshold, true)