#version 310 es
precision mediump float;

struct DrawIndirectArgs {
  uint vertexCount;
};

layout (binding = 5) buffer DrawIndirectArgs_1 {
  uint vertexCount;
} drawOut;
uint cubeVerts = 0u;

struct tint_symbol_1 {
  uvec3 global_id;
};

void computeMain_inner(uvec3 global_id) {
  uint firstVertex = atomicAdd(drawOut.vertexCount, cubeVerts);
}

layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
void computeMain(tint_symbol_1 tint_symbol) {
  computeMain_inner(tint_symbol.global_id);
  return;
}
void main() {
  tint_symbol_1 inputs;
  inputs.global_id = gl_GlobalInvocationID;
  computeMain(inputs);
}


