skia2/tests/sksl/intrinsics/OuterProduct.sksl
John Stiles 8298f6d885 Fix 4x4 outerProduct, and add unit tests.
We are still missing an implementation for Metal and SPIR-V, but at
least it's correct on GLSL now.

Change-Id: I5b365384eaefacb00faf6af7bda9b690cba00de5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/345397
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-12-17 18:23:55 +00:00

27 lines
1012 B
Plaintext

in half2 h2;
in half3 h3;
in half4 h4;
in float2 f2;
in float3 f3;
in float4 f4;
void main() {
sk_FragColor = half4(outerProduct(f2, f2)[1].xyyy);
sk_FragColor = half4(outerProduct(f3, f3)[2].xyzz);
sk_FragColor = half4(outerProduct(f4, f4)[3]);
sk_FragColor = half4(outerProduct(f3, f2)[1].xyzz);
sk_FragColor = half4(outerProduct(f2, f3)[2].xyyy);
sk_FragColor = half4(outerProduct(f4, f2)[1]);
sk_FragColor = half4(outerProduct(f2, f4)[3].xyyy);
sk_FragColor = half4(outerProduct(f4, f3)[2]);
sk_FragColor = half4(outerProduct(f3, f4)[3].xyzz);
sk_FragColor = outerProduct(h2, h2)[1].xyyy;
sk_FragColor = outerProduct(h3, h3)[2].xyzz;
sk_FragColor = outerProduct(h4, h4)[3];
sk_FragColor = outerProduct(h3, h2)[1].xyzz;
sk_FragColor = outerProduct(h2, h3)[2].xyyy;
sk_FragColor = outerProduct(h4, h2)[1];
sk_FragColor = outerProduct(h2, h4)[3].xyyy;
sk_FragColor = outerProduct(h4, h3)[2];
sk_FragColor = outerProduct(h3, h4)[3].xyzz;
}