Buckets:
| import { GPU_CHUNK_BYTES } from './Constants.js'; | |
| /** | |
| * This function is usually called with the length in bytes of an array buffer. | |
| * It returns an padded value which ensure chunk size alignment according to STD140 layout. | |
| * | |
| * @function | |
| * @param {number} floatLength - The buffer length. | |
| * @return {number} The padded length. | |
| */ | |
| function getFloatLength( floatLength ) { | |
| // ensure chunk size alignment (STD140 layout) | |
| return floatLength + ( ( GPU_CHUNK_BYTES - ( floatLength % GPU_CHUNK_BYTES ) ) % GPU_CHUNK_BYTES ); | |
| } | |
| /** | |
| * Given the count of vectors and their vector length, this function computes | |
| * a total length in bytes with buffer alignment according to STD140 layout. | |
| * | |
| * @function | |
| * @param {number} count - The number of vectors. | |
| * @param {number} [vectorLength=4] - The vector length. | |
| * @return {number} The padded length. | |
| */ | |
| function getVectorLength( count, vectorLength = 4 ) { | |
| const strideLength = getStrideLength( vectorLength ); | |
| const floatLength = strideLength * count; | |
| return getFloatLength( floatLength ); | |
| } | |
| /** | |
| * This function is called with a vector length and ensure the computed length | |
| * matches a predefined stride (in this case `4`). | |
| * | |
| * @function | |
| * @param {number} vectorLength - The vector length. | |
| * @return {number} The padded length. | |
| */ | |
| function getStrideLength( vectorLength ) { | |
| const strideLength = 4; | |
| return vectorLength + ( ( strideLength - ( vectorLength % strideLength ) ) % strideLength ); | |
| } | |
| export { | |
| getFloatLength, | |
| getVectorLength, | |
| getStrideLength | |
| }; | |
Xet Storage Details
- Size:
- 1.54 kB
- Xet hash:
- 7a6cd7bc069a0952986d87172852b1d69bbed53745520b731a170a37c4efaa13
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.