struct DrawIndirectArgs { vertexCount : atomic; }; [[group(0), binding(5)]] var drawOut : DrawIndirectArgs; var cubeVerts : u32 = 0u; [[stage(compute), workgroup_size(1)]] fn computeMain([[builtin(global_invocation_id)]] global_id : vec3) { // Increment cubeVerts based on some criteria... // This fails SPIR-V validation let firstVertex : u32 = atomicAdd(&drawOut.vertexCount, cubeVerts); }