skia2/tests/sksl/runtime_errors
John Stiles cb40008b43 Implement switch in SkVM.
SkVM implements switches as a pseudo-loop; breaks are handled with the
condition mask just like a for loop. Fallthrough is handled via a
scratch Value in a temporary slot. `writeStore` neeeded to be refactored
to support writing into slot(s) without an associated Variable.

At IR generation time, SwitchStatements are now emitted without error
even in strict-ES2 mode. The GLSL code generator currently reports these
as an error in strict-ES2 mode, but this will be fixed in a followup
coming shortly (the switch will be rewritten as ifs inside a one-shot
loop, similar to our IR-rewrite strategy).

Change-Id: I5507257246c42a35d2f46b4b9a89492a5ffeff9b
Bug: skia:12450
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/451421
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2021-09-23 19:58:55 +00:00
..
DerivativesES2.skvm Allow derivatives in Runtime Effects when ES3 restrictions are off. 2021-08-13 16:45:17 +00:00
ES3Types.skvm Reenable DSLParser 2021-09-16 15:28:19 +00:00
FirstClassArrays.skvm Reenable DSLParser 2021-09-16 15:28:19 +00:00
IllegalArrayOps.skvm Runtime Effects: Disallow all operators on arrays or arrays-in-structs 2021-02-17 18:05:04 +00:00
IllegalIndexing.skvm Evaluate single-argument generic intrinsics at compile time. 2021-05-10 14:50:50 +00:00
IllegalOperators.skvm Migrate SkSL test inputs to the resources/ directory. 2021-01-22 18:57:29 +00:00
IllegalPrecisionQualifiers.skvm Honor lowp/mediump/highp precision qualifiers in IRGenerator. 2021-08-04 21:29:10 +00:00
IllegalRecursionComplex.skvm SkSL: Turn DSL parser off again 2021-09-07 14:21:57 +00:00
IllegalRecursionMutual.skvm SkSL: Turn DSL parser off again 2021-09-07 14:21:57 +00:00
IllegalRecursionSimple.skvm SkSL: Turn DSL parser off again 2021-09-07 14:21:57 +00:00
IllegalShaderSampling.skvm Remove SkSL sample() intrinsic for Skia object types 2021-09-14 14:18:03 +00:00
IllegalShaderUse.skvm Reenable DSLParser 2021-09-16 15:28:19 +00:00
IllegalStatements.skvm Implement switch in SkVM. 2021-09-23 19:58:55 +00:00
InvalidBlendMain.skvm Reenable DSLParser 2021-09-16 15:28:19 +00:00
InvalidColorFilterFeatures.skvm Remove layout(marker) from runtime effect SkSL 2021-04-19 18:48:45 +00:00
InvalidColorFilterMain.skvm Reenable DSLParser 2021-09-16 15:28:19 +00:00
InvalidShaderMain.skvm Reenable DSLParser 2021-09-16 15:28:19 +00:00
LoopConditionErrors.skvm Fix line numbers of several DSLParser errors 2021-09-03 22:12:22 +00:00
LoopExpressionErrors.skvm Fix line numbers of several DSLParser errors 2021-09-03 22:12:22 +00:00
LoopInitializerErrors.skvm Reenable DSLParser 2021-09-16 15:28:19 +00:00
LoopStructureErrors.skvm Increase GetLoopUnrollInfo loop-count limit to 100,000. 2021-09-07 19:28:08 +00:00
Ossfuzz36655.skvm Only perform unrolled-size check on valid code. 2021-09-03 15:51:11 +00:00
Ossfuzz38131.skvm Fixed illegal interface block reporting 2021-09-07 20:18:00 +00:00
ProgramTooLarge_BlocklessLoops.skvm Fix size calculation of blockless for-loops. 2021-09-15 14:29:45 +00:00
ProgramTooLarge_Extreme.skvm Improve overflow checks in CheckProgramUnrolledSize. 2021-09-15 16:42:45 +00:00
ProgramTooLarge_FlatLoop.skvm Enforce an upper bound on Runtime Effect program size. 2021-09-02 14:44:34 +00:00
ProgramTooLarge_Functions.skvm Enforce an upper bound on Runtime Effect program size. 2021-09-02 14:44:34 +00:00
ProgramTooLarge_NestedLoops.skvm Enforce an upper bound on Runtime Effect program size. 2021-09-02 14:44:34 +00:00
ProgramTooLarge_SplitLoops.skvm Enforce an upper bound on Runtime Effect program size. 2021-09-02 14:44:34 +00:00
ProgramTooLarge_StackDepth.skvm SkSL: Turn DSL parser off again 2021-09-07 14:21:57 +00:00
UnsupportedTypeFragmentProcessor.skvm Reenable DSLParser 2021-09-16 15:28:19 +00:00
UnsupportedTypeSampler.skvm Reenable DSLParser 2021-09-16 15:28:19 +00:00
UnsupportedTypeTexture.skvm Reenable DSLParser 2021-09-16 15:28:19 +00:00