skia2/tests/sksl/runtime_errors
John Stiles 2af4b13925 Reject programs which exceed 50 stack frames during size analysis.
Our program-size analysis pass needs to recurse into called functions;
depending on the exact order of functions in the program, this recursion
can hypothetically be as deep as the deepest function-call chain. Set an
upper bound on recursion here, so we don't overflow the stack while
trying to check the program size. In practice, 50 frames is far deeper
than a regular shader should ever go.

Change-Id: I733ee48dad6f8053facdfd9f6d8a2b9b2a4af188
Bug: skia:12396
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/445279
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2021-09-03 02:41:34 +00:00
..
DerivativesES2.skvm Allow derivatives in Runtime Effects when ES3 restrictions are off. 2021-08-13 16:45:17 +00:00
ES3Types.skvm Include non-ES2 numeric types in the root symbol table. 2021-08-17 17:36:43 +00:00
FirstClassArrays.skvm
IllegalArrayOps.skvm
IllegalIndexing.skvm Evaluate single-argument generic intrinsics at compile time. 2021-05-10 14:50:50 +00:00
IllegalOperators.skvm
IllegalPrecisionQualifiers.skvm Honor lowp/mediump/highp precision qualifiers in IRGenerator. 2021-08-04 21:29:10 +00:00
IllegalRecursionComplex.skvm Report recursion from within CheckProgramUnrolledSize. 2021-09-02 19:32:23 +00:00
IllegalRecursionMutual.skvm Report recursion from within CheckProgramUnrolledSize. 2021-09-02 19:32:23 +00:00
IllegalRecursionSimple.skvm Explicitly detect static recursion in SkSL 2021-07-24 00:01:15 +00:00
IllegalShaderSampling.skvm SkSL: Use type-specific sampling intrinsics, rather than fn-call syntax 2021-08-24 18:18:46 +00:00
IllegalShaderUse.skvm Remove flexible runtime effects entirely 2021-04-29 16:02:27 +00:00
IllegalStatements.skvm
InvalidBlendMain.skvm Fix for fuzzer-discovered out-of-bounds array access. 2021-06-10 14:32:10 +00:00
InvalidColorFilterFeatures.skvm Remove layout(marker) from runtime effect SkSL 2021-04-19 18:48:45 +00:00
InvalidColorFilterMain.skvm Fix for fuzzer-discovered out-of-bounds array access. 2021-06-10 14:32:10 +00:00
InvalidShaderMain.skvm Fix for fuzzer-discovered out-of-bounds array access. 2021-06-10 14:32:10 +00:00
LoopConditionErrors.skvm
LoopExpressionErrors.skvm
LoopInitializerErrors.skvm
LoopStructureErrors.skvm Optimize away no-op arithmetic in ConstantFolder. 2021-03-06 01:33:35 +00:00
Ossfuzz36655.skvm Migrate program finalization logic out of IRGenerator. 2021-09-01 19:40:53 +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 Reject programs which exceed 50 stack frames during size analysis. 2021-09-03 02:41:34 +00:00
UnsupportedTypeFragmentProcessor.skvm Make 'shader' and 'colorFilter' first class types in SkSL 2021-04-05 14:55:46 +00:00
UnsupportedTypeSampler.skvm
UnsupportedTypeTexture.skvm