skia2/tests/sksl/shared
John Stiles 0777ac4778 Optimize swizzled multiple-argument constructors.
This will reorder constructors with swizzles applied, such as
    `half4(1, 2, 3, 4).xxyz` --> `half4(1, 1, 2, 3)`
    `half4(1, colRGB).yzwx` --> `half4(colRGB.x, colRGB.y, colRGB.z, 1)`

Note that, depending on the swizzle components, some elements of the
constructor may be duplicated and others may be eliminated. The
optimizer makes sure to leave the swizzle alone if it would duplicate
anything non-trivial, or if it would eliminate anything with a side
effect.

Change-Id: I470fda217ae8cf5828406b89a5696ca6aebf608d
Bug: skia:10954
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/335860
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2020-11-19 17:10:11 +00:00
..
golden Optimize swizzled multiple-argument constructors. 2020-11-19 17:10:11 +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