// These definitions already exist verbatim in sksl_frag.

layout(builtin=15) in float4 sk_FragCoord;
layout(builtin=17) in bool sk_Clockwise;  // Similar to gl_FrontFacing, but defined in device space.

layout(location=0,index=0,builtin=10001) out half4 sk_FragColor;
layout(builtin=10008) half4 sk_LastFragColor;
layout(builtin=10012) out half4 sk_SecondaryFragColor;

/*%%*
symbol 'sk_FragCoord' was already defined
symbol 'sk_Clockwise' was already defined
symbol 'sk_FragColor' was already defined
symbol 'sk_LastFragColor' was already defined
symbol 'sk_SecondaryFragColor' was already defined
*%%*/
