RWByteAddressBuffer drawOut : register(u5, space0);
static uint cubeVerts = 0u;

struct tint_symbol_1 {
  uint3 global_id : SV_DispatchThreadID;
};

[numthreads(1, 1, 1)]
void computeMain(tint_symbol_1 tint_symbol) {
  const uint3 global_id = tint_symbol.global_id;
  uint atomic_result = 0u;
  drawOut.InterlockedAdd(0u, 0u, atomic_result);
  const uint firstVertex = atomic_result;
  return;
}
