STRINGIFY(

// defines built-in interfaces supported by SkiaSL geometry shaders

layout(builtin=10002) in sk_PerVertex {
  layout(builtin=0) vec4 gl_Position;
  layout(builtin=1) float gl_PointSize;
  layout(builtin=3) float sk_ClipDistance[];
} sk_in[];

out sk_PerVertex {
    layout(builtin=0) vec4 gl_Position;
    layout(builtin=1) float gl_PointSize;
    layout(builtin=3) float sk_ClipDistance[];
};

layout(builtin=8) int sk_InvocationID;

sk_has_side_effects void EmitStreamVertex(int stream);
sk_has_side_effects void EndStreamPrimitive(int stream);
sk_has_side_effects void EmitVertex();
sk_has_side_effects void EndPrimitive();

)
