(
useGlobalIndex: boolean, program: WebGPUProgram)
| 168 | } |
| 169 | |
| 170 | export function getStartHeaderString( |
| 171 | useGlobalIndex: boolean, program: WebGPUProgram): string { |
| 172 | let snippet: string; |
| 173 | snippet = ` |
| 174 | ${getWorkgroupSizeString(program)} |
| 175 | fn _start(@builtin(local_invocation_id) LocalId : vec3<u32>, |
| 176 | @builtin(global_invocation_id) GlobalId : vec3<u32>, |
| 177 | @builtin(local_invocation_index) LocalIndex: u32, |
| 178 | @builtin(workgroup_id) WorkgroupId : vec3<u32>, |
| 179 | @builtin(num_workgroups) NumWorkgroups : vec3<u32>) { |
| 180 | localId = LocalId; |
| 181 | localIndex = LocalIndex; |
| 182 | globalId = GlobalId; |
| 183 | numWorkgroups = NumWorkgroups; |
| 184 | workgroupId = WorkgroupId; |
| 185 | ${useGlobalIndex ? `main(getGlobalIndex());` : `main();`}; |
| 186 | } |
| 187 | `; |
| 188 | return snippet; |
| 189 | } |
| 190 | |
| 191 | export function getWorkgroupSizeString(program: WebGPUProgram): string { |
| 192 | return ` |
no test coverage detected
searching dependent graphs…