struct Interface {
  @location(0) @interpolate(flat)
  i : i32,
  @location(1) @interpolate(flat)
  u : u32,
  @location(2) @interpolate(flat)
  vi : vec4<i32>,
  @location(3) @interpolate(flat)
  vu : vec4<u32>,
  @builtin(position)
  pos : vec4<f32>,
}

@stage(vertex)
fn vert_main() -> Interface {
  return Interface();
}

@stage(fragment)
fn frag_main(inputs : Interface) -> @location(0) i32 {
  return inputs.i;
}