1*c8dee2aaSAndroid Build Coastguard Workerdiagnostic(off, derivative_uniformity); 2*c8dee2aaSAndroid Build Coastguard Workerdiagnostic(off, chromium.unreachable_code); 3*c8dee2aaSAndroid Build Coastguard Workerstruct _GlobalUniforms { 4*c8dee2aaSAndroid Build Coastguard Worker testMatrix2x2: mat2x2<f32>, 5*c8dee2aaSAndroid Build Coastguard Worker testMatrix3x3: mat3x3<f32>, 6*c8dee2aaSAndroid Build Coastguard Worker testInputs: vec4<f32>, 7*c8dee2aaSAndroid Build Coastguard Worker colorRed: vec4<f32>, 8*c8dee2aaSAndroid Build Coastguard Worker colorGreen: vec4<f32>, 9*c8dee2aaSAndroid Build Coastguard Worker unknownInput: f32, 10*c8dee2aaSAndroid Build Coastguard Worker}; 11*c8dee2aaSAndroid Build Coastguard Worker@binding(0) @group(0) var<uniform> _globalUniforms: _GlobalUniforms; 12*c8dee2aaSAndroid Build Coastguard Workerfn test_mat3_mat3_b() -> bool { 13*c8dee2aaSAndroid Build Coastguard Worker { 14*c8dee2aaSAndroid Build Coastguard Worker var m: mat3x3<f32>; 15*c8dee2aaSAndroid Build Coastguard Worker var mm: mat3x3<f32>; 16*c8dee2aaSAndroid Build Coastguard Worker const z: mat3x3<f32> = mat3x3<f32>(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); 17*c8dee2aaSAndroid Build Coastguard Worker m = _globalUniforms.testMatrix3x3; 18*c8dee2aaSAndroid Build Coastguard Worker m = _globalUniforms.testMatrix3x3; 19*c8dee2aaSAndroid Build Coastguard Worker m = (-1.0 * m); 20*c8dee2aaSAndroid Build Coastguard Worker mm = mat3x3<f32>(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); 21*c8dee2aaSAndroid Build Coastguard Worker mm = mat3x3<f32>(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); 22*c8dee2aaSAndroid Build Coastguard Worker let _skTemp0 = (-1.0 * _globalUniforms.testMatrix3x3); 23*c8dee2aaSAndroid Build Coastguard Worker return (all(m[0] == _skTemp0[0]) && all(m[1] == _skTemp0[1]) && all(m[2] == _skTemp0[2])) && (all(mm[0] == z[0]) && all(mm[1] == z[1]) && all(mm[2] == z[2])); 24*c8dee2aaSAndroid Build Coastguard Worker } 25*c8dee2aaSAndroid Build Coastguard Worker} 26*c8dee2aaSAndroid Build Coastguard Workerfn test_mat4_mat4_b() -> bool { 27*c8dee2aaSAndroid Build Coastguard Worker { 28*c8dee2aaSAndroid Build Coastguard Worker let testMatrix4x4: mat4x4<f32> = mat4x4<f32>(_globalUniforms.testInputs[0], _globalUniforms.testInputs[1], _globalUniforms.testInputs[2], _globalUniforms.testInputs[3], _globalUniforms.testInputs[0], _globalUniforms.testInputs[1], _globalUniforms.testInputs[2], _globalUniforms.testInputs[3], _globalUniforms.testInputs[0], _globalUniforms.testInputs[1], _globalUniforms.testInputs[2], _globalUniforms.testInputs[3], _globalUniforms.testInputs[0], _globalUniforms.testInputs[1], _globalUniforms.testInputs[2], _globalUniforms.testInputs[3]); 29*c8dee2aaSAndroid Build Coastguard Worker var m: mat4x4<f32>; 30*c8dee2aaSAndroid Build Coastguard Worker var mm: mat4x4<f32>; 31*c8dee2aaSAndroid Build Coastguard Worker const z: mat4x4<f32> = mat4x4<f32>(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); 32*c8dee2aaSAndroid Build Coastguard Worker m = testMatrix4x4; 33*c8dee2aaSAndroid Build Coastguard Worker m = testMatrix4x4; 34*c8dee2aaSAndroid Build Coastguard Worker m = (-1.0 * m); 35*c8dee2aaSAndroid Build Coastguard Worker mm = mat4x4<f32>(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); 36*c8dee2aaSAndroid Build Coastguard Worker mm = mat4x4<f32>(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); 37*c8dee2aaSAndroid Build Coastguard Worker let _skTemp1 = (-1.0 * testMatrix4x4); 38*c8dee2aaSAndroid Build Coastguard Worker return (all(m[0] == _skTemp1[0]) && all(m[1] == _skTemp1[1]) && all(m[2] == _skTemp1[2]) && all(m[3] == _skTemp1[3])) && (all(mm[0] == z[0]) && all(mm[1] == z[1]) && all(mm[2] == z[2]) && all(mm[3] == z[3])); 39*c8dee2aaSAndroid Build Coastguard Worker } 40*c8dee2aaSAndroid Build Coastguard Worker} 41*c8dee2aaSAndroid Build Coastguard Workerfn _skslMain(coords: vec2<f32>) -> vec4<f32> { 42*c8dee2aaSAndroid Build Coastguard Worker { 43*c8dee2aaSAndroid Build Coastguard Worker var _0_m: mat2x2<f32>; 44*c8dee2aaSAndroid Build Coastguard Worker var _1_mm: mat2x2<f32>; 45*c8dee2aaSAndroid Build Coastguard Worker const _3_z: mat2x2<f32> = mat2x2<f32>(0.0, 0.0, 0.0, 0.0); 46*c8dee2aaSAndroid Build Coastguard Worker _0_m = _globalUniforms.testMatrix2x2; 47*c8dee2aaSAndroid Build Coastguard Worker _0_m = _globalUniforms.testMatrix2x2; 48*c8dee2aaSAndroid Build Coastguard Worker _0_m = (-1.0 * _0_m); 49*c8dee2aaSAndroid Build Coastguard Worker _1_mm = mat2x2<f32>(0.0, 0.0, 0.0, 0.0); 50*c8dee2aaSAndroid Build Coastguard Worker _1_mm = mat2x2<f32>(0.0, 0.0, 0.0, 0.0); 51*c8dee2aaSAndroid Build Coastguard Worker var _skTemp2: vec4<f32>; 52*c8dee2aaSAndroid Build Coastguard Worker var _skTemp3: bool; 53*c8dee2aaSAndroid Build Coastguard Worker var _skTemp4: bool; 54*c8dee2aaSAndroid Build Coastguard Worker let _skTemp5 = (-1.0 * _globalUniforms.testMatrix2x2); 55*c8dee2aaSAndroid Build Coastguard Worker if (all(_0_m[0] == _skTemp5[0]) && all(_0_m[1] == _skTemp5[1])) && (all(_1_mm[0] == _3_z[0]) && all(_1_mm[1] == _3_z[1])) { 56*c8dee2aaSAndroid Build Coastguard Worker let _skTemp6 = test_mat3_mat3_b(); 57*c8dee2aaSAndroid Build Coastguard Worker _skTemp4 = _skTemp6; 58*c8dee2aaSAndroid Build Coastguard Worker } else { 59*c8dee2aaSAndroid Build Coastguard Worker _skTemp4 = false; 60*c8dee2aaSAndroid Build Coastguard Worker } 61*c8dee2aaSAndroid Build Coastguard Worker if _skTemp4 { 62*c8dee2aaSAndroid Build Coastguard Worker let _skTemp7 = test_mat4_mat4_b(); 63*c8dee2aaSAndroid Build Coastguard Worker _skTemp3 = _skTemp7; 64*c8dee2aaSAndroid Build Coastguard Worker } else { 65*c8dee2aaSAndroid Build Coastguard Worker _skTemp3 = false; 66*c8dee2aaSAndroid Build Coastguard Worker } 67*c8dee2aaSAndroid Build Coastguard Worker if _skTemp3 { 68*c8dee2aaSAndroid Build Coastguard Worker _skTemp2 = _globalUniforms.colorGreen; 69*c8dee2aaSAndroid Build Coastguard Worker } else { 70*c8dee2aaSAndroid Build Coastguard Worker _skTemp2 = _globalUniforms.colorRed; 71*c8dee2aaSAndroid Build Coastguard Worker } 72*c8dee2aaSAndroid Build Coastguard Worker return _skTemp2; 73*c8dee2aaSAndroid Build Coastguard Worker } 74*c8dee2aaSAndroid Build Coastguard Worker} 75*c8dee2aaSAndroid Build Coastguard Worker@fragment fn main(@location(0) _coords: vec2<f32>) -> @location(0) vec4<f32> { 76*c8dee2aaSAndroid Build Coastguard Worker return _skslMain(_coords); 77*c8dee2aaSAndroid Build Coastguard Worker} 78