#include <metal_stdlib>
using namespace metal;

struct tint_module_vars_struct {
  array<texture2d<float, access::sample>, 4> sampled_textures;
};

void do_texture_load(array<texture2d<float, access::sample>, 4> ts) {
  uint const v = min(0u, (ts[0].get_num_mip_levels() - 1u));
  float4 const texture_load = ts[0].read(min(uint2(0u), (uint2(ts[0].get_width(v), ts[0].get_height(v)) - uint2(1u))), v);
}

fragment void fs(array<texture2d<float, access::sample>, 4> sampled_textures [[texture(0)]]) {
  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.sampled_textures=sampled_textures};
  (do_texture_load(tint_module_vars.sampled_textures));
}
