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>,
};

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

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