skia2/tests/sksl/runtime
Ethan Nicholas f393067c37 Made SkSL type aliases into first-class objects
Previously, type aliases ('vec2') were just an additional name which
could be used to refer to a type ('float2'). This was simple and worked,
except that error messages would be wrong - any type-related error
message would refer to the type as 'float2' rather than the 'vec2' that
the user actually typed.

This CL adds an AliasType class so that we can track which name was
used to refer to an aliased type and report messages using the correct
type name.

Bug: skia:12737

Change-Id: I40e234239ab47557033e0695e4fbbd5f01da354e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/490256
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2022-01-05 16:20:19 +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
Commutative.skvm Emit trace_scope ops from SkVM code generation. 2021-12-15 01:05:34 +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 Optimize commutative operations in SkVM. 2021-11-18 21:27:17 +00:00
ConversionConstructors.stage Remove flexible runtime effects entirely 2021-04-29 16:02:27 +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 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_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 Emit prototypes in Pipeline for every defined function. 2021-09-30 21:37:26 +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 Emit trace_scope ops from SkVM code generation. 2021-12-15 01:05:34 +00:00
LoopFloat.stage Update LoopFloat/LoopInt tests to reduce hoisting. 2021-11-12 13:45:59 +00:00
LoopInt.skvm Emit trace_scope ops from SkVM code generation. 2021-12-15 01:05:34 +00:00
LoopInt.stage Update LoopFloat/LoopInt tests to reduce hoisting. 2021-11-12 13:45:59 +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 Fix ES2 conformance test 'in_vs_no_in'. 2021-10-11 22:27:37 +00:00
RecursiveComparison_Arrays.skvm Fixing comparison for structs and arrays 2021-12-06 20:46:41 +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 Fixing comparison for structs and arrays 2021-12-06 20:46:41 +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 Fixing comparison for structs and arrays 2021-12-06 20:46:41 +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 Adding test files demonstrating type confusion for arrays/structs. 2021-12-03 20:54:36 +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 commutative operations in SkVM. 2021-11-18 21:27:17 +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 commutative operations in SkVM. 2021-11-18 21:27:17 +00:00
SwitchWithFallthrough.stage Emit prototypes in Pipeline for every defined function. 2021-09-30 21:37:26 +00:00
SwitchWithLoops.skvm Emit trace_scope ops from SkVM code generation. 2021-12-15 01:05:34 +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