(value: number, alignment: number)
| 74 | const isPowerOfTwo = (n: number): boolean => Number.isInteger(n) && n > 0 && (n & (n - 1)) === 0; |
| 75 | |
| 76 | const alignTo = (value: number, alignment: number): number => { |
| 77 | if (!Number.isFinite(value) || value < 0) { |
| 78 | throw new Error(`alignTo(value): value must be a finite non-negative number. Received: ${String(value)}`); |
| 79 | } |
| 80 | if (!isPowerOfTwo(alignment)) { |
| 81 | throw new Error(`alignTo(alignment): alignment must be a positive power of two. Received: ${String(alignment)}`); |
| 82 | } |
| 83 | const v = Math.floor(value); |
| 84 | return (v + alignment - 1) & ~(alignment - 1); |
| 85 | }; |
| 86 | |
| 87 | const getStageModule = ( |
| 88 | device: GPUDevice, |
no test coverage detected