#include <metal_stdlib>

using namespace metal;
void textureSampleCompare_dd431d(depth2d_array<float, access::sample> tint_symbol, sampler tint_symbol_1, device float* const tint_symbol_2) {
  float res = tint_symbol.sample_compare(tint_symbol_1, float2(1.0f), 1, 1.0f);
  *(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)]]) {
  textureSampleCompare_dd431d(tint_symbol_3, tint_symbol_4, tint_symbol_5);
  return;
}

