skia2/tests/sksl
John Stiles 66aa1ded16 Allow precision qualifiers in function params.
Previously, `Type::applyPrecisionQualifiers` would return a new type
(e.g. `mediump + float` returned `half`) but left the precision
qualifier flags as-is. This was implemented that way because the
modifiers were already baked into a pool, so mutating them was
difficult.

The rewritten DSLParser does not share this limitation--every place
where applyPrecisionQualifiers is used, the Modifiers are easily
mutable. As a result, `applyPrecisionQualifiers` can now clear the
precision-qualifier bits on the Modifier, meaning that `half` and a
`mediump float` will generate the exact same Type/Modifier combination.

This change fixes a bug where precision qualifiers were not allowed on
function parameters. (See `check_parameters` in FunctionDeclaration.cpp
to pinpoint the cause of the error. A less-invasive fix could have just
marked those modifier bits as allowed in `check_parameters`, but this
fix addresses the root of the issue and is honestly how I wanted
`applyPrecisionQualifiers` to work all along.)

Change-Id: I331813efa54138f469a0d5bff2d274cd3ce64b70
Bug: skia:12489
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/455156
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2021-10-01 18:59:27 +00:00
..
blend Revert "Add RelaxedPrecision decoration to function-call temp vars." 2021-09-08 17:06:07 +00:00
errors Reland "Mark GLSL reserved names as reserved in SkSL grammar." 2021-10-01 18:31:50 +00:00
folding Remove 0/x arithmetic simplification. 2021-08-24 19:18:41 +00:00
glsl Report an error if sk_LastFragColor is referenced without fbFetchSupport 2021-09-15 15:41:49 +00:00
inliner Fix inliner bug discovered by fuzzer. 2021-09-07 13:29:37 +00:00
intrinsics Rename variables named input in test files. 2021-09-30 16:39:21 +00:00
metal Reenable DSLParser 2021-09-16 15:28:19 +00:00
runtime Allow precision qualifiers in function params. 2021-10-01 18:59:27 +00:00
runtime_errors Implement switch in SkVM. 2021-09-23 19:58:55 +00:00
shared Remove obsolete test outputs. 2021-10-01 18:39:29 +00:00
spirv Fix parsing error with SPIR-V negating a uint. 2021-08-25 17:52:50 +00:00
workarounds Reland "Don't key progams/pipelines on origin."" 2021-07-07 14:50:10 +00:00
README.txt Migrate SkSL test inputs to the resources/ directory. 2021-01-22 18:57:29 +00:00

This directory contains skslc-compiled output from matching source files
in the /resources/sksl/ directory.