skia2/tests/sksl/runtime
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
..
AllowNarrowingConversions.skvm Add test for Runtime Effects and narrowing conversions. 2021-08-03 15:58:46 +00:00
AllowNarrowingConversions.stage Add test for Runtime Effects and narrowing conversions. 2021-08-03 15:58:46 +00:00
ArrayIndexing.skvm Migrate SkSL test inputs to the resources/ directory. 2021-01-22 18:57:29 +00:00
ArrayIndexing.stage Remove flexible runtime effects entirely 2021-04-29 16:02:27 +00:00
ArrayNarrowingConversions.skvm Add unit test for array narrowing conversions. 2021-08-06 13:05:35 +00:00
ArrayNarrowingConversions.stage Add tests for array assignment with narrowing conversions. 2021-08-11 12:56:40 +00:00
Blend.skvm Add dest-color support to the Pipeline stage. 2021-06-09 22:09:21 +00:00
Blend.stage Add dest-color support to the Pipeline stage. 2021-06-09 22:09:21 +00:00
ConstPreservation.skvm Test that we propagate 'const' to the GPU backend of runtime effects 2021-03-09 23:26:00 +00:00
ConstPreservation.stage Remove usage of sqrt() as an optimization barrier in tests. 2021-05-24 17:18:54 +00:00
ConversionConstructors.skvm Migrate SkSL test inputs to the resources/ directory. 2021-01-22 18:57:29 +00:00
ConversionConstructors.stage Remove flexible runtime effects entirely 2021-04-29 16:02:27 +00:00
GlobalVariables.skvm Support initializers on global variables in SkSL to SkVM 2021-02-17 20:40:32 +00:00
GlobalVariables.stage Remove flexible runtime effects entirely 2021-04-29 16:02:27 +00:00
GLSLTypeNames.skvm Add ivec GLSL type aliases to runtime effects 2021-04-12 16:55:41 +00:00
GLSLTypeNames.stage Add ivec GLSL type aliases to runtime effects 2021-04-12 16:55:41 +00:00
LargeProgram_FlatLoop.skvm Enforce an upper bound on Runtime Effect program size. 2021-09-02 14:44:34 +00:00
LargeProgram_FlatLoop.stage Enforce an upper bound on Runtime Effect program size. 2021-09-02 14:44:34 +00:00
LargeProgram_Functions.skvm Enforce an upper bound on Runtime Effect program size. 2021-09-02 14:44:34 +00:00
LargeProgram_Functions.stage Enforce an upper bound on Runtime Effect program size. 2021-09-02 14:44:34 +00:00
LargeProgram_NestedLoops.skvm Enforce an upper bound on Runtime Effect program size. 2021-09-02 14:44:34 +00:00
LargeProgram_NestedLoops.stage Enforce an upper bound on Runtime Effect program size. 2021-09-02 14:44:34 +00:00
LargeProgram_SplitLoops.skvm Enforce an upper bound on Runtime Effect program size. 2021-09-02 14:44:34 +00:00
LargeProgram_SplitLoops.stage Enforce an upper bound on Runtime Effect program size. 2021-09-02 14:44:34 +00:00
LargeProgram_StackDepth.skvm Reject programs which exceed 50 stack frames during size analysis. 2021-09-03 02:41:34 +00:00
LargeProgram_StackDepth.stage Reject programs which exceed 50 stack frames during size analysis. 2021-09-03 02:41:34 +00:00
LargeProgram_ZeroIterFor.skvm Enforce an upper bound on Runtime Effect program size. 2021-09-02 14:44:34 +00:00
LargeProgram_ZeroIterFor.stage Enforce an upper bound on Runtime Effect program size. 2021-09-02 14:44:34 +00:00
LoopFloat.skvm Migrate SkSL test inputs to the resources/ directory. 2021-01-22 18:57:29 +00:00
LoopFloat.stage Remove flexible runtime effects entirely 2021-04-29 16:02:27 +00:00
LoopInt.skvm Migrate SkSL test inputs to the resources/ directory. 2021-01-22 18:57:29 +00:00
LoopInt.stage Remove flexible runtime effects entirely 2021-04-29 16:02:27 +00:00
PrecisionQualifiers.skvm Honor lowp/mediump/highp precision qualifiers in IRGenerator. 2021-08-04 21:29:10 +00:00
PrecisionQualifiers.stage Honor lowp/mediump/highp precision qualifiers in IRGenerator. 2021-08-04 21:29:10 +00:00
SampleWithExplicitCoord.skvm Migrate SkSL test inputs to the resources/ directory. 2021-01-22 18:57:29 +00:00
SampleWithExplicitCoord.stage Convert internal sample() calls to shade/filter/blend 2021-08-24 21:03:44 +00:00
VectorIndexing.skvm Migrate SkSL test inputs to the resources/ directory. 2021-01-22 18:57:29 +00:00
VectorIndexing.stage Remove flexible runtime effects entirely 2021-04-29 16:02:27 +00:00