1*c8dee2aaSAndroid Build Coastguard Worker 2*c8dee2aaSAndroid Build Coastguard Workerout vec4 sk_FragColor; 3*c8dee2aaSAndroid Build Coastguard Workeruniform vec4 colorGreen; 4*c8dee2aaSAndroid Build Coastguard Workeruniform vec4 colorRed; 5*c8dee2aaSAndroid Build Coastguard Workerbool test_half_b() { 6*c8dee2aaSAndroid Build Coastguard Worker bool ok = true; 7*c8dee2aaSAndroid Build Coastguard Worker mat2 m1 = mat2(1.0, 2.0, 3.0, 4.0); 8*c8dee2aaSAndroid Build Coastguard Worker ok = ok && m1 == mat2(1.0, 2.0, 3.0, 4.0); 9*c8dee2aaSAndroid Build Coastguard Worker mat2 m3 = m1; 10*c8dee2aaSAndroid Build Coastguard Worker ok = ok && m3 == mat2(1.0, 2.0, 3.0, 4.0); 11*c8dee2aaSAndroid Build Coastguard Worker mat2 m4 = mat2(6.0); 12*c8dee2aaSAndroid Build Coastguard Worker ok = ok && m4 == mat2(6.0, 0.0, 0.0, 6.0); 13*c8dee2aaSAndroid Build Coastguard Worker m3 *= m4; 14*c8dee2aaSAndroid Build Coastguard Worker ok = ok && m3 == mat2(6.0, 12.0, 18.0, 24.0); 15*c8dee2aaSAndroid Build Coastguard Worker mat2 m5 = mat2(m1[1].y); 16*c8dee2aaSAndroid Build Coastguard Worker ok = ok && m5 == mat2(4.0, 0.0, 0.0, 4.0); 17*c8dee2aaSAndroid Build Coastguard Worker m1 += m5; 18*c8dee2aaSAndroid Build Coastguard Worker ok = ok && m1 == mat2(5.0, 2.0, 3.0, 8.0); 19*c8dee2aaSAndroid Build Coastguard Worker mat2 m7 = mat2(5.0, 6.0, 7.0, 8.0); 20*c8dee2aaSAndroid Build Coastguard Worker ok = ok && m7 == mat2(5.0, 6.0, 7.0, 8.0); 21*c8dee2aaSAndroid Build Coastguard Worker mat3 m9 = mat3(9.0); 22*c8dee2aaSAndroid Build Coastguard Worker ok = ok && m9 == mat3(9.0, 0.0, 0.0, 0.0, 9.0, 0.0, 0.0, 0.0, 9.0); 23*c8dee2aaSAndroid Build Coastguard Worker mat4 m10 = mat4(11.0); 24*c8dee2aaSAndroid Build Coastguard Worker ok = ok && m10 == mat4(11.0, 0.0, 0.0, 0.0, 0.0, 11.0, 0.0, 0.0, 0.0, 0.0, 11.0, 0.0, 0.0, 0.0, 0.0, 11.0); 25*c8dee2aaSAndroid Build Coastguard Worker mat4 m11 = mat4(20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0); 26*c8dee2aaSAndroid Build Coastguard Worker m11 -= m10; 27*c8dee2aaSAndroid Build Coastguard Worker ok = ok && m11 == mat4(9.0, 20.0, 20.0, 20.0, 20.0, 9.0, 20.0, 20.0, 20.0, 20.0, 9.0, 20.0, 20.0, 20.0, 20.0, 9.0); 28*c8dee2aaSAndroid Build Coastguard Worker return ok; 29*c8dee2aaSAndroid Build Coastguard Worker} 30*c8dee2aaSAndroid Build Coastguard Workerbool test_comma_b() { 31*c8dee2aaSAndroid Build Coastguard Worker mat2 x; 32*c8dee2aaSAndroid Build Coastguard Worker mat2 y; 33*c8dee2aaSAndroid Build Coastguard Worker return ((x = mat2(1.0, 2.0, 3.0, 4.0), y = mat2(1.0, 2.0, 3.0, 4.0)), x == y); 34*c8dee2aaSAndroid Build Coastguard Worker} 35*c8dee2aaSAndroid Build Coastguard Workervec4 main() { 36*c8dee2aaSAndroid Build Coastguard Worker bool _0_ok = true; 37*c8dee2aaSAndroid Build Coastguard Worker mat2 _1_m1 = mat2(1.0, 2.0, 3.0, 4.0); 38*c8dee2aaSAndroid Build Coastguard Worker _0_ok = _0_ok && _1_m1 == mat2(1.0, 2.0, 3.0, 4.0); 39*c8dee2aaSAndroid Build Coastguard Worker mat2 _2_m3 = _1_m1; 40*c8dee2aaSAndroid Build Coastguard Worker _0_ok = _0_ok && _2_m3 == mat2(1.0, 2.0, 3.0, 4.0); 41*c8dee2aaSAndroid Build Coastguard Worker const mat2 _3_m4 = mat2(6.0); 42*c8dee2aaSAndroid Build Coastguard Worker _2_m3 *= _3_m4; 43*c8dee2aaSAndroid Build Coastguard Worker _0_ok = _0_ok && _2_m3 == mat2(6.0, 12.0, 18.0, 24.0); 44*c8dee2aaSAndroid Build Coastguard Worker mat2 _4_m5 = mat2(_1_m1[1].y); 45*c8dee2aaSAndroid Build Coastguard Worker _0_ok = _0_ok && _4_m5 == mat2(4.0, 0.0, 0.0, 4.0); 46*c8dee2aaSAndroid Build Coastguard Worker _1_m1 += _4_m5; 47*c8dee2aaSAndroid Build Coastguard Worker _0_ok = _0_ok && _1_m1 == mat2(5.0, 2.0, 3.0, 8.0); 48*c8dee2aaSAndroid Build Coastguard Worker const mat4 _7_m10 = mat4(11.0); 49*c8dee2aaSAndroid Build Coastguard Worker mat4 _8_m11 = mat4(20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0); 50*c8dee2aaSAndroid Build Coastguard Worker _8_m11 -= _7_m10; 51*c8dee2aaSAndroid Build Coastguard Worker _0_ok = _0_ok && _8_m11 == mat4(9.0, 20.0, 20.0, 20.0, 20.0, 9.0, 20.0, 20.0, 20.0, 20.0, 9.0, 20.0, 20.0, 20.0, 20.0, 9.0); 52*c8dee2aaSAndroid Build Coastguard Worker return (_0_ok && test_half_b()) && test_comma_b() ? colorGreen : colorRed; 53*c8dee2aaSAndroid Build Coastguard Worker} 54