diff options
author | ethannicholas <ethannicholas@google.com> | 2016-10-10 06:40:23 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-10-10 06:40:24 -0700 |
commit | 08b2ccf398e2b81bc05d2c105837e5419899469b (patch) | |
tree | f9338540266391ee920965581d44541b398487aa /src/sksl/README | |
parent | 3f748606d8dcac21c7fcdd07c2083f611c633ad5 (diff) |
Turned on SkSL->GLSL compiler
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2288033003
Committed: https://skia.googlesource.com/skia/+/9b0fe3d125f237d9884732a48414fa85fc71b4e3
Committed: https://skia.googlesource.com/skia/+/b12b3c6908c62c908b3680be01e3b5bfd30de310
Committed: https://skia.googlesource.com/skia/+/f008b0a59f45c0d4bea3e66faf3b01805009ec89
Review-Url: https://codereview.chromium.org/2288033003
Diffstat (limited to 'src/sksl/README')
-rw-r--r-- | src/sksl/README | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/sksl/README b/src/sksl/README new file mode 100644 index 0000000000..1427c21926 --- /dev/null +++ b/src/sksl/README @@ -0,0 +1,35 @@ +Overview +======== + +SkSL ("Skia Shading Language") is a variant of GLSL which is used as Skia's +internal shading language. SkSL is, at its heart, a single standardized version +of GLSL which avoids all of the various version and dialect differences found +in GLSL "in the wild", but it does bring a few of its own changes to the table. + +Skia uses the SkSL compiler to convert SkSL code to GLSL, GLSL ES, or SPIR-V +before handing it over to the graphics driver. + +Differences from GLSL +===================== + +SkSL is based on GLSL 4.5. For the most part, write SkSL exactly as you would +desktop GLSL, and the SkSL compiler will take care of version and dialect +differences (for instance, you always use "in" and "out", and skslc will handle +translating them to "varying" and "attribute" as appropriate). Be aware of the +following differences between SkSL and GLSL: + +* no #version or "precision" statement is required, and they will be ignored if + present +* the output color is sk_FragColor (do not declare it) +* lowp, mediump, and highp are always permitted (but will only be respected if + you run on a GLES device) +* you do not need to include ".0" to make a number a float (meaning that + "vec2(x, y) * 4" is perfectly legal in SkSL, unlike GLSL where it would often + have to be expressed "vec2(x, y) * 4.0". There is no performance penalty for + this, as the number is converted to a float at compile time) +* type suffixes on numbers (1.0f, 0xFFu) are both unnecessary and unsupported +* some built-in functions and one or two rarely-used language features are not + yet supported (sorry!) + +SkSL is still under development, and is expected to diverge further from GLSL +over time. |