playcanvas
Version:
Open-source WebGL/WebGPU 3D engine for the web
31 lines (30 loc) • 912 B
JavaScript
import indirectCoreCS from "../common/comp/indirect-core.js";
const computeGsplatShadowIndirectArgsSource = `
${indirectCoreCS}
var<storage, read> countBuffer: array<u32>;
var<storage, read_write> indirectDrawArgs: array<DrawIndexedIndirectArgs>;
struct ShadowArgsUniforms {
drawSlot: u32,
indexCount: u32,
pad0: u32,
pad1: u32
};
var<uniform> uniforms: ShadowArgsUniforms;
fn main() {
let count = countBuffer[0];
let instanceCount = (count + {INSTANCE_SIZE}u - 1u) / {INSTANCE_SIZE}u;
indirectDrawArgs[uniforms.drawSlot] = DrawIndexedIndirectArgs(
uniforms.indexCount,
instanceCount,
0u,
0,
0u
);
}
`;
var compute_gsplat_shadow_indirect_args_default = computeGsplatShadowIndirectArgsSource;
export {
computeGsplatShadowIndirectArgsSource,
compute_gsplat_shadow_indirect_args_default as default
};