aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/sksl/sksl_frag.inc
diff options
context:
space:
mode:
Diffstat (limited to 'src/sksl/sksl_frag.inc')
-rw-r--r--src/sksl/sksl_frag.inc21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/sksl/sksl_frag.inc b/src/sksl/sksl_frag.inc
new file mode 100644
index 0000000000..e96165be1f
--- /dev/null
+++ b/src/sksl/sksl_frag.inc
@@ -0,0 +1,21 @@
+STRINGIFY(
+
+// defines built-in interfaces supported by SkiaSL fragment shaders
+
+layout(builtin=15) in float4 sk_FragCoord;
+layout(builtin=3) float sk_ClipDistance[1];
+
+// 9999 is a temporary value that causes us to ignore these declarations beyond
+// adding them to the symbol table. This works fine in GLSL (where they do not
+// require any further handling) but will fail in SPIR-V. We'll have a better
+// solution for this soon.
+layout(builtin=9999) float4 gl_LastFragData[1];
+layout(builtin=9999) half4 gl_LastFragColor;
+layout(builtin=9999) half4 gl_LastFragColorARM;
+layout(builtin=9999) int gl_SampleMaskIn[1];
+layout(builtin=9999) out int gl_SampleMask[1];
+layout(builtin=9999) out half4 gl_SecondaryFragColorEXT;
+
+layout(location=0,index=0,builtin=10001) out half4 sk_FragColor;
+
+)