skia2/tests/sksl/shared
John Stiles c30fbcaf77 Allow swizzle optimizations to apply to any 'trivial' ctor fields.
This allows swizzle removal to apply in more cases; in particular, we
can now optimize away extra swizzles caused by zero/one swizzle-
components quite effectively.

The "trivial expression" code was lifted from the inliner. Some subtle
changes in trivial-expression determination affect the inliner's results
in boring, non-meaningful ways. In particular, multi-argument
constructors containing all-constant values are now considered trivial,
whereas previously only single-argument constructors made the trivial-
ness cut. This allows the inliner to propagate some values that it
wouldn't have before.

Change-Id: I9a009b6803d9ac9595d65538252ba81c2b7166a7
Bug: skia:10954
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/336156
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2020-11-20 16:35:16 +00:00
..
golden Allow swizzle optimizations to apply to any 'trivial' ctor fields. 2020-11-20 16:35:16 +00:00
ArrayConstructors.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
ArrayIndexTypes.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
ArrayMaxDimensions.sksl Limit arrays to a maximum of eight dimensions. 2020-11-10 16:56:27 +00:00
ArrayTypes.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
Assignment.sksl Add unit tests for assignment and invalid field access. 2020-09-25 21:42:22 +00:00
BoolFolding.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
Caps.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
CastsRoundTowardZero.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
Clockwise.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
ComplexDelete.sksl Add golden outputs for the Metal backend. 2020-09-25 17:46:43 +00:00
ConstantIf.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
ConstArray.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
ConstVariableComparison.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
Control.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
CrossIntrinsic.sksl Reland "Add sk_Caps.builtinDeterminantSupport and use it in cross()." 2020-10-09 14:45:23 +00:00
DeadDoWhileLoop.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
DeadIfStatement.sksl Create test case for oss-fuzz:26942. 2020-11-03 17:19:22 +00:00
DeadLoopVariable.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
DependentInitializers.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
Derivatives.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
DerivativesFlipY.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
DerivativesUnused.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
Discard.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
FloatFolding.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
FragCoordsFlipY.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
FragCoordsNew.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
FragCoordsOld.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
FrExp.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
FunctionArgumentMatch.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
FunctionPrototype.sksl Add test cases to function-prototype golden outputs. 2020-11-02 17:17:23 +00:00
Functions.sksl Add unit test demonstrating array function param bug. 2020-11-10 14:04:36 +00:00
Geometry.geom Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
GeometryExtension.geom Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
GeometryGSInvocations.geom Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
GeometryNoGSInvocations.geom Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
GeometryNoGSInvocationsReorder.geom Add geometry shader test demonstrating max_vertices/invocations bug 2020-10-12 21:19:33 +00:00
Height.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
HelloWorld.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
Hex.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
InstanceID.vert Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
InterfaceBlockAnonymous.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
InterfaceBlockArray.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
InterfaceBlockNamed.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
IntFolding.sksl Add unit test to demonstrate error with modulo in FP files. 2020-10-29 20:46:08 +00:00
Matrices.sksl Convert remaining Metal tests to golden outputs. 2020-11-16 16:32:56 +00:00
MatrixFolding.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
MultipleAssignments.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
NegatedVectorLiteral.sksl Allow constant propagation for negated constant-vectors and ints. 2020-11-05 17:39:48 +00:00
NoFragCoordsPos.vert Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
NoFragCoordsPosRT.vert Add golden outputs for the Metal backend. 2020-09-25 17:46:43 +00:00
NormalizationGeo.geom Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
NormalizationVert.vert Add golden outputs for the Metal backend. 2020-09-25 17:46:43 +00:00
NumberConversions.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
Offset.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
Operators.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
Ossfuzz26167.sksl Fix use-after-free discovered by fuzzer. 2020-10-23 16:10:15 +00:00
Ossfuzz27614.sksl Add fix for fuzzer-discovered crash at oss-fuzz:27614. 2020-11-18 21:01:15 +00:00
OutParams.sksl Update OutParams unit test to demonstrate SkSL failure. 2020-09-28 14:09:03 +00:00
OutParamsTricky.sksl Add 'tricky' OutParams golden output. 2020-09-28 18:52:13 +00:00
RectangleTexture.sksl Add golden outputs for the Metal backend. 2020-09-25 17:46:43 +00:00
ResizeMatrix.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
SampleMask.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
ScopedSymbol.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
ShortCircuitBoolFolding.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
StackingVectorCasts.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
StaticIf.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
StaticSwitch.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
StaticSwitchWithBreak.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
StaticSwitchWithBreakInsideBlock.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
StaticSwitchWithConditionalBreak.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
StaticSwitchWithConditionalBreakInsideBlock.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
StaticSwitchWithFallthroughA.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
StaticSwitchWithFallthroughB.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
StaticSwitchWithStaticConditionalBreak.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
StaticSwitchWithStaticConditionalBreakInsideBlock.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
StructMaxDepth.sksl Limit struct nesting depth to a maximum of eight levels. 2020-11-10 16:58:37 +00:00
Structs.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
Switch.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
SwitchContainingDeadCode.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
SwitchWithFallthrough.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
SwizzleBoolConstants.sksl Add golden outputs for the Metal backend. 2020-09-25 17:46:43 +00:00
SwizzleConstants.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
SwizzleLTRB.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
SwizzleOpt.sksl Optimize swizzled multiple-argument constructors. 2020-11-19 17:10:11 +00:00
SwizzleScalar.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
TernaryAsLValueEntirelyFoldable.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
TernaryAsLValueFoldableTest.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
Texture1D.sksl Split Texture test into separate 1D and 2D tests. 2020-11-02 14:39:31 +00:00
Texture2D.sksl Split Texture test into separate 1D and 2D tests. 2020-11-02 14:39:31 +00:00
TextureSharpen.sksl Detect non-2D textures in MetalCodeGenerator and fail cleanly 2020-10-02 20:36:04 +00:00
UnaryPositiveNegative.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
UnusedVariables.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
VectorConstructors.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
VectorFolding.sksl Add fix for fuzzer-discovered crash with negated constructors. 2020-11-18 21:53:45 +00:00
VertexID.vert Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00
Width.sksl Migrate most SkSL tests currently in /glsl/ to /shared/. 2020-09-25 17:13:53 +00:00