#include <metal_stdlib>
using namespace metal;
struct S {
  float4x4 matrix_view;
  float3x3 matrix_normal;
};
struct tint_module_vars_struct {
  const constant S* tint_symbol;
};
struct tint_symbol_1_outputs {
  float4 tint_symbol_2 [[position]];
};

float4 tint_symbol_1_inner(tint_module_vars_struct tint_module_vars) {
  float const x = (*tint_module_vars.tint_symbol).matrix_view[0][2u];
  return float4(x, 0.0f, 0.0f, 1.0f);
}
vertex tint_symbol_1_outputs tint_symbol_1(const constant S* tint_symbol [[buffer(0)]]) {
  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.tint_symbol=tint_symbol};
  return tint_symbol_1_outputs{.tint_symbol_2=tint_symbol_1_inner(tint_module_vars)};
}
