#include <metal_stdlib>

using namespace metal;
void textureSample_1a4e1b(depth2d_array<float, access::sample> tint_symbol, sampler tint_symbol_1, device float* const tint_symbol_2) {
  float2 arg_2 = float2(1.0f);
  uint arg_3 = 1u;
  float res = tint_symbol.sample(tint_symbol_1, arg_2, arg_3);
  *(tint_symbol_2) = res;
}

fragment void fragment_main(depth2d_array<float, access::sample> tint_symbol_3 [[texture(0)]], sampler tint_symbol_4 [[sampler(0)]], device float* tint_symbol_5 [[buffer(0)]]) {
  textureSample_1a4e1b(tint_symbol_3, tint_symbol_4, tint_symbol_5);
  return;
}

