// defines built-in interfaces supported by SkiaSL geometry shaders layout(builtin=10002) in sk_PerVertex { layout(builtin=0) float4 sk_Position; layout(builtin=1) float sk_PointSize; } sk_in[]; layout(builtin=10007) out sk_PerVertex { layout(builtin=0) float4 sk_Position; layout(builtin=1) float sk_PointSize; }; // sk_InvocationID exists, but is declared programmatically (to support a workaround) // layout(builtin=8) in 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();