struct Result { values : array; }; let width : u32 = 128u; [[group(0), binding(0)]] var tex : texture_depth_2d; [[group(0), binding(1)]] var result : Result; [[stage(compute), workgroup_size(1)]] fn main([[builtin(global_invocation_id)]] GlobalInvocationId : vec3) { result.values[((GlobalInvocationId.y * width) + GlobalInvocationId.x)] = textureLoad(tex, vec2(i32(GlobalInvocationId.x), i32(GlobalInvocationId.y)), 0); }