-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
user need to manually write the following:
@compute @workgroup_size(workgroup_size_x, workgroup_size_y, workgroup_size_z)
fn main(@builtin(global_invocation_id) global_id : vec3<u32>,
@builtin(workgroup_id) workgroup_id : vec3<u32>,
@builtin(local_invocation_index) local_idx : u32,
@builtin(local_invocation_id) local_id : vec3<u32>,
#if SUBGROUP_SUPPORTED
@builtin(subgroup_invocation_id) sg_id : u32,
@builtin(subgroup_size) sg_size : u32
#endif
#if IS_1D_DISPATCH
) {
let global_idx = global_id.x;
let workgroup_idx = workgroup_id.x;
#else
,
@builtin(num_workgroups) num_workgroups : vec3<u32>) {
let workgroup_idx = workgroup_id.z * num_workgroups[0] * num_workgroups[1] + workgroup_id.y * num_workgroups[0] + workgroup_id.x;
let global_idx = workgroup_idx * (workgroup_size_x * workgroup_size_y * workgroup_size_z) + local_idx;
#endif
which is non-trivial, and may cause problems if inconsistent across the code base.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels