c2c1b0c460
Change-Id: I2bd6bf9c368359a2b21861c1b6f621040d335111 Bug: skia:11009 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/367056 Auto-Submit: John Stiles <johnstiles@google.com> Commit-Queue: Ethan Nicholas <ethannicholas@google.com> Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
49 lines
1.2 KiB
Plaintext
49 lines
1.2 KiB
Plaintext
uniform half4 colorRed, colorGreen, testInputs;
|
|
|
|
half fn(half4 v) {
|
|
// Add an un-inlinable construct to ensure that fn() remains a standalone function.
|
|
for (int x=1; x<=2; ++x) {
|
|
return v.x;
|
|
}
|
|
}
|
|
|
|
half4 main() {
|
|
half4 v = testInputs;
|
|
|
|
v = v.rgba;
|
|
v = v.rgb0.abgr;
|
|
v = v.rgba.00ra;
|
|
v = v.rgba.rrra.00ra.11ab;
|
|
v = v.abga.gb11;
|
|
v = v.abgr.abgr;
|
|
v = half4(v.rrrr.bb, 1, 1);
|
|
v = half4(v.ba.grgr);
|
|
|
|
// The swizzle will not be optimized away to avoid eliminating fn().
|
|
v = half3(fn(v), 123, 456).yyzz;
|
|
v = half3(fn(v), half2(123, 456)).yyzz;
|
|
|
|
// The swizzle will be optimized away because fn() can be reordered.
|
|
v = half3(fn(v), 123, 456).yzzx;
|
|
v = half3(fn(v), half2(123, 456)).yzzx;
|
|
|
|
// The swizzle will not be optimized away to avoid duplicating fn().
|
|
v = half3(fn(v), 123, 456).yxxz;
|
|
v = half3(fn(v), half2(123, 456)).yxxz;
|
|
|
|
// Swizzled constants.
|
|
v = half4(1, 2, 3, 4).xxyz;
|
|
|
|
// Swizzled uniforms mixed with constants.
|
|
v = half4(1, colorRed.rgb).yzwx;
|
|
v = half4(1, colorRed.rgb).yxzw;
|
|
|
|
// Left-side swizzles.
|
|
v.rgba = v;
|
|
v.abgr = v;
|
|
v.rgba.ra = v.gb;
|
|
v.abgr.gba = v.aa1;
|
|
|
|
return v == half4(1) ? colorGreen : colorRed;
|
|
}
|