#include <metal_stdlib>
using namespace metal;
struct xlatMtlShaderInput {
  float3 _inPos [[attribute(0)]];
  float3 _inNor [[attribute(1)]];
};
struct xlatMtlShaderOutput {
  float gl_PointSize [[point_size]];
  float4 gl_Position [[position]];
};
struct xlatMtlShaderUniform {
};
vertex xlatMtlShaderOutput xlatMtlMain (xlatMtlShaderInput _mtl_i [[stage_in]], constant xlatMtlShaderUniform& _mtl_u [[buffer(0)]]
  , uint gl_InstanceID [[instance_id]]
  , uint gl_VertexID [[vertex_id]])
{
  xlatMtlShaderOutput _mtl_o;
  float3 p_1;
  p_1.z = _mtl_i._inPos.z;
  p_1.x = (_mtl_i._inPos.x + float(gl_VertexID));
  p_1.y = (_mtl_i._inPos.y + float(gl_InstanceID));
  p_1 = (p_1 + _mtl_i._inNor);
  float4 tmpvar_2;
  tmpvar_2.w = 1.0;
  tmpvar_2.xyz = p_1;
  _mtl_o.gl_Position = tmpvar_2;
  _mtl_o.gl_PointSize = p_1.x;
  return _mtl_o;
}


// stats: 6 alu 0 tex 0 flow
// inputs: 2
//  #0: _inPos (high float) 3x1 [-1] loc 0
//  #1: _inNor (high float) 3x1 [-1] loc 1