#include <metal_stdlib>

using namespace metal;
struct FragmentOutputs {
  float frag_depth;
  uint sample_mask;
};
struct tint_symbol_1 {
  float frag_depth [[depth(any)]];
  uint sample_mask [[sample_mask]];
};

FragmentOutputs tint_symbol_inner() {
  FragmentOutputs const tint_symbol_2 = {.frag_depth=1.0f, .sample_mask=1u};
  return tint_symbol_2;
}

fragment tint_symbol_1 tint_symbol() {
  FragmentOutputs const inner_result = tint_symbol_inner();
  tint_symbol_1 wrapper_result = {};
  wrapper_result.frag_depth = inner_result.frag_depth;
  wrapper_result.sample_mask = inner_result.sample_mask;
  return wrapper_result;
}

