// 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)