skia2/tests/sksl/runtime
Brian Osman c2d42fe243 Add #version directive to SkSL
ProgramSettings now has a fRequiredVersion, based on the #version
directive (if any). There is plenty more to do, and this is an
intermediate state where the "fEnforceES2Restrictions" bool still
exists. Eventually, that will go away, or change into a check between
the required version and the SkCapabilities supplied (also in
ProgramSettings).

As a proof-of-concept, this migrates some use-cases to insert the new
version directive, and unlock ES3 features in some tests and benches.

Bug: skia:11209
Change-Id: I964975931039588d7a302bfedd09246e3d4a79d2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/540037
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2022-05-17 15:42:31 +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 Emit trace_scope ops from SkVM code generation. 2021-12-15 01:05:34 +00:00
ArrayIndexing.stage Add variable slot information to SkVMDebugInfo. 2021-11-15 14:24:08 +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
ChildEffects.skvm Update opcode canonicalization logic in SkVM. 2022-03-24 19:14:51 +00:00
ChildEffects.stage Add a test runtime effect for child effects. 2022-02-12 01:06:57 +00:00
Commutative.skvm Add #version directive to SkSL 2022-05-17 15:42:31 +00:00
Commutative.stage Add test for commutative operations in SkVM. 2021-11-18 21:16:48 +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 Emit prototypes in Pipeline for every defined function. 2021-09-30 21:37:26 +00:00
ConversionConstructors.skvm Move runtime effect uniform type checking into the compiler 2022-04-22 20:54:26 +00:00
ConversionConstructors.stage Move runtime effect uniform type checking into the compiler 2022-04-22 20:54:26 +00:00
GlobalVariables.skvm Emit trace_scope ops from SkVM code generation. 2021-12-15 01:05:34 +00:00
GlobalVariables.stage Fix assertion when debug-tracing a void-return function. 2021-12-10 14:39:05 +00:00
GLSLTypeNames.skvm Move runtime effect uniform type checking into the compiler 2022-04-22 20:54:26 +00:00
GLSLTypeNames.stage Move runtime effect uniform type checking into the compiler 2022-04-22 20:54:26 +00:00
LargeProgram_BlocklessLoops.skvm Add program-too-large test using for loops without blocks. 2021-09-15 14:19:00 +00:00
LargeProgram_BlocklessLoops.stage Add program-too-large test using for loops without blocks. 2021-09-15 14:19:00 +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 Emit prototypes in Pipeline for every defined function. 2021-09-30 21:37:26 +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 Emit prototypes in Pipeline for every defined function. 2021-09-30 21:37:26 +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 Distinguish between unscoped blocks and compound statements. 2022-04-11 14:34:07 +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 Optimize away empty for loops. 2021-10-06 17:56:26 +00:00
LoopFloat.skvm Optimize SkVM bit-clears. 2022-03-24 21:04:23 +00:00
LoopFloat.stage Update LoopFloat/LoopInt tests to reduce hoisting. 2021-11-12 13:45:59 +00:00
LoopInt.skvm Optimize SkVM bit-clears. 2022-03-24 21:04:23 +00:00
LoopInt.stage Add workaround for LLVM crash in macOS 12 on Intel or M1. 2022-03-02 15:20:10 +00:00
MultipleCallsInOneStatement.skvm Fix debugger return-value display with repeated function calls. 2022-03-03 20:55:25 +00:00
MultipleCallsInOneStatement.stage Add test demonstrating issue with function calls. 2022-03-03 20:55:25 +00:00
PrecisionQualifiers.skvm Made SkSL type aliases into first-class objects 2022-01-05 16:20:19 +00:00
PrecisionQualifiers.stage Add variable slot information to SkVMDebugInfo. 2021-11-15 14:24:08 +00:00
QualifierOrder.skvm Emit qualifiers in the GLSL ES-required order. 2021-10-01 19:09:43 +00:00
QualifierOrder.stage Report an error if an out param is never written to. 2022-01-26 21:42:13 +00:00
RecursiveComparison_Arrays.skvm Optimize SkVM bit-clears. 2022-03-24 21:04:23 +00:00
RecursiveComparison_Arrays.stage Adding test files demonstrating type confusion for arrays/structs. 2021-12-03 20:54:36 +00:00
RecursiveComparison_Structs.skvm Optimize SkVM bit-clears. 2022-03-24 21:04:23 +00:00
RecursiveComparison_Structs.stage Adding test files demonstrating type confusion for arrays/structs. 2021-12-03 20:54:36 +00:00
RecursiveComparison_Types.skvm Optimize SkVM bit-clears. 2022-03-24 21:04:23 +00:00
RecursiveComparison_Types.stage Adding test files demonstrating type confusion for arrays/structs. 2021-12-03 20:54:36 +00:00
RecursiveComparison_Vectors.skvm Optimize SkVM bit-clears. 2022-03-24 21:04:23 +00:00
RecursiveComparison_Vectors.stage Adding test files demonstrating type confusion for arrays/structs. 2021-12-03 20:54:36 +00:00
SampleWithExplicitCoord.skvm Optimize commutative operations in SkVM. 2021-11-18 21:27:17 +00:00
SampleWithExplicitCoord.stage Convert internal SkSL to use .eval() 2021-09-03 15:54:54 +00:00
Switch.skvm Optimize SkVM bit-clears. 2022-03-24 21:04:23 +00:00
Switch.stage Implement switch in SkVM. 2021-09-23 19:58:55 +00:00
SwitchDefaultOnly.skvm Implement switch in SkVM. 2021-09-23 19:58:55 +00:00
SwitchDefaultOnly.stage Implement switch in SkVM. 2021-09-23 19:58:55 +00:00
SwitchWithFallthrough.skvm Optimize SkVM bit-clears. 2022-03-24 21:04:23 +00:00
SwitchWithFallthrough.stage Emit prototypes in Pipeline for every defined function. 2021-09-30 21:37:26 +00:00
SwitchWithLoops.skvm Optimize SkVM bit-clears. 2022-03-24 21:04:23 +00:00
SwitchWithLoops.stage Emit prototypes in Pipeline for every defined function. 2021-09-30 21:37:26 +00:00
VectorIndexing.skvm Optimize commutative operations in SkVM. 2021-11-18 21:27:17 +00:00
VectorIndexing.stage Emit prototypes in Pipeline for every defined function. 2021-09-30 21:37:26 +00:00