xref: /aosp_15_r20/external/skia/tests/sksl/shared/MatrixEquality.wgsl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1diagnostic(off, derivative_uniformity);
2diagnostic(off, chromium.unreachable_code);
3struct FSOut {
4  @location(0) sk_FragColor: vec4<f32>,
5};
6struct _GlobalUniforms {
7  colorGreen: vec4<f32>,
8  colorRed: vec4<f32>,
9  testMatrix2x2: mat2x2<f32>,
10  testMatrix3x3: mat3x3<f32>,
11};
12@binding(0) @group(0) var<uniform> _globalUniforms: _GlobalUniforms;
13fn _skslMain(coords: vec2<f32>) -> vec4<f32> {
14  {
15    var _0_ok: bool = true;
16    const _skTemp0 = mat2x2<f32>(1.0, 2.0, 3.0, 4.0);
17    _0_ok = _0_ok && (all(_globalUniforms.testMatrix2x2[0] == _skTemp0[0]) && all(_globalUniforms.testMatrix2x2[1] == _skTemp0[1]));
18    const _skTemp1 = mat3x3<f32>(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0);
19    _0_ok = _0_ok && (all(_globalUniforms.testMatrix3x3[0] == _skTemp1[0]) && all(_globalUniforms.testMatrix3x3[1] == _skTemp1[1]) && all(_globalUniforms.testMatrix3x3[2] == _skTemp1[2]));
20    const _skTemp2 = mat2x2<f32>(100.0, 0.0, 0.0, 100.0);
21    _0_ok = _0_ok && (any(_globalUniforms.testMatrix2x2[0] != _skTemp2[0]) || any(_globalUniforms.testMatrix2x2[1] != _skTemp2[1]));
22    const _skTemp3 = mat3x3<f32>(9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0);
23    _0_ok = _0_ok && (any(_globalUniforms.testMatrix3x3[0] != _skTemp3[0]) || any(_globalUniforms.testMatrix3x3[1] != _skTemp3[1]) || any(_globalUniforms.testMatrix3x3[2] != _skTemp3[2]));
24    let _1_zero: f32 = f32(_globalUniforms.colorGreen.x);
25    let _2_one: f32 = f32(_globalUniforms.colorGreen.y);
26    let _3_two: f32 = 2.0 * _2_one;
27    let _4_nine: f32 = 9.0 * _2_one;
28    let _skTemp4 = mat2x2<f32>(_2_one, _1_zero, _1_zero, _2_one);
29    const _skTemp5 = mat2x2<f32>(1.0, 0.0, 0.0, 1.0);
30    _0_ok = _0_ok && (all(_skTemp4[0] == _skTemp5[0]) && all(_skTemp4[1] == _skTemp5[1]));
31    let _skTemp6 = vec2<f32>(_2_one);
32    let _skTemp7 = mat2x2<f32>(_2_one, _1_zero, _skTemp6[0], _skTemp6[1]);
33    const _skTemp8 = mat2x2<f32>(1.0, 0.0, 0.0, 1.0);
34    _0_ok = _0_ok && (any(_skTemp7[0] != _skTemp8[0]) || any(_skTemp7[1] != _skTemp8[1]));
35    let _skTemp9 = mat2x2<f32>(_2_one, 0.0, 0.0, _2_one);
36    const _skTemp10 = mat2x2<f32>(1.0, 0.0, 0.0, 1.0);
37    _0_ok = _0_ok && (all(_skTemp9[0] == _skTemp10[0]) && all(_skTemp9[1] == _skTemp10[1]));
38    let _skTemp11 = mat2x2<f32>(_2_one, 0.0, 0.0, _2_one);
39    const _skTemp12 = mat2x2<f32>(0.0, 0.0, 0.0, 0.0);
40    _0_ok = _0_ok && (any(_skTemp11[0] != _skTemp12[0]) || any(_skTemp11[1] != _skTemp12[1]));
41    let _skTemp13 = -_2_one;
42    let _skTemp14 = mat2x2<f32>(_skTemp13, 0.0, 0.0, _skTemp13);
43    const _skTemp15 = mat2x2<f32>(-1.0, 0.0, 0.0, -1.0);
44    _0_ok = _0_ok && (all(_skTemp14[0] == _skTemp15[0]) && all(_skTemp14[1] == _skTemp15[1]));
45    let _skTemp16 = mat2x2<f32>(_1_zero, 0.0, 0.0, _1_zero);
46    const _skTemp17 = mat2x2<f32>(-0.0, 0.0, 0.0, -0.0);
47    _0_ok = _0_ok && (all(_skTemp16[0] == _skTemp17[0]) && all(_skTemp16[1] == _skTemp17[1]));
48    let _skTemp18 = -_2_one;
49    let _skTemp19 = (-1.0 * mat2x2<f32>(_skTemp18, 0.0, 0.0, _skTemp18));
50    const _skTemp20 = mat2x2<f32>(1.0, 0.0, 0.0, 1.0);
51    _0_ok = _0_ok && (all(_skTemp19[0] == _skTemp20[0]) && all(_skTemp19[1] == _skTemp20[1]));
52    let _skTemp21 = (-1.0 * mat2x2<f32>(_1_zero, 0.0, 0.0, _1_zero));
53    const _skTemp22 = mat2x2<f32>(-0.0, 0.0, 0.0, -0.0);
54    _0_ok = _0_ok && (all(_skTemp21[0] == _skTemp22[0]) && all(_skTemp21[1] == _skTemp22[1]));
55    let _skTemp23 = mat2x2<f32>(_2_one, 0.0, 0.0, _2_one);
56    const _skTemp24 = mat2x2<f32>(1.0, 0.0, 0.0, 1.0);
57    _0_ok = _0_ok && (all(_skTemp23[0] == _skTemp24[0]) && all(_skTemp23[1] == _skTemp24[1]));
58    let _skTemp25 = mat2x2<f32>(_3_two, 0.0, 0.0, _3_two);
59    const _skTemp26 = mat2x2<f32>(1.0, 0.0, 0.0, 1.0);
60    _0_ok = _0_ok && (any(_skTemp25[0] != _skTemp26[0]) || any(_skTemp25[1] != _skTemp26[1]));
61    let _skTemp27 = mat2x2<f32>(_2_one, 0.0, 0.0, _2_one);
62    const _skTemp28 = mat2x2<f32>(1.0, 0.0, 0.0, 1.0);
63    _0_ok = _0_ok && (all(_skTemp27[0] == _skTemp28[0]) && all(_skTemp27[1] == _skTemp28[1]));
64    let _skTemp29 = mat2x2<f32>(_2_one, 0.0, 0.0, _2_one);
65    const _skTemp30 = mat2x2<f32>(0.0, 0.0, 0.0, 0.0);
66    _0_ok = _0_ok && (any(_skTemp29[0] != _skTemp30[0]) || any(_skTemp29[1] != _skTemp30[1]));
67    let _skTemp31 = mat3x3<f32>(_2_one, _1_zero, _1_zero, _1_zero, _2_one, _1_zero, _1_zero, _1_zero, _2_one);
68    const _skTemp32 = mat2x2<f32>(1.0, 0.0, 0.0, 1.0);
69    const _skTemp33 = mat3x3<f32>(_skTemp32[0][0], _skTemp32[0][1], 0.0, _skTemp32[1][0], _skTemp32[1][1], 0.0, 0.0, 0.0, 1.0);
70    _0_ok = _0_ok && (all(_skTemp31[0] == _skTemp33[0]) && all(_skTemp31[1] == _skTemp33[1]) && all(_skTemp31[2] == _skTemp33[2]));
71    let _skTemp34 = mat3x3<f32>(_4_nine, _1_zero, _1_zero, _1_zero, _4_nine, _1_zero, _1_zero, _1_zero, _2_one);
72    const _skTemp35 = mat2x2<f32>(9.0, 0.0, 0.0, 9.0);
73    const _skTemp36 = mat3x3<f32>(_skTemp35[0][0], _skTemp35[0][1], 0.0, _skTemp35[1][0], _skTemp35[1][1], 0.0, 0.0, 0.0, 1.0);
74    _0_ok = _0_ok && (all(_skTemp34[0] == _skTemp36[0]) && all(_skTemp34[1] == _skTemp36[1]) && all(_skTemp34[2] == _skTemp36[2]));
75    let _skTemp37 = mat3x3<f32>(_2_one, 0.0, 0.0, 0.0, _2_one, 0.0, 0.0, 0.0, _2_one);
76    const _skTemp38 = mat2x2<f32>(1.0, 0.0, 0.0, 1.0);
77    const _skTemp39 = mat3x3<f32>(_skTemp38[0][0], _skTemp38[0][1], 0.0, _skTemp38[1][0], _skTemp38[1][1], 0.0, 0.0, 0.0, 1.0);
78    _0_ok = _0_ok && (all(_skTemp37[0] == _skTemp39[0]) && all(_skTemp37[1] == _skTemp39[1]) && all(_skTemp37[2] == _skTemp39[2]));
79    let _skTemp40 = mat3x3<f32>(_4_nine, 0.0, 0.0, 0.0, _4_nine, 0.0, 0.0, 0.0, _2_one);
80    const _skTemp41 = mat2x2<f32>(9.0, 0.0, 0.0, 9.0);
81    const _skTemp42 = mat3x3<f32>(_skTemp41[0][0], _skTemp41[0][1], 0.0, _skTemp41[1][0], _skTemp41[1][1], 0.0, 0.0, 0.0, 1.0);
82    _0_ok = _0_ok && (all(_skTemp40[0] == _skTemp42[0]) && all(_skTemp40[1] == _skTemp42[1]) && all(_skTemp40[2] == _skTemp42[2]));
83    let _skTemp43 = mat3x3<f32>(_2_one, 0.0, 0.0, 0.0, _2_one, 0.0, 0.0, 0.0, _2_one);
84    let _skTemp44 = mat2x2<f32>(_skTemp43[0][0], _skTemp43[0][1], _skTemp43[1][0], _skTemp43[1][1]);
85    const _skTemp45 = mat2x2<f32>(1.0, 0.0, 0.0, 1.0);
86    _0_ok = _0_ok && (all(_skTemp44[0] == _skTemp45[0]) && all(_skTemp44[1] == _skTemp45[1]));
87    let _skTemp46 = mat3x3<f32>(_2_one, 0.0, 0.0, 0.0, _2_one, 0.0, 0.0, 0.0, _2_one);
88    let _skTemp47 = mat2x2<f32>(_skTemp46[0][0], _skTemp46[0][1], _skTemp46[1][0], _skTemp46[1][1]);
89    const _skTemp48 = mat2x2<f32>(1.0, 0.0, 0.0, 1.0);
90    _0_ok = _0_ok && (all(_skTemp47[0] == _skTemp48[0]) && all(_skTemp47[1] == _skTemp48[1]));
91    let _skTemp49 = mat2x2<f32>(_2_one, _1_zero, _1_zero, _2_one);
92    const _skTemp50 = mat2x2<f32>(1.0, 0.0, 0.0, 1.0);
93    _0_ok = _0_ok && (all(_skTemp49[0] == _skTemp50[0]) && all(_skTemp49[1] == _skTemp50[1]));
94    let _skTemp51 = mat2x2<f32>(_2_one, _1_zero, _1_zero, _2_one);
95    const _skTemp52 = mat2x2<f32>(1.0, 0.0, 0.0, 1.0);
96    _0_ok = _0_ok && (all(_skTemp51[0] == _skTemp52[0]) && all(_skTemp51[1] == _skTemp52[1]));
97    let _skTemp53 = mat2x2<f32>(_2_one, _1_zero, _1_zero, _2_one);
98    const _skTemp54 = mat2x2<f32>(1.0, 0.0, 0.0, 1.0);
99    _0_ok = _0_ok && (all(_skTemp53[0] == _skTemp54[0]) && all(_skTemp53[1] == _skTemp54[1]));
100    _0_ok = _0_ok && all((vec4<f32>(vec4<f32>(_globalUniforms.testMatrix2x2[0], _globalUniforms.testMatrix2x2[1])) * vec4<f32>(_2_one)) == vec4<f32>(1.0, 2.0, 3.0, 4.0));
101    _0_ok = _0_ok && all((vec4<f32>(vec4<f32>(_globalUniforms.testMatrix2x2[0], _globalUniforms.testMatrix2x2[1])) * vec4<f32>(_2_one)) == vec4<f32>(vec4<f32>(_globalUniforms.testMatrix2x2[0], _globalUniforms.testMatrix2x2[1])));
102    _0_ok = _0_ok && all((vec4<f32>(vec4<f32>(_globalUniforms.testMatrix2x2[0], _globalUniforms.testMatrix2x2[1])) * vec4<f32>(_1_zero)) == vec4<f32>(0.0));
103    let _5_m: mat3x3<f32> = mat3x3<f32>(_2_one, _3_two, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, _4_nine);
104    _0_ok = _0_ok && all(_5_m[0] == vec3<f32>(1.0, 2.0, 3.0));
105    _0_ok = _0_ok && all(_5_m[1] == vec3<f32>(4.0, 5.0, 6.0));
106    _0_ok = _0_ok && all(_5_m[2] == vec3<f32>(7.0, 8.0, 9.0));
107    _0_ok = _0_ok && (_5_m[0].x == 1.0);
108    _0_ok = _0_ok && (_5_m[0].y == 2.0);
109    _0_ok = _0_ok && (_5_m[0].z == 3.0);
110    _0_ok = _0_ok && (_5_m[1].x == 4.0);
111    _0_ok = _0_ok && (_5_m[1].y == 5.0);
112    _0_ok = _0_ok && (_5_m[1].z == 6.0);
113    _0_ok = _0_ok && (_5_m[2].x == 7.0);
114    _0_ok = _0_ok && (_5_m[2].y == 8.0);
115    _0_ok = _0_ok && (_5_m[2].z == 9.0);
116    return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4<bool>(_0_ok));
117  }
118}
119@fragment fn main() -> FSOut {
120  var _stageOut: FSOut;
121  _stageOut.sk_FragColor = _skslMain(/*fragcoord*/ vec2<f32>());
122  return _stageOut;
123}
124