skia2/resources/sksl/intrinsics
John Stiles 368166262a Add trunc/round/roundEven SKSL ES3 public APIs.
Improved tests caught a longstanding bug in the compile-time
optimization logic for round/roundEven. These would *always* round to an
even number even when it didn't make sense to do so. (e.g. 3.1 would
round to 4.)

RoundEven isn't available in lower shader models of Direct3D;
SPIRV-Cross throws if it's unavailable. We may need a caps bit for this.

Change-Id: I3cc50238a2116b8d4e2c4059730d8b5cfb2bb056
Bug: skia:12022, skia:12352
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/441078
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-08-23 15:44:15 +00:00
..
AbsFloat.sksl Evaluate single-argument generic intrinsics at compile time. 2021-05-10 14:50:50 +00:00
AbsInt.sksl Evaluate single-argument generic intrinsics at compile time. 2021-05-10 14:50:50 +00:00
Acos.sksl Evaluate various single-argument float intrinsics at compile time. 2021-05-07 14:37:18 +00:00
Acosh.sksl Add ES3 Angle and Trigonometry methods to sksl_public. 2021-08-13 20:57:44 +00:00
All.sksl Optimize not() intrinsic. 2021-05-11 14:08:39 +00:00
Any.sksl Optimize not() intrinsic. 2021-05-11 14:08:39 +00:00
Asin.sksl Evaluate various single-argument float intrinsics at compile time. 2021-05-07 14:37:18 +00:00
Asinh.sksl Add ES3 Angle and Trigonometry methods to sksl_public. 2021-08-13 20:57:44 +00:00
Atan.sksl Implement compile-time optimization for atan(). 2021-06-01 15:16:43 +00:00
Atanh.sksl Add ES3 Angle and Trigonometry methods to sksl_public. 2021-08-13 20:57:44 +00:00
BitCount.sksl Change sksl tests to avoid SPIR-V validation errors 2021-03-16 13:39:53 +00:00
Ceil.sksl Evaluate various single-argument float intrinsics at compile time. 2021-05-07 14:37:18 +00:00
ClampFloat.sksl Implement compile-time optimization for clamp(). 2021-05-25 16:25:42 +00:00
ClampInt.sksl Implement compile-time optimization for clamp(). 2021-05-25 16:25:42 +00:00
Cos.sksl Evaluate various single-argument float intrinsics at compile time. 2021-05-07 14:37:18 +00:00
Cosh.sksl Evaluate various single-argument float intrinsics at compile time. 2021-05-07 14:37:18 +00:00
Cross.sksl Implement compile-time optimization for cross(). 2021-06-01 15:51:53 +00:00
CrossNoInline.sksl Mangle function names in GLSL. 2021-03-22 17:18:26 +00:00
Degrees.sksl Optimize remaining simple 1-argument intrinsics. 2021-05-11 16:44:09 +00:00
Determinant.sksl Implement determinant() in SkSL ES3 public API. 2021-08-19 15:27:10 +00:00
DFdx.sksl Avoid mix-up between MAIN_COORDS and FRAGCOORD. 2021-08-18 20:11:19 +00:00
DFdy.sksl Avoid mix-up between MAIN_COORDS and FRAGCOORD. 2021-08-18 20:11:19 +00:00
Distance.sksl Implement compile-time optimization for distance(). 2021-05-26 14:11:58 +00:00
Dot.sksl Implement compile-time optimization for dot(). 2021-05-26 15:05:08 +00:00
Equal.sksl Allow compile-time intrinsic evaluation to read const variables. 2021-05-07 13:36:08 +00:00
Exp2.sksl Evaluate various single-argument float intrinsics at compile time. 2021-05-07 14:37:18 +00:00
Exp.sksl Evaluate various single-argument float intrinsics at compile time. 2021-05-07 14:37:18 +00:00
FaceForward.sksl Implement compile-time optimization for faceforward(). 2021-05-26 16:28:48 +00:00
FindLSB.sksl Change sksl tests to avoid SPIR-V validation errors 2021-03-16 13:39:53 +00:00
FindMSB.sksl Change sksl tests to avoid SPIR-V validation errors 2021-03-16 13:39:53 +00:00
FloatBitsToInt.sksl Add floatBitsToInt family of ES3 intrinsics to SkSL public ES3. 2021-08-20 14:58:44 +00:00
FloatBitsToUint.sksl Add floatBitsToInt family of ES3 intrinsics to SkSL public ES3. 2021-08-20 14:58:44 +00:00
Floor.sksl Evaluate various single-argument float intrinsics at compile time. 2021-05-07 14:37:18 +00:00
Fma.sksl Change sksl tests to avoid SPIR-V validation errors 2021-03-16 13:39:53 +00:00
Fract.sksl Evaluate various single-argument float intrinsics at compile time. 2021-05-07 14:37:18 +00:00
Frexp.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
Fwidth.sksl Change sksl tests to avoid SPIR-V validation errors 2021-03-16 13:39:53 +00:00
GreaterThan.sksl Allow compile-time intrinsic evaluation to read const variables. 2021-05-07 13:36:08 +00:00
GreaterThanEqual.sksl Allow compile-time intrinsic evaluation to read const variables. 2021-05-07 13:36:08 +00:00
IntBitsToFloat.sksl Add floatBitsToInt family of ES3 intrinsics to SkSL public ES3. 2021-08-20 14:58:44 +00:00
Inverse.sksl Fix crash when inverse() is passed a constant variable. 2021-08-17 21:11:24 +00:00
Inversesqrt.sksl Optimize remaining simple 1-argument intrinsics. 2021-05-11 16:44:09 +00:00
IsInf.sksl Change sksl tests to avoid SPIR-V validation errors 2021-03-16 13:39:53 +00:00
IsNan.sksl Change sksl tests to avoid SPIR-V validation errors 2021-03-16 13:39:53 +00:00
Ldexp.sksl Change sksl tests to avoid SPIR-V validation errors 2021-03-16 13:39:53 +00:00
Length.sksl Implement compile-time optimization for length(). 2021-05-26 00:58:53 +00:00
LessThan.sksl Allow compile-time intrinsic evaluation to read const variables. 2021-05-07 13:36:08 +00:00
LessThanEqual.sksl Allow compile-time intrinsic evaluation to read const variables. 2021-05-07 13:36:08 +00:00
Log2.sksl Evaluate various single-argument float intrinsics at compile time. 2021-05-07 14:37:18 +00:00
Log.sksl Evaluate various single-argument float intrinsics at compile time. 2021-05-07 14:37:18 +00:00
MatrixCompMult.sksl Implement compile-time optimization for matrixCompMult(). 2021-06-01 19:35:23 +00:00
MaxFloat.sksl Implement compile-time optimization for min() and max(). 2021-05-25 14:52:11 +00:00
MaxInt.sksl Implement compile-time optimization for min() and max(). 2021-05-25 14:52:11 +00:00
MinFloat.sksl Implement compile-time optimization for min() and max(). 2021-05-25 14:52:11 +00:00
MinInt.sksl Implement compile-time optimization for min() and max(). 2021-05-25 14:52:11 +00:00
MixBool.sksl Implement compile-time optimization for mix(). 2021-06-01 19:36:05 +00:00
MixFloat.sksl Implement compile-time optimization for mix(). 2021-06-01 19:36:05 +00:00
Mod.sksl Implement compile-time optimization for mod(). 2021-05-25 22:07:53 +00:00
Modf.sksl Reland "Add coords parameter to all .sksl test files used as runtime effects" 2021-04-27 20:47:31 +00:00
Normalize.sksl Implement compile-time optimization for normalize(). 2021-05-26 15:06:08 +00:00
Not.sksl Optimize not() intrinsic. 2021-05-11 14:08:39 +00:00
NotEqual.sksl Allow compile-time intrinsic evaluation to read const variables. 2021-05-07 13:36:08 +00:00
OuterProduct.sksl Change sksl tests to avoid SPIR-V validation errors 2021-03-16 13:39:53 +00:00
Pack.sksl Change sksl tests to avoid SPIR-V validation errors 2021-03-16 13:39:53 +00:00
Pow.sksl Implement compile-time optimization for pow(). 2021-05-26 19:54:09 +00:00
Radians.sksl Optimize remaining simple 1-argument intrinsics. 2021-05-11 16:44:09 +00:00
Reflect.sksl Implement compile-time optimization for reflect(). 2021-05-26 19:49:29 +00:00
Refract.sksl Implement compile-time optimization for refract(). 2021-05-26 19:55:39 +00:00
Round.sksl Add trunc/round/roundEven SKSL ES3 public APIs. 2021-08-23 15:44:15 +00:00
RoundEven.sksl Add trunc/round/roundEven SKSL ES3 public APIs. 2021-08-23 15:44:15 +00:00
Saturate.sksl Optimize remaining simple 1-argument intrinsics. 2021-05-11 16:44:09 +00:00
SignFloat.sksl Evaluate single-argument generic intrinsics at compile time. 2021-05-10 14:50:50 +00:00
SignInt.sksl Evaluate single-argument generic intrinsics at compile time. 2021-05-10 14:50:50 +00:00
Sin.sksl Evaluate various single-argument float intrinsics at compile time. 2021-05-07 14:37:18 +00:00
Sinh.sksl Evaluate various single-argument float intrinsics at compile time. 2021-05-07 14:37:18 +00:00
Smoothstep.sksl Implement compile-time optimization for smoothstep(). 2021-05-25 20:32:46 +00:00
Sqrt.sksl Implement compile-time optimization for sqrt(constant). 2021-05-25 04:43:10 +00:00
Step.sksl Implement compile-time optimization for step(). 2021-05-25 16:59:22 +00:00
Tan.sksl Evaluate various single-argument float intrinsics at compile time. 2021-05-07 14:37:18 +00:00
Tanh.sksl Evaluate various single-argument float intrinsics at compile time. 2021-05-07 14:37:18 +00:00
Transpose.sksl Add compile-time optimization for transpose(). 2021-08-18 13:49:04 +00:00
Trunc.sksl Add trunc/round/roundEven SKSL ES3 public APIs. 2021-08-23 15:44:15 +00:00
UintBitsToFloat.sksl Add floatBitsToInt family of ES3 intrinsics to SkSL public ES3. 2021-08-20 14:58:44 +00:00
Unpack.sksl Change sksl tests to avoid SPIR-V validation errors 2021-03-16 13:39:53 +00:00