warning: use of deprecated intrinsic
var<private> color_out : vec4<f32>;

[[group(0), binding(0)]] var texture : texture_storage_2d<rgba8unorm, read>;

var<private> gl_FragCoord : vec4<f32>;

fn main_1() {
  let x_19 : vec4<f32> = gl_FragCoord;
  let x_22 : vec4<f32> = textureLoad(texture, vec2<i32>(vec2<f32>(x_19.x, x_19.y)));
  color_out = x_22;
  return;
}

struct main_out {
  [[location(0)]]
  color_out_1 : vec4<f32>;
};

[[stage(fragment)]]
fn main([[builtin(position)]] gl_FragCoord_param : vec4<f32>) -> main_out {
  gl_FragCoord = gl_FragCoord_param;
  main_1();
  return main_out(color_out);
}
