xref: /aosp_15_r20/external/skia/tests/sksl/folding/MatrixFoldingES2.wgsl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1diagnostic(off, derivative_uniformity);
2diagnostic(off, chromium.unreachable_code);
3struct _GlobalUniforms {
4  testMatrix2x2: mat2x2<f32>,
5  colorRed: vec4<f32>,
6  colorGreen: vec4<f32>,
7  unknownInput: f32,
8};
9@binding(0) @group(0) var<uniform> _globalUniforms: _GlobalUniforms;
10fn test_matrix_op_scalar_float_b() -> bool {
11  {
12    const ok: bool = true;
13    return ok;
14  }
15}
16fn test_matrix_op_scalar_half_b() -> bool {
17  {
18    const ok: bool = true;
19    return ok;
20  }
21}
22fn test_matrix_op_matrix_float_b() -> bool {
23  {
24    const ok: bool = true;
25    return ok;
26  }
27}
28fn test_matrix_op_matrix_half_b() -> bool {
29  {
30    const ok: bool = true;
31    return ok;
32  }
33}
34fn test_vector_op_matrix_float_b() -> bool {
35  {
36    const ok: bool = true;
37    return ok;
38  }
39}
40fn test_vector_op_matrix_half_b() -> bool {
41  {
42    const ok: bool = true;
43    return ok;
44  }
45}
46fn test_matrix_op_vector_float_b() -> bool {
47  {
48    const ok: bool = true;
49    return ok;
50  }
51}
52fn test_matrix_op_vector_half_b() -> bool {
53  {
54    const ok: bool = true;
55    return ok;
56  }
57}
58fn _skslMain(coords: vec2<f32>) -> vec4<f32> {
59  {
60    var _0_ok: bool = true;
61    let _skTemp0 = f32(_globalUniforms.unknownInput);
62    let _skTemp1 = mat3x3<f32>(_skTemp0, 0.0, 0.0, 0.0, _skTemp0, 0.0, 0.0, 0.0, _skTemp0);
63    const _skTemp2 = mat2x2<f32>(1.0, 0.0, 0.0, 1.0);
64    const _skTemp3 = mat3x3<f32>(_skTemp2[0][0], _skTemp2[0][1], 0.0, _skTemp2[1][0], _skTemp2[1][1], 0.0, 0.0, 0.0, 1.0);
65    _0_ok = _0_ok && (all(_skTemp1[0] == _skTemp3[0]) && all(_skTemp1[1] == _skTemp3[1]) && all(_skTemp1[2] == _skTemp3[2]));
66    let _skTemp4 = mat3x3<f32>(9.0, 0.0, 0.0, 0.0, 9.0, 0.0, 0.0, 0.0, f32(_globalUniforms.unknownInput));
67    const _skTemp5 = mat2x2<f32>(9.0, 0.0, 0.0, 9.0);
68    const _skTemp6 = mat3x3<f32>(_skTemp5[0][0], _skTemp5[0][1], 0.0, _skTemp5[1][0], _skTemp5[1][1], 0.0, 0.0, 0.0, 1.0);
69    _0_ok = _0_ok && (all(_skTemp4[0] == _skTemp6[0]) && all(_skTemp4[1] == _skTemp6[1]) && all(_skTemp4[2] == _skTemp6[2]));
70    _0_ok = _0_ok && all(vec4<f32>(_globalUniforms.testMatrix2x2[0], _globalUniforms.testMatrix2x2[1]) == vec4<f32>(1.0, 2.0, 3.0, 4.0));
71    {
72      let _skTemp7 = mat2x2<f32>(_globalUniforms.testMatrix2x2);
73      let _skTemp8 = mat3x3<f32>(mat3x3<f32>(_skTemp7[0][0], _skTemp7[0][1], 0.0, _skTemp7[1][0], _skTemp7[1][1], 0.0, 0.0, 0.0, 1.0));
74      _0_ok = _0_ok && all(mat4x4<f32>(_skTemp8[0][0], _skTemp8[0][1], _skTemp8[0][2], 0.0, _skTemp8[1][0], _skTemp8[1][1], _skTemp8[1][2], 0.0, _skTemp8[2][0], _skTemp8[2][1], _skTemp8[2][2], 0.0, 0.0, 0.0, 0.0, 1.0)[0] == vec4<f32>(1.0, 2.0, 0.0, 0.0));
75      let _skTemp9 = mat2x2<f32>(_globalUniforms.testMatrix2x2);
76      let _skTemp10 = mat3x3<f32>(mat3x3<f32>(_skTemp9[0][0], _skTemp9[0][1], 0.0, _skTemp9[1][0], _skTemp9[1][1], 0.0, 0.0, 0.0, 1.0));
77      _0_ok = _0_ok && all(mat4x4<f32>(_skTemp10[0][0], _skTemp10[0][1], _skTemp10[0][2], 0.0, _skTemp10[1][0], _skTemp10[1][1], _skTemp10[1][2], 0.0, _skTemp10[2][0], _skTemp10[2][1], _skTemp10[2][2], 0.0, 0.0, 0.0, 0.0, 1.0)[1] == vec4<f32>(3.0, 4.0, 0.0, 0.0));
78    }
79    var _skTemp11: vec4<f32>;
80    var _skTemp12: bool;
81    var _skTemp13: bool;
82    var _skTemp14: bool;
83    var _skTemp15: bool;
84    var _skTemp16: bool;
85    var _skTemp17: bool;
86    var _skTemp18: bool;
87    var _skTemp19: bool;
88    if _0_ok {
89      let _skTemp20 = test_matrix_op_scalar_float_b();
90      _skTemp19 = _skTemp20;
91    } else {
92      _skTemp19 = false;
93    }
94    if _skTemp19 {
95      let _skTemp21 = test_matrix_op_scalar_half_b();
96      _skTemp18 = _skTemp21;
97    } else {
98      _skTemp18 = false;
99    }
100    if _skTemp18 {
101      let _skTemp22 = test_matrix_op_matrix_float_b();
102      _skTemp17 = _skTemp22;
103    } else {
104      _skTemp17 = false;
105    }
106    if _skTemp17 {
107      let _skTemp23 = test_matrix_op_matrix_half_b();
108      _skTemp16 = _skTemp23;
109    } else {
110      _skTemp16 = false;
111    }
112    if _skTemp16 {
113      let _skTemp24 = test_vector_op_matrix_float_b();
114      _skTemp15 = _skTemp24;
115    } else {
116      _skTemp15 = false;
117    }
118    if _skTemp15 {
119      let _skTemp25 = test_vector_op_matrix_half_b();
120      _skTemp14 = _skTemp25;
121    } else {
122      _skTemp14 = false;
123    }
124    if _skTemp14 {
125      let _skTemp26 = test_matrix_op_vector_float_b();
126      _skTemp13 = _skTemp26;
127    } else {
128      _skTemp13 = false;
129    }
130    if _skTemp13 {
131      let _skTemp27 = test_matrix_op_vector_half_b();
132      _skTemp12 = _skTemp27;
133    } else {
134      _skTemp12 = false;
135    }
136    if _skTemp12 {
137      _skTemp11 = _globalUniforms.colorGreen;
138    } else {
139      _skTemp11 = _globalUniforms.colorRed;
140    }
141    return _skTemp11;
142  }
143}
144@fragment fn main(@location(0) _coords: vec2<f32>) -> @location(0) vec4<f32> {
145  return _skslMain(_coords);
146}
147