#include <metal_stdlib>
using namespace metal;

struct FragmentOutputs {
  float frag_depth;
  uint sample_mask;
};

struct tint_symbol_outputs {
  float FragmentOutputs_frag_depth [[depth(any)]];
  uint FragmentOutputs_sample_mask [[sample_mask]];
};

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

fragment tint_symbol_outputs tint_symbol() {
  FragmentOutputs const v = tint_symbol_inner();
  return tint_symbol_outputs{.FragmentOutputs_frag_depth=v.frag_depth, .FragmentOutputs_sample_mask=v.sample_mask};
}
