skia2/resources/sksl/shared
Brian Salomon d8d85b9b89 Reland "Don't key progams/pipelines on origin.""
Reland works around Adreno issue with this formulation of sk_Clockwise:
 (sk_RTFlip.y < 0.0 ? !gl_FrontFacing : gl_FrontFacing)

and instead adds this to the top of the function:
 bool sk_Clockwise = gl_FrontFacing;
 if (sk_RTFlip.y < 0.0) {
      sk_Clockwise = !sk_Clockwise;
 }

Original description:

SkSL language features that are origin sensitive now use a uniform
to conditionally flip their result rather than generating different
code.

Previously we would insert a "rt height" uniform if sk_FragCoord needed
to be flipped. sk_FragCoord,y was implemented as "realFragCoord.y" or
"rtHeight - realFragCoord.y" depending on SkSL::ProgramSettings::fFlipY.

Now we instead use a two component vector rtFlip and sk_FragCoord.y is
always "rtFlip.x + rtFlip.y*realFragCoord.y". We configure rtFlip as
either (0, 1) or (rtHeight, -1). sk_Clockwise and dFdy simiarly use
rtFlip.y to emit code that always works with either origin.

Bug: skia:12037
Change-Id: I3a2ad6f5667eb4dcd823b939abd5698f89b58929
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/425178
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2021-07-07 14:50:10 +00:00
..
ArrayComparison.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
ArrayConstructors.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
ArrayIndexTypes.sksl
ArrayTypes.sksl Fix array-of-struct name mangling in Pipeline stage. 2021-04-28 21:02:36 +00:00
Assignment.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
Caps.sksl
CastsRoundTowardZero.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
Clockwise.sksl
CommaMixedTypes.sksl Remove usage of sqrt() as an optimization barrier in tests. 2021-05-24 17:18:54 +00:00
CommaSideEffects.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
ComplexDelete.sksl
ConstantIf.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
ConstArray.sksl Enable proper testing of const arrays. 2021-05-14 13:37:12 +00:00
ConstVariableComparison.sksl Cleanup TODO for constant-expression handling. 2021-05-14 13:36:33 +00:00
Control.sksl Remove usage of sqrt() as an optimization barrier in tests. 2021-05-24 17:18:54 +00:00
DeadDoWhileLoop.sksl
DeadIfStatement.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
DeadLoopVariable.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
DeadReturn.sksl Reland "Eliminate unreachable code during optimization." 2021-05-20 20:02:15 +00:00
DeadReturnES3.sksl Reland "Eliminate unreachable code during optimization." 2021-05-20 20:02:15 +00:00
DeadStripFunctions.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
DependentInitializers.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
Derivatives.sksl
DerivativesUnused.sksl
Discard.sksl Optimize @switch statements in SwitchStatement::Make. 2021-02-23 21:36:04 +00:00
DoWhileControlFlow.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
EmptyBlocksES2.sksl Remove usage of sqrt() as an optimization barrier in tests. 2021-05-24 17:18:54 +00:00
EmptyBlocksES3.sksl Remove usage of sqrt() as an optimization barrier in tests. 2021-05-24 17:18:54 +00:00
Enum.sksl Remove SkBlendMode from SkSL 2021-06-16 21:01:30 +00:00
ForLoopControlFlow.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
ForLoopMultipleInit.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
FragCoords.sksl Reland "Don't key progams/pipelines on origin."" 2021-07-07 14:50:10 +00:00
FunctionArgTypeMatch.sksl Allow function declarations to take (void). 2021-05-21 19:21:23 +00:00
FunctionPrototype.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
FunctionReturnTypeMatch.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
Functions.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
GaussianBlur.sksl
GeometricIntrinsics.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
Geometry.geom
GeometryExtension.geom
GeometryGSInvocations.geom
GeometryNoGSInvocations.geom
GeometryNoGSInvocationsReorder.geom
HelloWorld.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
Hex.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
HexUnsigned.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
InstanceID.vert
InterfaceBlockNamed.sksl
InterfaceBlockNamedArray.sksl Add default uniform binding value for Metal/SPIR-V. 2021-01-28 19:23:49 +00:00
Matrices.sksl Fix comma operator support with matrices in Metal. 2021-05-20 18:08:35 +00:00
MatricesNonsquare.sksl Add GLSL workaround for 4x2 diagonal matrix bug. 2021-05-18 22:50:19 +00:00
MatrixEquality.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
MatrixScalarSplat.sksl Enable proper testing of matrix-scalar ops. 2021-05-17 17:36:22 +00:00
MultipleAssignments.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
NegatedVectorLiteral.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
NoFragCoordsPos.vert Change sksl tests to avoid SPIR-V validation errors 2021-03-16 13:39:53 +00:00
NoFragCoordsPosRT.vert Change sksl tests to avoid SPIR-V validation errors 2021-03-16 13:39:53 +00:00
NormalizationGeo.geom
NormalizationVert.vert
NumberCasts.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
NumberConversions.sksl Remove usage of sqrt() as an optimization barrier in tests. 2021-05-24 17:18:54 +00:00
Offset.sksl
OperatorsES2.sksl Remove usage of sqrt() as an optimization barrier in tests. 2021-05-24 17:18:54 +00:00
OperatorsES3.sksl Remove usage of sqrt() as an optimization barrier in tests. 2021-05-24 17:18:54 +00:00
Ossfuzz26167.sksl
Ossfuzz26759.sksl Fix up outdated tests. 2021-03-22 21:11:47 +00:00
Ossfuzz28794.sksl
Ossfuzz28904.sksl
Ossfuzz29085.sksl Fix various fuzzer-generated tests. 2021-04-12 13:44:59 +00:00
Ossfuzz29494.sksl Use unsigned values when constant-folding integer vectors 2021-02-01 21:44:28 +00:00
OutParams.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
OutParamsNoInline.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
OutParamsTricky.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
Overflow.sksl Prevent overflow of integral types during constant-folding. 2021-05-27 20:12:57 +00:00
RectangleTexture.sksl
ResizeMatrix.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
ResizeMatrixNonsquare.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
ReturnBadTypeFromMain.sksl Support half4 return values from main() in the SPIR-V code generator. 2021-01-27 02:46:03 +00:00
ReturnColorFromMain.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
ReturnsValueOnEveryPathES2.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
ReturnsValueOnEveryPathES3.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
SampleLocations.vert
ScalarConversionConstructorsES2.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
ScalarConversionConstructorsES3.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
ScopedSymbol.sksl
StackingVectorCasts.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
StaticIf.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
StaticSwitch.sksl Enable additional SkSL tests which require non-ES2 features. 2021-05-17 20:24:50 +00:00
StaticSwitchWithBreak.sksl
StaticSwitchWithBreakInsideBlock.sksl
StaticSwitchWithConditionalBreak.sksl Remove usage of sqrt() as an optimization barrier in tests. 2021-05-24 17:18:54 +00:00
StaticSwitchWithConditionalBreakInsideBlock.sksl Remove usage of sqrt() as an optimization barrier in tests. 2021-05-24 17:18:54 +00:00
StaticSwitchWithContinue.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
StaticSwitchWithFallthroughA.sksl
StaticSwitchWithFallthroughB.sksl
StaticSwitchWithStaticConditionalBreak.sksl
StaticSwitchWithStaticConditionalBreakInsideBlock.sksl
StructMaxDepth.sksl
Structs.sksl
StructsInFunctions.sksl Reland "Implement operator== and != for Metal structs and arrays." 2021-04-29 22:55:58 +00:00
Switch.sksl Remove usage of sqrt() as an optimization barrier in tests. 2021-05-24 17:18:54 +00:00
SwitchContainingDeadCode.sksl Remove usage of sqrt() as an optimization barrier in tests. 2021-05-24 17:18:54 +00:00
SwitchWithFallthrough.sksl Remove usage of sqrt() as an optimization barrier in tests. 2021-05-24 17:18:54 +00:00
SwizzleBoolConstants.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
SwizzleByConstantIndex.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
SwizzleByIndex.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
SwizzleConstants.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
SwizzleLTRB.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
SwizzleOpt.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
SwizzleScalar.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
TernaryAsLValueEntirelyFoldable.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
TernaryAsLValueFoldableTest.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
TernaryExpression.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
Texture1D.sksl
Texture2D.sksl
TextureSharpen.sksl
UnaryPositiveNegative.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
UniformArray.sksl Add default uniform set value to SkSL Program settings. 2021-01-27 00:52:16 +00:00
UniformBuffers.sksl Add default uniform binding value for Metal/SPIR-V. 2021-01-28 19:23:49 +00:00
Uniforms.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
UnusedVariables.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
VectorConstructors.sksl Remove usage of sqrt() as an optimization barrier in tests. 2021-05-24 17:18:54 +00:00
VectorScalarMath.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
VertexEarlyReturn.vert
VertexID.vert
WhileLoopControlFlow.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00