playcanvas
Version:
Open-source WebGL/WebGPU 3D engine for the web
2 lines (1 loc) • 713 B
TypeScript
export const computeGsplatLocalDispatchPrepLargeSource: "\n\n@group(0) @binding(0) var<storage, read> countersBuffer: array<u32>;\n@group(0) @binding(1) var<storage, read_write> dispatchArgs: array<u32>;\n@group(0) @binding(2) var<storage, read> largeSplatIds: array<u32>;\n\n@compute @workgroup_size(1)\nfn main() {\n let count = min(countersBuffer[1], arrayLength(&largeSplatIds));\n let maxDim = {MAX_DIM}u;\n if (count <= maxDim) {\n dispatchArgs[0] = count;\n dispatchArgs[1] = 1u;\n } else {\n let y = (count + maxDim - 1u) / maxDim;\n let x = (count + y - 1u) / y;\n dispatchArgs[0] = x;\n dispatchArgs[1] = y;\n }\n dispatchArgs[2] = 1u;\n}\n";