diagnostic(off, derivative_uniformity); diagnostic(off, chromium.unreachable_code); struct _GlobalUniforms { testMatrix2x2: mat2x2, testMatrix3x3: mat3x3, testInputs: vec4, colorRed: vec4, colorGreen: vec4, unknownInput: f32, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; fn test_no_op_mat2_X_vec2_b() -> bool { { var v: vec2; var vv: vec2; v = _globalUniforms.testInputs.xy; v = _globalUniforms.testInputs.xy; if any(v != _globalUniforms.testInputs.xy) { return false; } if any(v != _globalUniforms.testInputs.xy) { return false; } v = -_globalUniforms.testInputs.xy; v = -_globalUniforms.testInputs.xy; if any(v != (-_globalUniforms.testInputs.xy)) { return false; } vv = vec2(0.0); vv = vec2(0.0); return all(vv == vec2(0.0)); } } fn test_no_op_mat3_X_vec3_b() -> bool { { var v: vec3; var vv: vec3; v = _globalUniforms.testInputs.xyz; v = _globalUniforms.testInputs.xyz; if any(v != _globalUniforms.testInputs.xyz) { return false; } if any(v != _globalUniforms.testInputs.xyz) { return false; } v = -_globalUniforms.testInputs.xyz; v = -_globalUniforms.testInputs.xyz; if any(v != (-_globalUniforms.testInputs.xyz)) { return false; } vv = vec3(0.0); vv = vec3(0.0); return all(vv == vec3(0.0)); } } fn test_no_op_mat4_X_vec4_b() -> bool { { var v: vec4; var vv: vec4; v = _globalUniforms.testInputs; v = _globalUniforms.testInputs; if any(v != _globalUniforms.testInputs) { return false; } if any(v != _globalUniforms.testInputs) { return false; } v = -_globalUniforms.testInputs; v = -_globalUniforms.testInputs; if any(v != (-_globalUniforms.testInputs)) { return false; } vv = vec4(0.0); vv = vec4(0.0); return all(vv == vec4(0.0)); } } fn test_no_op_vec2_X_mat2_b() -> bool { { const n: vec2 = vec2(-1.0); const i: vec2 = vec2(1.0); const z: vec2 = vec2(0.0); var v: vec2; var vv: vec2 = vec2(0.0); vv = vec2(0.0); if any(vv != z) { return false; } v = i * _globalUniforms.testMatrix2x2; if any(v != vec2(3.0, 7.0)) { return false; } v = _globalUniforms.testMatrix2x2 * i; if any(v != vec2(4.0, 6.0)) { return false; } v = n * _globalUniforms.testMatrix2x2; if any(v != vec2(-3.0, -7.0)) { return false; } v = _globalUniforms.testMatrix2x2 * n; return all(v == vec2(-4.0, -6.0)); } } fn test_no_op_vec3_X_mat3_b() -> bool { { const n: vec3 = vec3(-1.0); const i: vec3 = vec3(1.0); const z: vec3 = vec3(0.0); var v: vec3; var vv: vec3 = vec3(0.0); vv = vec3(0.0); if any(vv != z) { return false; } v = i * _globalUniforms.testMatrix3x3; if any(v != vec3(6.0, 15.0, 24.0)) { return false; } v = _globalUniforms.testMatrix3x3 * i; if any(v != vec3(12.0, 15.0, 18.0)) { return false; } v = n * _globalUniforms.testMatrix3x3; if any(v != vec3(-6.0, -15.0, -24.0)) { return false; } v = _globalUniforms.testMatrix3x3 * n; return all(v == vec3(-12.0, -15.0, -18.0)); } } fn test_no_op_vec4_X_mat4_b() -> bool { { const n: vec4 = vec4(-1.0); const i: vec4 = vec4(1.0); const z: vec4 = vec4(0.0); let _skTemp0 = _globalUniforms.testMatrix2x2[0]; let _skTemp1 = _globalUniforms.testMatrix2x2[1]; let _skTemp2 = _globalUniforms.testMatrix2x2[0]; let _skTemp3 = _globalUniforms.testMatrix2x2[1]; let _skTemp4 = _globalUniforms.testMatrix2x2[0]; let _skTemp5 = _globalUniforms.testMatrix2x2[1]; let _skTemp6 = _globalUniforms.testMatrix2x2[0]; let _skTemp7 = _globalUniforms.testMatrix2x2[1]; let testMatrix4x4: mat4x4 = mat4x4(_skTemp0[0], _skTemp0[1], _skTemp1[0], _skTemp1[1], _skTemp2[0], _skTemp2[1], _skTemp3[0], _skTemp3[1], _skTemp4[0], _skTemp4[1], _skTemp5[0], _skTemp5[1], _skTemp6[0], _skTemp6[1], _skTemp7[0], _skTemp7[1]); var v: vec4; var vv: vec4 = vec4(0.0); vv = vec4(0.0); if any(vv != z) { return false; } v = i * testMatrix4x4; if any(v != vec4(10.0)) { return false; } v = testMatrix4x4 * i; if any(v != vec4(4.0, 8.0, 12.0, 16.0)) { return false; } v = n * testMatrix4x4; if any(v != vec4(-10.0)) { return false; } v = testMatrix4x4 * n; return all(v == vec4(-4.0, -8.0, -12.0, -16.0)); } } fn _skslMain(coords: vec2) -> vec4 { { var _skTemp8: vec4; var _skTemp9: bool; var _skTemp10: bool; var _skTemp11: bool; var _skTemp12: bool; var _skTemp13: bool; let _skTemp14 = test_no_op_mat2_X_vec2_b(); if _skTemp14 { let _skTemp15 = test_no_op_mat3_X_vec3_b(); _skTemp13 = _skTemp15; } else { _skTemp13 = false; } if _skTemp13 { let _skTemp16 = test_no_op_mat4_X_vec4_b(); _skTemp12 = _skTemp16; } else { _skTemp12 = false; } if _skTemp12 { let _skTemp17 = test_no_op_vec2_X_mat2_b(); _skTemp11 = _skTemp17; } else { _skTemp11 = false; } if _skTemp11 { let _skTemp18 = test_no_op_vec3_X_mat3_b(); _skTemp10 = _skTemp18; } else { _skTemp10 = false; } if _skTemp10 { let _skTemp19 = test_no_op_vec4_X_mat4_b(); _skTemp9 = _skTemp19; } else { _skTemp9 = false; } if _skTemp9 { _skTemp8 = _globalUniforms.colorGreen; } else { _skTemp8 = _globalUniforms.colorRed; } return _skTemp8; } } @fragment fn main(@location(0) _coords: vec2) -> @location(0) vec4 { return _skslMain(_coords); }