| ### Compilation failed: |
| |
| error: :29:17 error: no matching overload for operator + (mat2x2<f32>, abstract-float) |
| |
| 5 candidate operators: |
| operator + (T, T) -> T where: T is abstract-float, abstract-int, f32, i32, u32 or f16 |
| operator + (vecN<T>, T) -> vecN<T> where: T is abstract-float, abstract-int, f32, i32, u32 or f16 |
| operator + (T, vecN<T>) -> vecN<T> where: T is abstract-float, abstract-int, f32, i32, u32 or f16 |
| operator + (matNxM<T>, matNxM<T>) -> matNxM<T> where: T is abstract-float, f32 or f16 |
| operator + (vecN<T>, vecN<T>) -> vecN<T> where: T is abstract-float, abstract-int, f32, i32, u32 or f16 |
| |
| m2 = m2 + 1.0; |
| ^ |
| |
| |
| struct FSIn { |
| @builtin(front_facing) sk_Clockwise: bool, |
| @builtin(position) sk_FragCoord: vec4<f32>, |
| }; |
| struct FSOut { |
| @location(0) sk_FragColor: vec4<f32>, |
| }; |
| struct _GlobalUniforms { |
| colorGreen: vec4<f32>, |
| colorRed: vec4<f32>, |
| testInputs: vec4<f32>, |
| }; |
| @binding(0) @group(0) var<uniform> _globalUniforms: _GlobalUniforms; |
| const minus: i32 = 2; |
| const star: i32 = 3; |
| const slash: i32 = 4; |
| fn test_bifffff22(_skParam0: i32, _skParam1: f32, _skParam2: f32, _skParam3: f32, _skParam4: f32, _skParam5: mat2x2<f32>) -> bool { |
| let op = _skParam0; |
| let m11 = _skParam1; |
| let m12 = _skParam2; |
| let m21 = _skParam3; |
| let m22 = _skParam4; |
| let expected = _skParam5; |
| { |
| var one: f32 = f32(_globalUniforms.colorRed.x); |
| var m2: mat2x2<f32> = mat2x2<f32>(m11 * one, m12 * one, m21 * one, m22 * one); |
| switch op { |
| case 1 { |
| m2 = m2 + 1.0; |
| break; |
| } |
| case 2 { |
| m2 = m2 - 1.0; |
| break; |
| } |
| case 3 { |
| m2 = m2 * 2.0; |
| break; |
| } |
| case 4 { |
| m2 = m2 * 0.5; |
| break; |
| } |
| case default {} |
| } |
| return (((m2[0].x == expected[0].x) && (m2[0].y == expected[0].y)) && (m2[1].x == expected[1].x)) && (m2[1].y == expected[1].y); |
| } |
| } |
| fn divisionTest_b() -> bool { |
| { |
| var ten: f32 = f32(_globalUniforms.colorRed.x * 10.0); |
| let _skTemp0 = vec2<f32>(ten); |
| let _skTemp1 = vec2<f32>(ten); |
| var mat: mat2x2<f32> = mat2x2<f32>(_skTemp0[0], _skTemp0[1], _skTemp1[0], _skTemp1[1]); |
| var div: mat2x2<f32> = mat * (1.0 / _globalUniforms.testInputs.x); |
| mat = mat * (1.0 / _globalUniforms.testInputs.x); |
| let _skTemp2 = abs(vec4<f32>(div[0], div[1]) + vec4<f32>(8.0)); |
| let _skTemp3 = all(_skTemp2 < vec4<f32>(0.01)); |
| let _skTemp4 = abs(vec4<f32>(mat[0], mat[1]) + vec4<f32>(8.0)); |
| let _skTemp5 = all(_skTemp4 < vec4<f32>(0.01)); |
| return _skTemp3 && _skTemp5; |
| } |
| } |
| fn main(_skParam0: vec2<f32>) -> vec4<f32> { |
| let coords = _skParam0; |
| { |
| var f1: f32 = f32(_globalUniforms.colorGreen.y); |
| var f2: f32 = f32(2.0 * _globalUniforms.colorGreen.y); |
| var f3: f32 = f32(3.0 * _globalUniforms.colorGreen.y); |
| var f4: f32 = f32(4.0 * _globalUniforms.colorGreen.y); |
| var _0_expected: mat2x2<f32> = mat2x2<f32>(f1 + 1.0, f2 + 1.0, f3 + 1.0, f4 + 1.0); |
| var _1_one: f32 = f32(_globalUniforms.colorRed.x); |
| var _2_m2: mat2x2<f32> = mat2x2<f32>(f1 * _1_one, f2 * _1_one, f3 * _1_one, f4 * _1_one); |
| { |
| _2_m2 = _2_m2 + 1.0; |
| } |
| var _skTemp6: vec4<f32>; |
| var _skTemp7: bool; |
| var _skTemp8: bool; |
| var _skTemp9: bool; |
| var _skTemp10: bool; |
| if (((_2_m2[0].x == _0_expected[0].x) && (_2_m2[0].y == _0_expected[0].y)) && (_2_m2[1].x == _0_expected[1].x)) && (_2_m2[1].y == _0_expected[1].y) { |
| let _skTemp11 = test_bifffff22(minus, f1, f2, f3, f4, mat2x2<f32>(f1 - 1.0, f2 - 1.0, f3 - 1.0, f4 - 1.0)); |
| _skTemp10 = _skTemp11; |
| } else { |
| _skTemp10 = false; |
| } |
| if _skTemp10 { |
| let _skTemp12 = test_bifffff22(star, f1, f2, f3, f4, mat2x2<f32>(f1 * 2.0, f2 * 2.0, f3 * 2.0, f4 * 2.0)); |
| _skTemp9 = _skTemp12; |
| } else { |
| _skTemp9 = false; |
| } |
| if _skTemp9 { |
| let _skTemp13 = test_bifffff22(slash, f1, f2, f3, f4, mat2x2<f32>(f1 * 0.5, f2 * 0.5, f3 * 0.5, f4 * 0.5)); |
| _skTemp8 = _skTemp13; |
| } else { |
| _skTemp8 = false; |
| } |
| if _skTemp8 { |
| let _skTemp14 = divisionTest_b(); |
| _skTemp7 = _skTemp14; |
| } else { |
| _skTemp7 = false; |
| } |
| if _skTemp7 { |
| _skTemp6 = _globalUniforms.colorGreen; |
| } else { |
| _skTemp6 = _globalUniforms.colorRed; |
| } |
| return _skTemp6; |
| } |
| } |
| @fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { |
| var _stageOut: FSOut; |
| _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); |
| return _stageOut; |
| } |
| |
| 1 error |