1*35238bceSAndroid Build Coastguard Worker#X1. Type: float[5] // An array type with 5 elements 2*35238bceSAndroid Build Coastguard Worker#X2. Return value: float[5] func() { ... } // Function with a 5-element array return value 3*35238bceSAndroid Build Coastguard Worker#X3. Array constructor: float[3] (1.0, 2.0, 5.5) // 3-element array with given elements 4*35238bceSAndroid Build Coastguard Worker# // Fails with array of matrices! 5*35238bceSAndroid Build Coastguard Worker#X4. As unnamed parameter: void func(float[5]); 6*35238bceSAndroid Build Coastguard Worker#X5. Variable declaration: float[5] a; // Equivalent to float a[5]; (?) 7*35238bceSAndroid Build Coastguard Worker#X6. Empty brackets: float x[] = float[] (1.0, 2.0, 3.0); // Size of x is 3 8*35238bceSAndroid Build Coastguard Worker# float y[] = float[3] (1.0, 2.0, 3.0); // Size of y is 3 (equivalent) 9*35238bceSAndroid Build Coastguard Worker# float z[] = y; // Size of z is 3 10*35238bceSAndroid Build Coastguard Worker#X7. Testing that 2-dimensional arrays don't work: float a[5][3]; // Illegal 11*35238bceSAndroid Build Coastguard Worker# float[5] a[3]; // Illegal 12*35238bceSAndroid Build Coastguard Worker#X8. Testing that array declaration with dynamic variables as array size won't work. 13*35238bceSAndroid Build Coastguard Worker#X9. Testing length() operator: z.length(); // Returns 3 for z defined before 14*35238bceSAndroid Build Coastguard Worker#X10. Test C/C++ style {}-constructor 15*35238bceSAndroid Build Coastguard Worker#X11. Test struct arrays 16*35238bceSAndroid Build Coastguard Worker#X12. Test array element access at initialization with const/dynamic values 17*35238bceSAndroid Build Coastguard Worker 18*35238bceSAndroid Build Coastguard Workergroup constructor "Array constructors" 19*35238bceSAndroid Build Coastguard Worker 20*35238bceSAndroid Build Coastguard Worker case float3 21*35238bceSAndroid Build Coastguard Worker version 300 es 22*35238bceSAndroid Build Coastguard Worker values 23*35238bceSAndroid Build Coastguard Worker { 24*35238bceSAndroid Build Coastguard Worker input vec3 in0 = [ vec3(0.5, 1.0, 2.0) | vec3(7.4, -1.0, 2.0) | vec3(3.0, 1.6, -2.0) ]; 25*35238bceSAndroid Build Coastguard Worker output vec3 out0 = [ vec3(2.0, 0.5, 1.0) | vec3(2.0, 7.4, -1.0) | vec3(-2.0, 3.0, 1.6) ]; 26*35238bceSAndroid Build Coastguard Worker } 27*35238bceSAndroid Build Coastguard Worker 28*35238bceSAndroid Build Coastguard Worker both "" 29*35238bceSAndroid Build Coastguard Worker #version 300 es 30*35238bceSAndroid Build Coastguard Worker precision mediump float; 31*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 32*35238bceSAndroid Build Coastguard Worker 33*35238bceSAndroid Build Coastguard Worker void main() 34*35238bceSAndroid Build Coastguard Worker { 35*35238bceSAndroid Build Coastguard Worker ${SETUP} 36*35238bceSAndroid Build Coastguard Worker float[3] x; 37*35238bceSAndroid Build Coastguard Worker x = float[3] (in0.z, in0.x, in0.y); 38*35238bceSAndroid Build Coastguard Worker out0 = vec3(x[0], x[1], x[2]); 39*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 40*35238bceSAndroid Build Coastguard Worker } 41*35238bceSAndroid Build Coastguard Worker "" 42*35238bceSAndroid Build Coastguard Worker end 43*35238bceSAndroid Build Coastguard Worker 44*35238bceSAndroid Build Coastguard Worker case float4 45*35238bceSAndroid Build Coastguard Worker version 300 es 46*35238bceSAndroid Build Coastguard Worker values 47*35238bceSAndroid Build Coastguard Worker { 48*35238bceSAndroid Build Coastguard Worker input vec4 in0 = [ vec4(0.5, 1.0, 2.0, 0.2) | vec4(7.4, -1.0, 2.0, -1.3) | vec4(3.0, 1.6, -2.0, 0.5) ]; 49*35238bceSAndroid Build Coastguard Worker output vec4 out0 = [ vec4(2.0, 0.5, 0.2, 1.0) | vec4(2.0, 7.4, -1.3, -1.0) | vec4(-2.0, 3.0, 0.5, 1.6) ]; 50*35238bceSAndroid Build Coastguard Worker } 51*35238bceSAndroid Build Coastguard Worker 52*35238bceSAndroid Build Coastguard Worker both "" 53*35238bceSAndroid Build Coastguard Worker #version 300 es 54*35238bceSAndroid Build Coastguard Worker precision mediump float; 55*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 56*35238bceSAndroid Build Coastguard Worker 57*35238bceSAndroid Build Coastguard Worker void main() 58*35238bceSAndroid Build Coastguard Worker { 59*35238bceSAndroid Build Coastguard Worker ${SETUP} 60*35238bceSAndroid Build Coastguard Worker float[4] x; 61*35238bceSAndroid Build Coastguard Worker x = float[4] (in0.z, in0.x, in0.w, in0.y); 62*35238bceSAndroid Build Coastguard Worker out0 = vec4(x[0], x[1], x[2], x[3]); 63*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 64*35238bceSAndroid Build Coastguard Worker } 65*35238bceSAndroid Build Coastguard Worker "" 66*35238bceSAndroid Build Coastguard Worker end 67*35238bceSAndroid Build Coastguard Worker 68*35238bceSAndroid Build Coastguard Worker case int3 69*35238bceSAndroid Build Coastguard Worker version 300 es 70*35238bceSAndroid Build Coastguard Worker values 71*35238bceSAndroid Build Coastguard Worker { 72*35238bceSAndroid Build Coastguard Worker input ivec3 in0 = [ ivec3(0, 1, 2) | ivec3(7, -1, 2) | ivec3(3, 1, -2) ]; 73*35238bceSAndroid Build Coastguard Worker output ivec3 out0 = [ ivec3(2, 0, 1) | ivec3(2, 7, -1) | ivec3(-2, 3, 1) ]; 74*35238bceSAndroid Build Coastguard Worker } 75*35238bceSAndroid Build Coastguard Worker 76*35238bceSAndroid Build Coastguard Worker both "" 77*35238bceSAndroid Build Coastguard Worker #version 300 es 78*35238bceSAndroid Build Coastguard Worker precision mediump int; 79*35238bceSAndroid Build Coastguard Worker precision mediump float; 80*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 81*35238bceSAndroid Build Coastguard Worker 82*35238bceSAndroid Build Coastguard Worker void main() 83*35238bceSAndroid Build Coastguard Worker { 84*35238bceSAndroid Build Coastguard Worker ${SETUP} 85*35238bceSAndroid Build Coastguard Worker int[3] x; 86*35238bceSAndroid Build Coastguard Worker x = int[3] (in0.z, in0.x, in0.y); 87*35238bceSAndroid Build Coastguard Worker out0 = ivec3(x[0], x[1], x[2]); 88*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 89*35238bceSAndroid Build Coastguard Worker } 90*35238bceSAndroid Build Coastguard Worker "" 91*35238bceSAndroid Build Coastguard Worker end 92*35238bceSAndroid Build Coastguard Worker 93*35238bceSAndroid Build Coastguard Worker case int4 94*35238bceSAndroid Build Coastguard Worker version 300 es 95*35238bceSAndroid Build Coastguard Worker values 96*35238bceSAndroid Build Coastguard Worker { 97*35238bceSAndroid Build Coastguard Worker input ivec4 in0 = [ ivec4(0, 1, 2, 0) | ivec4(7, -1, 2, -1) | ivec4(3, 1, -2, 0) ]; 98*35238bceSAndroid Build Coastguard Worker output ivec4 out0 = [ ivec4(2, 0, 0, 1) | ivec4(2, 7, -1, -1) | ivec4(-2, 3, 0, 1) ]; 99*35238bceSAndroid Build Coastguard Worker } 100*35238bceSAndroid Build Coastguard Worker 101*35238bceSAndroid Build Coastguard Worker both "" 102*35238bceSAndroid Build Coastguard Worker #version 300 es 103*35238bceSAndroid Build Coastguard Worker precision mediump int; 104*35238bceSAndroid Build Coastguard Worker precision mediump float; 105*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 106*35238bceSAndroid Build Coastguard Worker 107*35238bceSAndroid Build Coastguard Worker void main() 108*35238bceSAndroid Build Coastguard Worker { 109*35238bceSAndroid Build Coastguard Worker ${SETUP} 110*35238bceSAndroid Build Coastguard Worker int[4] x; 111*35238bceSAndroid Build Coastguard Worker x = int[4] (in0.z, in0.x, in0.w, in0.y); 112*35238bceSAndroid Build Coastguard Worker out0 = ivec4(x[0], x[1], x[2], x[3]); 113*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 114*35238bceSAndroid Build Coastguard Worker } 115*35238bceSAndroid Build Coastguard Worker "" 116*35238bceSAndroid Build Coastguard Worker end 117*35238bceSAndroid Build Coastguard Worker 118*35238bceSAndroid Build Coastguard Worker case bool3 119*35238bceSAndroid Build Coastguard Worker version 300 es 120*35238bceSAndroid Build Coastguard Worker values 121*35238bceSAndroid Build Coastguard Worker { 122*35238bceSAndroid Build Coastguard Worker input bvec3 in0 = [ bvec3(true, true, false) ]; 123*35238bceSAndroid Build Coastguard Worker output bvec3 out0 = [ bvec3(false, true, true) ]; 124*35238bceSAndroid Build Coastguard Worker } 125*35238bceSAndroid Build Coastguard Worker 126*35238bceSAndroid Build Coastguard Worker both "" 127*35238bceSAndroid Build Coastguard Worker #version 300 es 128*35238bceSAndroid Build Coastguard Worker precision mediump float; 129*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 130*35238bceSAndroid Build Coastguard Worker 131*35238bceSAndroid Build Coastguard Worker void main() 132*35238bceSAndroid Build Coastguard Worker { 133*35238bceSAndroid Build Coastguard Worker ${SETUP} 134*35238bceSAndroid Build Coastguard Worker bool[3] x; 135*35238bceSAndroid Build Coastguard Worker x = bool[3] (in0.z, in0.x, in0.y); 136*35238bceSAndroid Build Coastguard Worker out0 = bvec3(x[0], x[1], x[2]); 137*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 138*35238bceSAndroid Build Coastguard Worker } 139*35238bceSAndroid Build Coastguard Worker "" 140*35238bceSAndroid Build Coastguard Worker end 141*35238bceSAndroid Build Coastguard Worker 142*35238bceSAndroid Build Coastguard Worker case bool4 143*35238bceSAndroid Build Coastguard Worker version 300 es 144*35238bceSAndroid Build Coastguard Worker values 145*35238bceSAndroid Build Coastguard Worker { 146*35238bceSAndroid Build Coastguard Worker input bvec4 in0 = [ bvec4(true, true, false, false) ]; 147*35238bceSAndroid Build Coastguard Worker output bvec4 out0 = [ bvec4(false, true, true, false) ]; 148*35238bceSAndroid Build Coastguard Worker } 149*35238bceSAndroid Build Coastguard Worker 150*35238bceSAndroid Build Coastguard Worker both "" 151*35238bceSAndroid Build Coastguard Worker #version 300 es 152*35238bceSAndroid Build Coastguard Worker precision mediump float; 153*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 154*35238bceSAndroid Build Coastguard Worker 155*35238bceSAndroid Build Coastguard Worker void main() 156*35238bceSAndroid Build Coastguard Worker { 157*35238bceSAndroid Build Coastguard Worker ${SETUP} 158*35238bceSAndroid Build Coastguard Worker bool[4] x; 159*35238bceSAndroid Build Coastguard Worker x = bool[4] (in0.z, in0.x, in0.y, in0.w); 160*35238bceSAndroid Build Coastguard Worker out0 = bvec4(x[0], x[1], x[2], x[3]); 161*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 162*35238bceSAndroid Build Coastguard Worker } 163*35238bceSAndroid Build Coastguard Worker "" 164*35238bceSAndroid Build Coastguard Worker end 165*35238bceSAndroid Build Coastguard Worker 166*35238bceSAndroid Build Coastguard Worker case struct3 167*35238bceSAndroid Build Coastguard Worker version 300 es 168*35238bceSAndroid Build Coastguard Worker values 169*35238bceSAndroid Build Coastguard Worker { 170*35238bceSAndroid Build Coastguard Worker input vec3 in0 = [ vec3(0.5, 1.0, 2.0) ]; 171*35238bceSAndroid Build Coastguard Worker output vec3 out0 = [ vec3(2.0, -0.5, -1.0) ]; 172*35238bceSAndroid Build Coastguard Worker } 173*35238bceSAndroid Build Coastguard Worker 174*35238bceSAndroid Build Coastguard Worker both "" 175*35238bceSAndroid Build Coastguard Worker #version 300 es 176*35238bceSAndroid Build Coastguard Worker precision mediump float; 177*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 178*35238bceSAndroid Build Coastguard Worker 179*35238bceSAndroid Build Coastguard Worker 180*35238bceSAndroid Build Coastguard Worker 181*35238bceSAndroid Build Coastguard Worker void main() 182*35238bceSAndroid Build Coastguard Worker { 183*35238bceSAndroid Build Coastguard Worker ${SETUP} 184*35238bceSAndroid Build Coastguard Worker 185*35238bceSAndroid Build Coastguard Worker struct test 186*35238bceSAndroid Build Coastguard Worker { 187*35238bceSAndroid Build Coastguard Worker float f; 188*35238bceSAndroid Build Coastguard Worker vec3 v; 189*35238bceSAndroid Build Coastguard Worker }; 190*35238bceSAndroid Build Coastguard Worker 191*35238bceSAndroid Build Coastguard Worker test a = test(in0.z, vec3(in0.x, in0.y, in0.z)); 192*35238bceSAndroid Build Coastguard Worker test b = test(in0.y, vec3(-in0.z, -in0.x, -in0.y)); 193*35238bceSAndroid Build Coastguard Worker test c = test(in0.x, vec3(-in0.y, in0.z, -in0.x)); 194*35238bceSAndroid Build Coastguard Worker 195*35238bceSAndroid Build Coastguard Worker test[3] x = test[3] (a, b, c); 196*35238bceSAndroid Build Coastguard Worker 197*35238bceSAndroid Build Coastguard Worker out0 = vec3(x[0].f, x[1].v.y, x[2].v.x); 198*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 199*35238bceSAndroid Build Coastguard Worker } 200*35238bceSAndroid Build Coastguard Worker "" 201*35238bceSAndroid Build Coastguard Worker end 202*35238bceSAndroid Build Coastguard Worker 203*35238bceSAndroid Build Coastguard Worker case struct4 204*35238bceSAndroid Build Coastguard Worker version 300 es 205*35238bceSAndroid Build Coastguard Worker values 206*35238bceSAndroid Build Coastguard Worker { 207*35238bceSAndroid Build Coastguard Worker input vec4 in0 = [ vec4(0.5, 1.0, 2.0, 1.5) ]; 208*35238bceSAndroid Build Coastguard Worker output vec4 out0 = [ vec4(2.0, -0.5, -1.0, -1.5) ]; 209*35238bceSAndroid Build Coastguard Worker } 210*35238bceSAndroid Build Coastguard Worker 211*35238bceSAndroid Build Coastguard Worker both "" 212*35238bceSAndroid Build Coastguard Worker #version 300 es 213*35238bceSAndroid Build Coastguard Worker precision mediump float; 214*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 215*35238bceSAndroid Build Coastguard Worker 216*35238bceSAndroid Build Coastguard Worker 217*35238bceSAndroid Build Coastguard Worker void main() 218*35238bceSAndroid Build Coastguard Worker { 219*35238bceSAndroid Build Coastguard Worker ${SETUP} 220*35238bceSAndroid Build Coastguard Worker 221*35238bceSAndroid Build Coastguard Worker 222*35238bceSAndroid Build Coastguard Worker struct test 223*35238bceSAndroid Build Coastguard Worker { 224*35238bceSAndroid Build Coastguard Worker float f; 225*35238bceSAndroid Build Coastguard Worker vec3 v; 226*35238bceSAndroid Build Coastguard Worker }; 227*35238bceSAndroid Build Coastguard Worker 228*35238bceSAndroid Build Coastguard Worker test a = test(in0.z, vec3(in0.x, in0.y, in0.z)); 229*35238bceSAndroid Build Coastguard Worker test b = test(in0.y, vec3(-in0.z, -in0.x, -in0.y)); 230*35238bceSAndroid Build Coastguard Worker test c = test(in0.x, vec3(-in0.y, in0.z, -in0.x)); 231*35238bceSAndroid Build Coastguard Worker test d = test(-in0.w, vec3(-in0.w, -in0.x, -in0.z)); 232*35238bceSAndroid Build Coastguard Worker 233*35238bceSAndroid Build Coastguard Worker test[4] x = test[4] (a, b, c, d); 234*35238bceSAndroid Build Coastguard Worker 235*35238bceSAndroid Build Coastguard Worker out0 = vec4(x[0].f, x[1].v.y, x[2].v.x, x[3].v.x); 236*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 237*35238bceSAndroid Build Coastguard Worker } 238*35238bceSAndroid Build Coastguard Worker "" 239*35238bceSAndroid Build Coastguard Worker end 240*35238bceSAndroid Build Coastguard Worker 241*35238bceSAndroid Build Coastguard Worker 242*35238bceSAndroid Build Coastguard Worker case float_vec3 243*35238bceSAndroid Build Coastguard Worker version 300 es 244*35238bceSAndroid Build Coastguard Worker values 245*35238bceSAndroid Build Coastguard Worker { 246*35238bceSAndroid Build Coastguard Worker input vec3 in0 = [ vec3(0.5, 1.0, 2.0) | vec3(7.4, -1.0, 2.0) | vec3(3.0, 1.6, -2.0) ]; 247*35238bceSAndroid Build Coastguard Worker output vec3 out0 = [ vec3(0.5, -2.0, 1.0) | vec3(7.4, -2.0, -1.0) | vec3(3.0, 2.0, 1.6) ]; 248*35238bceSAndroid Build Coastguard Worker } 249*35238bceSAndroid Build Coastguard Worker 250*35238bceSAndroid Build Coastguard Worker both "" 251*35238bceSAndroid Build Coastguard Worker #version 300 es 252*35238bceSAndroid Build Coastguard Worker precision mediump float; 253*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 254*35238bceSAndroid Build Coastguard Worker 255*35238bceSAndroid Build Coastguard Worker void main() 256*35238bceSAndroid Build Coastguard Worker { 257*35238bceSAndroid Build Coastguard Worker ${SETUP} 258*35238bceSAndroid Build Coastguard Worker 259*35238bceSAndroid Build Coastguard Worker vec3[3] x; 260*35238bceSAndroid Build Coastguard Worker x = vec3[3] ( vec3(in0.x, in0.y, in0.z) , 261*35238bceSAndroid Build Coastguard Worker vec3(-in0.y, -in0.z, -in0.x), 262*35238bceSAndroid Build Coastguard Worker vec3(in0.z, in0.x, in0.y) ); 263*35238bceSAndroid Build Coastguard Worker out0 = vec3(x[0].x, x[1].y, x[2].z); 264*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 265*35238bceSAndroid Build Coastguard Worker } 266*35238bceSAndroid Build Coastguard Worker "" 267*35238bceSAndroid Build Coastguard Worker end 268*35238bceSAndroid Build Coastguard Worker 269*35238bceSAndroid Build Coastguard Worker case int_vec3 270*35238bceSAndroid Build Coastguard Worker version 300 es 271*35238bceSAndroid Build Coastguard Worker values 272*35238bceSAndroid Build Coastguard Worker { 273*35238bceSAndroid Build Coastguard Worker input ivec3 in0 = [ ivec3(5, 1, 2) | ivec3(7, -1, 2) | ivec3(3, 1, -2) ]; 274*35238bceSAndroid Build Coastguard Worker output ivec3 out0 = [ ivec3(5, -2, 1) | ivec3(7, -2, -1) | ivec3(3, 2, 1) ]; 275*35238bceSAndroid Build Coastguard Worker } 276*35238bceSAndroid Build Coastguard Worker 277*35238bceSAndroid Build Coastguard Worker both "" 278*35238bceSAndroid Build Coastguard Worker #version 300 es 279*35238bceSAndroid Build Coastguard Worker precision mediump int; 280*35238bceSAndroid Build Coastguard Worker precision mediump float; 281*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 282*35238bceSAndroid Build Coastguard Worker 283*35238bceSAndroid Build Coastguard Worker void main() 284*35238bceSAndroid Build Coastguard Worker { 285*35238bceSAndroid Build Coastguard Worker ${SETUP} 286*35238bceSAndroid Build Coastguard Worker 287*35238bceSAndroid Build Coastguard Worker ivec3[3] x; 288*35238bceSAndroid Build Coastguard Worker x = ivec3[3] ( ivec3(in0.x, in0.y, in0.z) , 289*35238bceSAndroid Build Coastguard Worker ivec3(-in0.y, -in0.z, -in0.x), 290*35238bceSAndroid Build Coastguard Worker ivec3(in0.z, in0.x, in0.y) ); 291*35238bceSAndroid Build Coastguard Worker out0 = ivec3(x[0].x, x[1].y, x[2].z); 292*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 293*35238bceSAndroid Build Coastguard Worker } 294*35238bceSAndroid Build Coastguard Worker "" 295*35238bceSAndroid Build Coastguard Worker end 296*35238bceSAndroid Build Coastguard Worker 297*35238bceSAndroid Build Coastguard Worker case bool_vec3 298*35238bceSAndroid Build Coastguard Worker version 300 es 299*35238bceSAndroid Build Coastguard Worker values 300*35238bceSAndroid Build Coastguard Worker { 301*35238bceSAndroid Build Coastguard Worker input bvec3 in0 = [ bvec3(true, false, true) ]; 302*35238bceSAndroid Build Coastguard Worker output bvec3 out0 = [ bvec3(true, true, false) ]; 303*35238bceSAndroid Build Coastguard Worker } 304*35238bceSAndroid Build Coastguard Worker 305*35238bceSAndroid Build Coastguard Worker both "" 306*35238bceSAndroid Build Coastguard Worker #version 300 es 307*35238bceSAndroid Build Coastguard Worker precision mediump float; 308*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 309*35238bceSAndroid Build Coastguard Worker 310*35238bceSAndroid Build Coastguard Worker void main() 311*35238bceSAndroid Build Coastguard Worker { 312*35238bceSAndroid Build Coastguard Worker ${SETUP} 313*35238bceSAndroid Build Coastguard Worker 314*35238bceSAndroid Build Coastguard Worker bvec3[3] x; 315*35238bceSAndroid Build Coastguard Worker x = bvec3[3] ( bvec3(in0.x, in0.y, in0.z) , 316*35238bceSAndroid Build Coastguard Worker bvec3(in0.y, in0.z, in0.x), 317*35238bceSAndroid Build Coastguard Worker bvec3(in0.z, in0.x, in0.y) ); 318*35238bceSAndroid Build Coastguard Worker out0 = bvec3(x[0].x, x[1].y, x[2].z); 319*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 320*35238bceSAndroid Build Coastguard Worker } 321*35238bceSAndroid Build Coastguard Worker "" 322*35238bceSAndroid Build Coastguard Worker end 323*35238bceSAndroid Build Coastguard Worker 324*35238bceSAndroid Build Coastguard Worker case float_mat3 325*35238bceSAndroid Build Coastguard Worker version 300 es 326*35238bceSAndroid Build Coastguard Worker values 327*35238bceSAndroid Build Coastguard Worker { 328*35238bceSAndroid Build Coastguard Worker input vec3 in0 = [ vec3(0.5, 1.0, 2.0) | vec3(-1.5, 0.0, -2.3) ]; 329*35238bceSAndroid Build Coastguard Worker output vec3 out0 = [ vec3(0.5, -1.0, 1.0) | vec3(-1.5, 0.0, 0.0) ]; 330*35238bceSAndroid Build Coastguard Worker } 331*35238bceSAndroid Build Coastguard Worker 332*35238bceSAndroid Build Coastguard Worker both "" 333*35238bceSAndroid Build Coastguard Worker #version 300 es 334*35238bceSAndroid Build Coastguard Worker precision mediump float; 335*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 336*35238bceSAndroid Build Coastguard Worker 337*35238bceSAndroid Build Coastguard Worker void main() 338*35238bceSAndroid Build Coastguard Worker { 339*35238bceSAndroid Build Coastguard Worker ${SETUP} 340*35238bceSAndroid Build Coastguard Worker mat3[3] a = mat3[3] ( mat3( in0.x, in0.y, in0.z, 341*35238bceSAndroid Build Coastguard Worker in0.x, in0.y, in0.z, 342*35238bceSAndroid Build Coastguard Worker in0.x, in0.y, in0.z) , 343*35238bceSAndroid Build Coastguard Worker mat3( in0.z, in0.x, -in0.y, 344*35238bceSAndroid Build Coastguard Worker in0.z, in0.x, -in0.y, 345*35238bceSAndroid Build Coastguard Worker in0.z, in0.x, -in0.y) , 346*35238bceSAndroid Build Coastguard Worker mat3( -in0.z, -in0.z, in0.z, 347*35238bceSAndroid Build Coastguard Worker -in0.y, -in0.y, in0.y, 348*35238bceSAndroid Build Coastguard Worker -in0.x, -in0.x, in0.x) ); 349*35238bceSAndroid Build Coastguard Worker 350*35238bceSAndroid Build Coastguard Worker mat3 a0 = a[0]; 351*35238bceSAndroid Build Coastguard Worker mat3 a1 = a[1]; 352*35238bceSAndroid Build Coastguard Worker mat3 a2 = a[2]; 353*35238bceSAndroid Build Coastguard Worker 354*35238bceSAndroid Build Coastguard Worker float ret0 = a0[2][0]; 355*35238bceSAndroid Build Coastguard Worker float ret1 = a1[0][2]; 356*35238bceSAndroid Build Coastguard Worker float ret2 = a2[1][2]; 357*35238bceSAndroid Build Coastguard Worker 358*35238bceSAndroid Build Coastguard Worker out0 = vec3(ret0, ret1, ret2); 359*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 360*35238bceSAndroid Build Coastguard Worker } 361*35238bceSAndroid Build Coastguard Worker "" 362*35238bceSAndroid Build Coastguard Worker end 363*35238bceSAndroid Build Coastguard Worker 364*35238bceSAndroid Build Coastguard Worker case int_mat3 365*35238bceSAndroid Build Coastguard Worker version 300 es 366*35238bceSAndroid Build Coastguard Worker values 367*35238bceSAndroid Build Coastguard Worker { 368*35238bceSAndroid Build Coastguard Worker input ivec3 in0 = [ ivec3(0, 1, 2) | ivec3(-1, 0, -2) ]; 369*35238bceSAndroid Build Coastguard Worker output ivec3 out0 = [ ivec3(0, -1, 1) | ivec3(-1, 0, 0) ]; 370*35238bceSAndroid Build Coastguard Worker } 371*35238bceSAndroid Build Coastguard Worker 372*35238bceSAndroid Build Coastguard Worker both "" 373*35238bceSAndroid Build Coastguard Worker #version 300 es 374*35238bceSAndroid Build Coastguard Worker precision mediump int; 375*35238bceSAndroid Build Coastguard Worker precision mediump float; 376*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 377*35238bceSAndroid Build Coastguard Worker 378*35238bceSAndroid Build Coastguard Worker void main() 379*35238bceSAndroid Build Coastguard Worker { 380*35238bceSAndroid Build Coastguard Worker ${SETUP} 381*35238bceSAndroid Build Coastguard Worker mat3[3] a = mat3[3] ( mat3( in0.x, in0.y, in0.z, 382*35238bceSAndroid Build Coastguard Worker in0.x, in0.y, in0.z, 383*35238bceSAndroid Build Coastguard Worker in0.x, in0.y, in0.z) , 384*35238bceSAndroid Build Coastguard Worker mat3( in0.z, in0.x, -in0.y, 385*35238bceSAndroid Build Coastguard Worker in0.z, in0.x, -in0.y, 386*35238bceSAndroid Build Coastguard Worker in0.z, in0.x, -in0.y) , 387*35238bceSAndroid Build Coastguard Worker mat3( -in0.z, -in0.z, in0.z, 388*35238bceSAndroid Build Coastguard Worker -in0.y, -in0.y, in0.y, 389*35238bceSAndroid Build Coastguard Worker -in0.x, -in0.x, in0.x) ); 390*35238bceSAndroid Build Coastguard Worker 391*35238bceSAndroid Build Coastguard Worker mat3 a0 = a[0]; 392*35238bceSAndroid Build Coastguard Worker mat3 a1 = a[1]; 393*35238bceSAndroid Build Coastguard Worker mat3 a2 = a[2]; 394*35238bceSAndroid Build Coastguard Worker 395*35238bceSAndroid Build Coastguard Worker float ret0 = a0[2][0]; 396*35238bceSAndroid Build Coastguard Worker float ret1 = a1[0][2]; 397*35238bceSAndroid Build Coastguard Worker float ret2 = a2[1][2]; 398*35238bceSAndroid Build Coastguard Worker 399*35238bceSAndroid Build Coastguard Worker out0 = ivec3(ret0, ret1, ret2); 400*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 401*35238bceSAndroid Build Coastguard Worker } 402*35238bceSAndroid Build Coastguard Worker "" 403*35238bceSAndroid Build Coastguard Worker end 404*35238bceSAndroid Build Coastguard Worker 405*35238bceSAndroid Build Coastguard Worker case bool_mat3 406*35238bceSAndroid Build Coastguard Worker version 300 es 407*35238bceSAndroid Build Coastguard Worker values 408*35238bceSAndroid Build Coastguard Worker { 409*35238bceSAndroid Build Coastguard Worker input bvec3 in0 = [ bvec3(true, false, true) ]; 410*35238bceSAndroid Build Coastguard Worker output bvec3 out0 = [ bvec3(true, false, false) ]; 411*35238bceSAndroid Build Coastguard Worker } 412*35238bceSAndroid Build Coastguard Worker 413*35238bceSAndroid Build Coastguard Worker both "" 414*35238bceSAndroid Build Coastguard Worker #version 300 es 415*35238bceSAndroid Build Coastguard Worker precision mediump float; 416*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 417*35238bceSAndroid Build Coastguard Worker 418*35238bceSAndroid Build Coastguard Worker void main() 419*35238bceSAndroid Build Coastguard Worker { 420*35238bceSAndroid Build Coastguard Worker ${SETUP} 421*35238bceSAndroid Build Coastguard Worker mat3[3] a = mat3[3] ( mat3( in0.x, in0.y, in0.z, 422*35238bceSAndroid Build Coastguard Worker in0.x, in0.y, in0.z, 423*35238bceSAndroid Build Coastguard Worker in0.x, in0.y, in0.z) , 424*35238bceSAndroid Build Coastguard Worker mat3( in0.z, in0.x, in0.y, 425*35238bceSAndroid Build Coastguard Worker in0.z, in0.x, in0.y, 426*35238bceSAndroid Build Coastguard Worker in0.z, in0.x, in0.y) , 427*35238bceSAndroid Build Coastguard Worker mat3( in0.z, in0.z, in0.z, 428*35238bceSAndroid Build Coastguard Worker in0.y, in0.y, in0.y, 429*35238bceSAndroid Build Coastguard Worker in0.x, in0.x, in0.x) ); 430*35238bceSAndroid Build Coastguard Worker 431*35238bceSAndroid Build Coastguard Worker mat3 a0 = a[0]; 432*35238bceSAndroid Build Coastguard Worker mat3 a1 = a[1]; 433*35238bceSAndroid Build Coastguard Worker mat3 a2 = a[2]; 434*35238bceSAndroid Build Coastguard Worker 435*35238bceSAndroid Build Coastguard Worker float ret0 = a0[2][0]; 436*35238bceSAndroid Build Coastguard Worker float ret1 = a1[0][2]; 437*35238bceSAndroid Build Coastguard Worker float ret2 = a2[1][2]; 438*35238bceSAndroid Build Coastguard Worker 439*35238bceSAndroid Build Coastguard Worker out0 = bvec3(ret0, ret1, ret2); 440*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 441*35238bceSAndroid Build Coastguard Worker } 442*35238bceSAndroid Build Coastguard Worker "" 443*35238bceSAndroid Build Coastguard Worker end 444*35238bceSAndroid Build Coastguard Worker 445*35238bceSAndroid Build Coastguard Workerend # type 446*35238bceSAndroid Build Coastguard Worker 447*35238bceSAndroid Build Coastguard Workergroup return "Arrays as return value" 448*35238bceSAndroid Build Coastguard Worker 449*35238bceSAndroid Build Coastguard Worker case float 450*35238bceSAndroid Build Coastguard Worker version 300 es 451*35238bceSAndroid Build Coastguard Worker values 452*35238bceSAndroid Build Coastguard Worker { 453*35238bceSAndroid Build Coastguard Worker input vec3 in0 = [ vec3(0.5, 1.0, 2.0) | vec3(7.4, -1.0, 2.0) | vec3(3.0, 1.6, -2.0) ]; 454*35238bceSAndroid Build Coastguard Worker output vec3 out0 = [ vec3(2.0, -0.5, 1.0) | vec3(2.0, -7.4, -1.0) | vec3(-2.0, -3.0, 1.6) ]; 455*35238bceSAndroid Build Coastguard Worker } 456*35238bceSAndroid Build Coastguard Worker 457*35238bceSAndroid Build Coastguard Worker both "" 458*35238bceSAndroid Build Coastguard Worker #version 300 es 459*35238bceSAndroid Build Coastguard Worker precision mediump float; 460*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 461*35238bceSAndroid Build Coastguard Worker 462*35238bceSAndroid Build Coastguard Worker float[3] func(vec3 a) 463*35238bceSAndroid Build Coastguard Worker { 464*35238bceSAndroid Build Coastguard Worker return float[3] (a.z, -a.x, a.y); 465*35238bceSAndroid Build Coastguard Worker } 466*35238bceSAndroid Build Coastguard Worker 467*35238bceSAndroid Build Coastguard Worker void main() 468*35238bceSAndroid Build Coastguard Worker { 469*35238bceSAndroid Build Coastguard Worker ${SETUP} 470*35238bceSAndroid Build Coastguard Worker float[3] x = func(in0); 471*35238bceSAndroid Build Coastguard Worker out0 = vec3(x[0], x[1], x[2]); 472*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 473*35238bceSAndroid Build Coastguard Worker } 474*35238bceSAndroid Build Coastguard Worker "" 475*35238bceSAndroid Build Coastguard Worker end 476*35238bceSAndroid Build Coastguard Worker 477*35238bceSAndroid Build Coastguard Worker case int 478*35238bceSAndroid Build Coastguard Worker version 300 es 479*35238bceSAndroid Build Coastguard Worker values 480*35238bceSAndroid Build Coastguard Worker { 481*35238bceSAndroid Build Coastguard Worker input ivec3 in0 = [ ivec3(4, 1, 2) | ivec3(7, -1, 2) | ivec3(3, 1, -2) ]; 482*35238bceSAndroid Build Coastguard Worker output ivec3 out0 = [ ivec3(2, -4, 1) | ivec3(2, -7, -1) | ivec3(-2, -3, 1) ]; 483*35238bceSAndroid Build Coastguard Worker } 484*35238bceSAndroid Build Coastguard Worker 485*35238bceSAndroid Build Coastguard Worker both "" 486*35238bceSAndroid Build Coastguard Worker #version 300 es 487*35238bceSAndroid Build Coastguard Worker precision mediump int; 488*35238bceSAndroid Build Coastguard Worker precision mediump float; 489*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 490*35238bceSAndroid Build Coastguard Worker 491*35238bceSAndroid Build Coastguard Worker int[3] func(ivec3 a) 492*35238bceSAndroid Build Coastguard Worker { 493*35238bceSAndroid Build Coastguard Worker return int[3] (a.z, -a.x, a.y); 494*35238bceSAndroid Build Coastguard Worker } 495*35238bceSAndroid Build Coastguard Worker 496*35238bceSAndroid Build Coastguard Worker void main() 497*35238bceSAndroid Build Coastguard Worker { 498*35238bceSAndroid Build Coastguard Worker ${SETUP} 499*35238bceSAndroid Build Coastguard Worker int[3] x = func(in0); 500*35238bceSAndroid Build Coastguard Worker out0 = ivec3(x[0], x[1], x[2]); 501*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 502*35238bceSAndroid Build Coastguard Worker } 503*35238bceSAndroid Build Coastguard Worker "" 504*35238bceSAndroid Build Coastguard Worker end 505*35238bceSAndroid Build Coastguard Worker 506*35238bceSAndroid Build Coastguard Worker case bool 507*35238bceSAndroid Build Coastguard Worker version 300 es 508*35238bceSAndroid Build Coastguard Worker values 509*35238bceSAndroid Build Coastguard Worker { 510*35238bceSAndroid Build Coastguard Worker input bvec3 in0 = [ bvec3(false, true, true) ]; 511*35238bceSAndroid Build Coastguard Worker output bvec3 out0 = [ bvec3(true, false, true) ]; 512*35238bceSAndroid Build Coastguard Worker } 513*35238bceSAndroid Build Coastguard Worker 514*35238bceSAndroid Build Coastguard Worker both "" 515*35238bceSAndroid Build Coastguard Worker #version 300 es 516*35238bceSAndroid Build Coastguard Worker precision mediump float; 517*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 518*35238bceSAndroid Build Coastguard Worker 519*35238bceSAndroid Build Coastguard Worker bool[3] func(bvec3 a) 520*35238bceSAndroid Build Coastguard Worker { 521*35238bceSAndroid Build Coastguard Worker return bool[3] (a.z, a.x, a.y); 522*35238bceSAndroid Build Coastguard Worker } 523*35238bceSAndroid Build Coastguard Worker 524*35238bceSAndroid Build Coastguard Worker void main() 525*35238bceSAndroid Build Coastguard Worker { 526*35238bceSAndroid Build Coastguard Worker ${SETUP} 527*35238bceSAndroid Build Coastguard Worker bool[3] x = func(in0); 528*35238bceSAndroid Build Coastguard Worker out0 = bvec3(x[0], x[1], x[2]); 529*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 530*35238bceSAndroid Build Coastguard Worker } 531*35238bceSAndroid Build Coastguard Worker "" 532*35238bceSAndroid Build Coastguard Worker end 533*35238bceSAndroid Build Coastguard Worker 534*35238bceSAndroid Build Coastguard Worker 535*35238bceSAndroid Build Coastguard Worker 536*35238bceSAndroid Build Coastguard Worker case float_vec3 537*35238bceSAndroid Build Coastguard Worker version 300 es 538*35238bceSAndroid Build Coastguard Worker values 539*35238bceSAndroid Build Coastguard Worker { 540*35238bceSAndroid Build Coastguard Worker input vec3 in0 = [ vec3(0.5, 1.0, 2.0) | vec3(-0.5, 11.2, -1.0) ]; 541*35238bceSAndroid Build Coastguard Worker output vec3 out0 = [ vec3(1.0, 0.5, -2.0) | vec3(11.2, -0.5, 1.0) ]; 542*35238bceSAndroid Build Coastguard Worker } 543*35238bceSAndroid Build Coastguard Worker 544*35238bceSAndroid Build Coastguard Worker both "" 545*35238bceSAndroid Build Coastguard Worker #version 300 es 546*35238bceSAndroid Build Coastguard Worker precision mediump float; 547*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 548*35238bceSAndroid Build Coastguard Worker 549*35238bceSAndroid Build Coastguard Worker vec3[3] func(vec3[3] a) 550*35238bceSAndroid Build Coastguard Worker { 551*35238bceSAndroid Build Coastguard Worker return vec3[3] (a[1], a[2], a[0]); 552*35238bceSAndroid Build Coastguard Worker } 553*35238bceSAndroid Build Coastguard Worker 554*35238bceSAndroid Build Coastguard Worker void main() 555*35238bceSAndroid Build Coastguard Worker { 556*35238bceSAndroid Build Coastguard Worker ${SETUP} 557*35238bceSAndroid Build Coastguard Worker vec3[3] x = vec3[3](vec3(in0.x, in0.y, -in0.z) , 558*35238bceSAndroid Build Coastguard Worker vec3(in0.y, -in0.z, in0.x) , 559*35238bceSAndroid Build Coastguard Worker vec3(-in0.z, in0.x, in0.y) ); 560*35238bceSAndroid Build Coastguard Worker x = func(x); 561*35238bceSAndroid Build Coastguard Worker out0 = vec3(x[0].x, x[1].y, x[2].z); 562*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 563*35238bceSAndroid Build Coastguard Worker } 564*35238bceSAndroid Build Coastguard Worker "" 565*35238bceSAndroid Build Coastguard Worker end 566*35238bceSAndroid Build Coastguard Worker 567*35238bceSAndroid Build Coastguard Worker case struct 568*35238bceSAndroid Build Coastguard Worker version 300 es 569*35238bceSAndroid Build Coastguard Worker values 570*35238bceSAndroid Build Coastguard Worker { 571*35238bceSAndroid Build Coastguard Worker input vec3 in0 = [ vec3(0.5, 1.0, 2.0) ]; 572*35238bceSAndroid Build Coastguard Worker output vec3 out0 = [ vec3(-1.0, 2.0, 0.5) ]; 573*35238bceSAndroid Build Coastguard Worker } 574*35238bceSAndroid Build Coastguard Worker 575*35238bceSAndroid Build Coastguard Worker both "" 576*35238bceSAndroid Build Coastguard Worker #version 300 es 577*35238bceSAndroid Build Coastguard Worker precision mediump float; 578*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 579*35238bceSAndroid Build Coastguard Worker 580*35238bceSAndroid Build Coastguard Worker struct test 581*35238bceSAndroid Build Coastguard Worker { 582*35238bceSAndroid Build Coastguard Worker float f; 583*35238bceSAndroid Build Coastguard Worker vec3 v; 584*35238bceSAndroid Build Coastguard Worker }; 585*35238bceSAndroid Build Coastguard Worker 586*35238bceSAndroid Build Coastguard Worker test[3] func(test[3] a) 587*35238bceSAndroid Build Coastguard Worker { 588*35238bceSAndroid Build Coastguard Worker return test[3] (a[1], a[2], a[0]); 589*35238bceSAndroid Build Coastguard Worker } 590*35238bceSAndroid Build Coastguard Worker 591*35238bceSAndroid Build Coastguard Worker void main() 592*35238bceSAndroid Build Coastguard Worker { 593*35238bceSAndroid Build Coastguard Worker ${SETUP} 594*35238bceSAndroid Build Coastguard Worker 595*35238bceSAndroid Build Coastguard Worker test a = test(in0.z, vec3(in0.x, in0.y, in0.z)); 596*35238bceSAndroid Build Coastguard Worker test b = test(in0.y, vec3(-in0.z, -in0.x, -in0.y)); 597*35238bceSAndroid Build Coastguard Worker test c = test(in0.x, vec3(-in0.y, in0.z, -in0.x)); 598*35238bceSAndroid Build Coastguard Worker 599*35238bceSAndroid Build Coastguard Worker test[3] t = test[3] (a, b, c); 600*35238bceSAndroid Build Coastguard Worker test[3] x = func(t); 601*35238bceSAndroid Build Coastguard Worker 602*35238bceSAndroid Build Coastguard Worker out0 = vec3(x[0].v.z, x[1].v.y, x[2].v.x); 603*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 604*35238bceSAndroid Build Coastguard Worker } 605*35238bceSAndroid Build Coastguard Worker "" 606*35238bceSAndroid Build Coastguard Worker end 607*35238bceSAndroid Build Coastguard Worker 608*35238bceSAndroid Build Coastguard Worker case int_vec3 609*35238bceSAndroid Build Coastguard Worker version 300 es 610*35238bceSAndroid Build Coastguard Worker values 611*35238bceSAndroid Build Coastguard Worker { 612*35238bceSAndroid Build Coastguard Worker input ivec3 in0 = [ ivec3(5, 1, 2) | ivec3(-5, 11, -1) ]; 613*35238bceSAndroid Build Coastguard Worker output ivec3 out0 = [ ivec3(1, 5, -2) | ivec3(11, -5, 1) ]; 614*35238bceSAndroid Build Coastguard Worker } 615*35238bceSAndroid Build Coastguard Worker 616*35238bceSAndroid Build Coastguard Worker both "" 617*35238bceSAndroid Build Coastguard Worker #version 300 es 618*35238bceSAndroid Build Coastguard Worker precision mediump int; 619*35238bceSAndroid Build Coastguard Worker precision mediump float; 620*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 621*35238bceSAndroid Build Coastguard Worker 622*35238bceSAndroid Build Coastguard Worker ivec3[3] func(ivec3[3] a) 623*35238bceSAndroid Build Coastguard Worker { 624*35238bceSAndroid Build Coastguard Worker return ivec3[3] (a[1], a[2], a[0]); 625*35238bceSAndroid Build Coastguard Worker } 626*35238bceSAndroid Build Coastguard Worker 627*35238bceSAndroid Build Coastguard Worker void main() 628*35238bceSAndroid Build Coastguard Worker { 629*35238bceSAndroid Build Coastguard Worker ${SETUP} 630*35238bceSAndroid Build Coastguard Worker ivec3[3] x = ivec3[3]( ivec3(in0.x, in0.y, -in0.z) , 631*35238bceSAndroid Build Coastguard Worker ivec3(in0.y, -in0.z, in0.x) , 632*35238bceSAndroid Build Coastguard Worker ivec3(-in0.z, in0.x, in0.y) ); 633*35238bceSAndroid Build Coastguard Worker x = func(x); 634*35238bceSAndroid Build Coastguard Worker out0 = ivec3(x[0].x, x[1].y, x[2].z); 635*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 636*35238bceSAndroid Build Coastguard Worker } 637*35238bceSAndroid Build Coastguard Worker "" 638*35238bceSAndroid Build Coastguard Worker end 639*35238bceSAndroid Build Coastguard Worker 640*35238bceSAndroid Build Coastguard Worker case bool_vec3 641*35238bceSAndroid Build Coastguard Worker version 300 es 642*35238bceSAndroid Build Coastguard Worker values 643*35238bceSAndroid Build Coastguard Worker { 644*35238bceSAndroid Build Coastguard Worker input bvec3 in0 = [ bvec3(true, false, false) ]; 645*35238bceSAndroid Build Coastguard Worker output bvec3 out0 = [ bvec3(false, true, false) ]; 646*35238bceSAndroid Build Coastguard Worker } 647*35238bceSAndroid Build Coastguard Worker 648*35238bceSAndroid Build Coastguard Worker both "" 649*35238bceSAndroid Build Coastguard Worker #version 300 es 650*35238bceSAndroid Build Coastguard Worker precision mediump int; 651*35238bceSAndroid Build Coastguard Worker precision mediump float; 652*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 653*35238bceSAndroid Build Coastguard Worker 654*35238bceSAndroid Build Coastguard Worker bvec3[3] func(bvec3[3] a) 655*35238bceSAndroid Build Coastguard Worker { 656*35238bceSAndroid Build Coastguard Worker return bvec3[3] (a[1], a[2], a[0]); 657*35238bceSAndroid Build Coastguard Worker } 658*35238bceSAndroid Build Coastguard Worker 659*35238bceSAndroid Build Coastguard Worker void main() 660*35238bceSAndroid Build Coastguard Worker { 661*35238bceSAndroid Build Coastguard Worker ${SETUP} 662*35238bceSAndroid Build Coastguard Worker bvec3[3] x = bvec3[3]( bvec3(in0.x, in0.y, in0.z) , 663*35238bceSAndroid Build Coastguard Worker bvec3(in0.y, in0.z, in0.x) , 664*35238bceSAndroid Build Coastguard Worker bvec3(in0.z, in0.x, in0.y) ); 665*35238bceSAndroid Build Coastguard Worker x = func(x); 666*35238bceSAndroid Build Coastguard Worker out0 = bvec3(x[0].x, x[1].y, x[2].z); 667*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 668*35238bceSAndroid Build Coastguard Worker } 669*35238bceSAndroid Build Coastguard Worker "" 670*35238bceSAndroid Build Coastguard Worker end 671*35238bceSAndroid Build Coastguard Worker 672*35238bceSAndroid Build Coastguard Worker case float_mat3 673*35238bceSAndroid Build Coastguard Worker version 300 es 674*35238bceSAndroid Build Coastguard Worker values 675*35238bceSAndroid Build Coastguard Worker { 676*35238bceSAndroid Build Coastguard Worker input vec3 in0 = [ vec3(0.5, 1.0, 2.0) | vec3(-1.5, 0.0, -2.3) ]; 677*35238bceSAndroid Build Coastguard Worker output vec3 out0 = [ vec3(2.0, -1.0, 2.0) | vec3(-2.3, 0.0, -2.3) ]; 678*35238bceSAndroid Build Coastguard Worker } 679*35238bceSAndroid Build Coastguard Worker 680*35238bceSAndroid Build Coastguard Worker both "" 681*35238bceSAndroid Build Coastguard Worker #version 300 es 682*35238bceSAndroid Build Coastguard Worker precision mediump float; 683*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 684*35238bceSAndroid Build Coastguard Worker 685*35238bceSAndroid Build Coastguard Worker mat3[3] func(mat3[3] x) 686*35238bceSAndroid Build Coastguard Worker { 687*35238bceSAndroid Build Coastguard Worker mat3[3] r; 688*35238bceSAndroid Build Coastguard Worker r[0] = x[1]; 689*35238bceSAndroid Build Coastguard Worker r[1] = x[2]; 690*35238bceSAndroid Build Coastguard Worker r[2] = x[0]; 691*35238bceSAndroid Build Coastguard Worker return r; 692*35238bceSAndroid Build Coastguard Worker } 693*35238bceSAndroid Build Coastguard Worker 694*35238bceSAndroid Build Coastguard Worker void main() 695*35238bceSAndroid Build Coastguard Worker { 696*35238bceSAndroid Build Coastguard Worker ${SETUP} 697*35238bceSAndroid Build Coastguard Worker mat3[3] a, b; 698*35238bceSAndroid Build Coastguard Worker a[0] = mat3(in0.x, in0.y, in0.z, 699*35238bceSAndroid Build Coastguard Worker in0.x, in0.y, in0.z, 700*35238bceSAndroid Build Coastguard Worker in0.x, in0.y, in0.z); 701*35238bceSAndroid Build Coastguard Worker a[1] = mat3(in0.z, in0.x, -in0.y, 702*35238bceSAndroid Build Coastguard Worker in0.z, in0.x, -in0.y, 703*35238bceSAndroid Build Coastguard Worker in0.z, in0.x, -in0.y); 704*35238bceSAndroid Build Coastguard Worker a[2] = mat3(-in0.z, -in0.z, in0.z, 705*35238bceSAndroid Build Coastguard Worker -in0.y, -in0.y, in0.y, 706*35238bceSAndroid Build Coastguard Worker -in0.x, -in0.x, in0.x); 707*35238bceSAndroid Build Coastguard Worker 708*35238bceSAndroid Build Coastguard Worker b = func(a); 709*35238bceSAndroid Build Coastguard Worker 710*35238bceSAndroid Build Coastguard Worker mat3 b0 = b[0]; 711*35238bceSAndroid Build Coastguard Worker mat3 b1 = b[1]; 712*35238bceSAndroid Build Coastguard Worker mat3 b2 = b[2]; 713*35238bceSAndroid Build Coastguard Worker 714*35238bceSAndroid Build Coastguard Worker float ret0 = b0[0][0]; 715*35238bceSAndroid Build Coastguard Worker float ret1 = b1[1][1]; 716*35238bceSAndroid Build Coastguard Worker float ret2 = b2[2][2]; 717*35238bceSAndroid Build Coastguard Worker 718*35238bceSAndroid Build Coastguard Worker out0 = vec3(ret0, ret1, ret2); 719*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 720*35238bceSAndroid Build Coastguard Worker } 721*35238bceSAndroid Build Coastguard Worker "" 722*35238bceSAndroid Build Coastguard Worker end 723*35238bceSAndroid Build Coastguard Worker 724*35238bceSAndroid Build Coastguard Worker case int_mat3 725*35238bceSAndroid Build Coastguard Worker version 300 es 726*35238bceSAndroid Build Coastguard Worker values 727*35238bceSAndroid Build Coastguard Worker { 728*35238bceSAndroid Build Coastguard Worker input ivec3 in0 = [ ivec3(5, 1, 2) | ivec3(-1, 0, -2) ]; 729*35238bceSAndroid Build Coastguard Worker output ivec3 out0 = [ ivec3(2, -1, 2) | ivec3(-2, 0, -2) ]; 730*35238bceSAndroid Build Coastguard Worker } 731*35238bceSAndroid Build Coastguard Worker 732*35238bceSAndroid Build Coastguard Worker both "" 733*35238bceSAndroid Build Coastguard Worker #version 300 es 734*35238bceSAndroid Build Coastguard Worker precision mediump int; 735*35238bceSAndroid Build Coastguard Worker precision mediump float; 736*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 737*35238bceSAndroid Build Coastguard Worker 738*35238bceSAndroid Build Coastguard Worker mat3[3] func(mat3[3] x) 739*35238bceSAndroid Build Coastguard Worker { 740*35238bceSAndroid Build Coastguard Worker mat3[3] r; 741*35238bceSAndroid Build Coastguard Worker r[0] = x[1]; 742*35238bceSAndroid Build Coastguard Worker r[1] = x[2]; 743*35238bceSAndroid Build Coastguard Worker r[2] = x[0]; 744*35238bceSAndroid Build Coastguard Worker return r; 745*35238bceSAndroid Build Coastguard Worker } 746*35238bceSAndroid Build Coastguard Worker 747*35238bceSAndroid Build Coastguard Worker void main() 748*35238bceSAndroid Build Coastguard Worker { 749*35238bceSAndroid Build Coastguard Worker ${SETUP} 750*35238bceSAndroid Build Coastguard Worker mat3[3] a, b; 751*35238bceSAndroid Build Coastguard Worker a[0] = mat3(in0.x, in0.y, in0.z, 752*35238bceSAndroid Build Coastguard Worker in0.x, in0.y, in0.z, 753*35238bceSAndroid Build Coastguard Worker in0.x, in0.y, in0.z); 754*35238bceSAndroid Build Coastguard Worker a[1] = mat3(in0.z, in0.x, -in0.y, 755*35238bceSAndroid Build Coastguard Worker in0.z, in0.x, -in0.y, 756*35238bceSAndroid Build Coastguard Worker in0.z, in0.x, -in0.y); 757*35238bceSAndroid Build Coastguard Worker a[2] = mat3(-in0.z, -in0.z, in0.z, 758*35238bceSAndroid Build Coastguard Worker -in0.y, -in0.y, in0.y, 759*35238bceSAndroid Build Coastguard Worker -in0.x, -in0.x, in0.x); 760*35238bceSAndroid Build Coastguard Worker 761*35238bceSAndroid Build Coastguard Worker b = func(a); 762*35238bceSAndroid Build Coastguard Worker 763*35238bceSAndroid Build Coastguard Worker mat3 b0 = b[0]; 764*35238bceSAndroid Build Coastguard Worker mat3 b1 = b[1]; 765*35238bceSAndroid Build Coastguard Worker mat3 b2 = b[2]; 766*35238bceSAndroid Build Coastguard Worker 767*35238bceSAndroid Build Coastguard Worker float ret0 = b0[0][0]; 768*35238bceSAndroid Build Coastguard Worker float ret1 = b1[1][1]; 769*35238bceSAndroid Build Coastguard Worker float ret2 = b2[2][2]; 770*35238bceSAndroid Build Coastguard Worker 771*35238bceSAndroid Build Coastguard Worker out0 = ivec3(ret0, ret1, ret2); 772*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 773*35238bceSAndroid Build Coastguard Worker } 774*35238bceSAndroid Build Coastguard Worker "" 775*35238bceSAndroid Build Coastguard Worker end 776*35238bceSAndroid Build Coastguard Worker 777*35238bceSAndroid Build Coastguard Worker case bool_mat3 778*35238bceSAndroid Build Coastguard Worker version 300 es 779*35238bceSAndroid Build Coastguard Worker values 780*35238bceSAndroid Build Coastguard Worker { 781*35238bceSAndroid Build Coastguard Worker input bvec3 in0 = [ bvec3(true, false, true) | bvec3(true, true, false) ]; 782*35238bceSAndroid Build Coastguard Worker output bvec3 out0 = [ bvec3(true, false, true) | bvec3(false, true, false) ]; 783*35238bceSAndroid Build Coastguard Worker } 784*35238bceSAndroid Build Coastguard Worker 785*35238bceSAndroid Build Coastguard Worker both "" 786*35238bceSAndroid Build Coastguard Worker #version 300 es 787*35238bceSAndroid Build Coastguard Worker precision mediump float; 788*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 789*35238bceSAndroid Build Coastguard Worker 790*35238bceSAndroid Build Coastguard Worker mat3[3] func(mat3[3] x) 791*35238bceSAndroid Build Coastguard Worker { 792*35238bceSAndroid Build Coastguard Worker mat3[3] r; 793*35238bceSAndroid Build Coastguard Worker r[0] = x[1]; 794*35238bceSAndroid Build Coastguard Worker r[1] = x[2]; 795*35238bceSAndroid Build Coastguard Worker r[2] = x[0]; 796*35238bceSAndroid Build Coastguard Worker return r; 797*35238bceSAndroid Build Coastguard Worker } 798*35238bceSAndroid Build Coastguard Worker 799*35238bceSAndroid Build Coastguard Worker void main() 800*35238bceSAndroid Build Coastguard Worker { 801*35238bceSAndroid Build Coastguard Worker ${SETUP} 802*35238bceSAndroid Build Coastguard Worker mat3[3] a, b; 803*35238bceSAndroid Build Coastguard Worker a[0] = mat3(in0.x, in0.y, in0.z, 804*35238bceSAndroid Build Coastguard Worker in0.x, in0.y, in0.z, 805*35238bceSAndroid Build Coastguard Worker in0.x, in0.y, in0.z); 806*35238bceSAndroid Build Coastguard Worker a[1] = mat3(in0.z, in0.x, in0.y, 807*35238bceSAndroid Build Coastguard Worker in0.z, in0.x, in0.y, 808*35238bceSAndroid Build Coastguard Worker in0.z, in0.x, in0.y); 809*35238bceSAndroid Build Coastguard Worker a[2] = mat3(in0.z, in0.z, in0.z, 810*35238bceSAndroid Build Coastguard Worker in0.y, in0.y, in0.y, 811*35238bceSAndroid Build Coastguard Worker in0.x, in0.x, in0.x); 812*35238bceSAndroid Build Coastguard Worker 813*35238bceSAndroid Build Coastguard Worker b = func(a); 814*35238bceSAndroid Build Coastguard Worker 815*35238bceSAndroid Build Coastguard Worker mat3 b0 = b[0]; 816*35238bceSAndroid Build Coastguard Worker mat3 b1 = b[1]; 817*35238bceSAndroid Build Coastguard Worker mat3 b2 = b[2]; 818*35238bceSAndroid Build Coastguard Worker 819*35238bceSAndroid Build Coastguard Worker float ret0 = b0[0][0]; 820*35238bceSAndroid Build Coastguard Worker float ret1 = b1[1][1]; 821*35238bceSAndroid Build Coastguard Worker float ret2 = b2[2][2]; 822*35238bceSAndroid Build Coastguard Worker 823*35238bceSAndroid Build Coastguard Worker out0 = bvec3(ret0, ret1, ret2); 824*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 825*35238bceSAndroid Build Coastguard Worker } 826*35238bceSAndroid Build Coastguard Worker "" 827*35238bceSAndroid Build Coastguard Worker end 828*35238bceSAndroid Build Coastguard Worker 829*35238bceSAndroid Build Coastguard Workerend # return 830*35238bceSAndroid Build Coastguard Worker 831*35238bceSAndroid Build Coastguard Workergroup unnamed_parameter "Array type as unnamed parameter of a function prototype" 832*35238bceSAndroid Build Coastguard Worker 833*35238bceSAndroid Build Coastguard Worker case float 834*35238bceSAndroid Build Coastguard Worker version 300 es 835*35238bceSAndroid Build Coastguard Worker values 836*35238bceSAndroid Build Coastguard Worker { 837*35238bceSAndroid Build Coastguard Worker input vec3 in0 = [ vec3(0.5, 1.0, 2.0) | vec3(7.4, -1.0, 2.0) | vec3(3.0, 1.6, -2.0) ]; 838*35238bceSAndroid Build Coastguard Worker output vec3 out0 = [ vec3(2.0, 0.5, 1.0) | vec3(2.0, 7.4, -1.0) | vec3(-2.0, 3.0, 1.6) ]; 839*35238bceSAndroid Build Coastguard Worker } 840*35238bceSAndroid Build Coastguard Worker 841*35238bceSAndroid Build Coastguard Worker both "" 842*35238bceSAndroid Build Coastguard Worker #version 300 es 843*35238bceSAndroid Build Coastguard Worker precision mediump float; 844*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 845*35238bceSAndroid Build Coastguard Worker 846*35238bceSAndroid Build Coastguard Worker float[3] func(float[3]); 847*35238bceSAndroid Build Coastguard Worker 848*35238bceSAndroid Build Coastguard Worker void main() 849*35238bceSAndroid Build Coastguard Worker { 850*35238bceSAndroid Build Coastguard Worker ${SETUP} 851*35238bceSAndroid Build Coastguard Worker float[3] a = float[3] (in0.x, in0.y, in0.z); 852*35238bceSAndroid Build Coastguard Worker float[3] b = func(a); 853*35238bceSAndroid Build Coastguard Worker out0 = vec3(b[0], b[1], b[2]); 854*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 855*35238bceSAndroid Build Coastguard Worker } 856*35238bceSAndroid Build Coastguard Worker 857*35238bceSAndroid Build Coastguard Worker float[3] func(float[3] a) 858*35238bceSAndroid Build Coastguard Worker { 859*35238bceSAndroid Build Coastguard Worker return float[3] (a[2], a[0], a[1]); 860*35238bceSAndroid Build Coastguard Worker } 861*35238bceSAndroid Build Coastguard Worker 862*35238bceSAndroid Build Coastguard Worker "" 863*35238bceSAndroid Build Coastguard Worker end 864*35238bceSAndroid Build Coastguard Worker 865*35238bceSAndroid Build Coastguard Worker case int 866*35238bceSAndroid Build Coastguard Worker version 300 es 867*35238bceSAndroid Build Coastguard Worker values 868*35238bceSAndroid Build Coastguard Worker { 869*35238bceSAndroid Build Coastguard Worker input ivec3 in0 = [ ivec3(0, 1, 2) | ivec3(7, -1, 2) | ivec3(3, 1, -2) ]; 870*35238bceSAndroid Build Coastguard Worker output ivec3 out0 = [ ivec3(2, 0, 1) | ivec3(2, 7, -1) | ivec3(-2, 3, 1) ]; 871*35238bceSAndroid Build Coastguard Worker } 872*35238bceSAndroid Build Coastguard Worker 873*35238bceSAndroid Build Coastguard Worker both "" 874*35238bceSAndroid Build Coastguard Worker #version 300 es 875*35238bceSAndroid Build Coastguard Worker precision mediump int; 876*35238bceSAndroid Build Coastguard Worker precision mediump float; 877*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 878*35238bceSAndroid Build Coastguard Worker 879*35238bceSAndroid Build Coastguard Worker int[3] func(int[3]); 880*35238bceSAndroid Build Coastguard Worker 881*35238bceSAndroid Build Coastguard Worker void main() 882*35238bceSAndroid Build Coastguard Worker { 883*35238bceSAndroid Build Coastguard Worker ${SETUP} 884*35238bceSAndroid Build Coastguard Worker int[3] a = int[3] (in0.x, in0.y, in0.z); 885*35238bceSAndroid Build Coastguard Worker int[3] b = func(a); 886*35238bceSAndroid Build Coastguard Worker out0 = ivec3(b[0], b[1], b[2]); 887*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 888*35238bceSAndroid Build Coastguard Worker } 889*35238bceSAndroid Build Coastguard Worker 890*35238bceSAndroid Build Coastguard Worker int[3] func(int[3] a) 891*35238bceSAndroid Build Coastguard Worker { 892*35238bceSAndroid Build Coastguard Worker return int[3] (a[2], a[0], a[1]); 893*35238bceSAndroid Build Coastguard Worker } 894*35238bceSAndroid Build Coastguard Worker 895*35238bceSAndroid Build Coastguard Worker "" 896*35238bceSAndroid Build Coastguard Worker end 897*35238bceSAndroid Build Coastguard Worker 898*35238bceSAndroid Build Coastguard Worker case bool 899*35238bceSAndroid Build Coastguard Worker version 300 es 900*35238bceSAndroid Build Coastguard Worker values 901*35238bceSAndroid Build Coastguard Worker { 902*35238bceSAndroid Build Coastguard Worker input bvec3 in0 = [ bvec3(false, true, true) ]; 903*35238bceSAndroid Build Coastguard Worker output bvec3 out0 = [ bvec3(true, false, true) ]; 904*35238bceSAndroid Build Coastguard Worker } 905*35238bceSAndroid Build Coastguard Worker 906*35238bceSAndroid Build Coastguard Worker both "" 907*35238bceSAndroid Build Coastguard Worker #version 300 es 908*35238bceSAndroid Build Coastguard Worker precision mediump float; 909*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 910*35238bceSAndroid Build Coastguard Worker 911*35238bceSAndroid Build Coastguard Worker bool[3] func(bool[3]); 912*35238bceSAndroid Build Coastguard Worker 913*35238bceSAndroid Build Coastguard Worker void main() 914*35238bceSAndroid Build Coastguard Worker { 915*35238bceSAndroid Build Coastguard Worker ${SETUP} 916*35238bceSAndroid Build Coastguard Worker bool[3] a = bool[3] (in0.x, in0.y, in0.z); 917*35238bceSAndroid Build Coastguard Worker bool[3] b = func(a); 918*35238bceSAndroid Build Coastguard Worker out0 = bvec3(b[0], b[1], b[2]); 919*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 920*35238bceSAndroid Build Coastguard Worker } 921*35238bceSAndroid Build Coastguard Worker 922*35238bceSAndroid Build Coastguard Worker bool[3] func(bool[3] a) 923*35238bceSAndroid Build Coastguard Worker { 924*35238bceSAndroid Build Coastguard Worker return bool[3] (a[2], a[0], a[1]); 925*35238bceSAndroid Build Coastguard Worker } 926*35238bceSAndroid Build Coastguard Worker 927*35238bceSAndroid Build Coastguard Worker "" 928*35238bceSAndroid Build Coastguard Worker end 929*35238bceSAndroid Build Coastguard Worker 930*35238bceSAndroid Build Coastguard Worker case struct 931*35238bceSAndroid Build Coastguard Worker version 300 es 932*35238bceSAndroid Build Coastguard Worker values 933*35238bceSAndroid Build Coastguard Worker { 934*35238bceSAndroid Build Coastguard Worker input vec3 in0 = [ vec3(0.5, 1.0, 2.0) ]; 935*35238bceSAndroid Build Coastguard Worker output vec3 out0 = [ vec3(-1.0, 2.0, 0.5) ]; 936*35238bceSAndroid Build Coastguard Worker } 937*35238bceSAndroid Build Coastguard Worker 938*35238bceSAndroid Build Coastguard Worker both "" 939*35238bceSAndroid Build Coastguard Worker #version 300 es 940*35238bceSAndroid Build Coastguard Worker precision mediump float; 941*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 942*35238bceSAndroid Build Coastguard Worker 943*35238bceSAndroid Build Coastguard Worker struct test 944*35238bceSAndroid Build Coastguard Worker { 945*35238bceSAndroid Build Coastguard Worker float f; 946*35238bceSAndroid Build Coastguard Worker vec3 v; 947*35238bceSAndroid Build Coastguard Worker }; 948*35238bceSAndroid Build Coastguard Worker 949*35238bceSAndroid Build Coastguard Worker test[3] func(test[3]); 950*35238bceSAndroid Build Coastguard Worker 951*35238bceSAndroid Build Coastguard Worker void main() 952*35238bceSAndroid Build Coastguard Worker { 953*35238bceSAndroid Build Coastguard Worker ${SETUP} 954*35238bceSAndroid Build Coastguard Worker 955*35238bceSAndroid Build Coastguard Worker test a = test(in0.z, vec3(in0.x, in0.y, in0.z)); 956*35238bceSAndroid Build Coastguard Worker test b = test(in0.y, vec3(-in0.z, -in0.x, -in0.y)); 957*35238bceSAndroid Build Coastguard Worker test c = test(in0.x, vec3(-in0.y, in0.z, -in0.x)); 958*35238bceSAndroid Build Coastguard Worker 959*35238bceSAndroid Build Coastguard Worker test[3] t = test[3] (a, b, c); 960*35238bceSAndroid Build Coastguard Worker test[3] x = func(t); 961*35238bceSAndroid Build Coastguard Worker out0 = vec3(x[0].v.z, x[1].v.y, x[2].v.x); 962*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 963*35238bceSAndroid Build Coastguard Worker } 964*35238bceSAndroid Build Coastguard Worker 965*35238bceSAndroid Build Coastguard Worker test[3] func(test[3] a) 966*35238bceSAndroid Build Coastguard Worker { 967*35238bceSAndroid Build Coastguard Worker return test[3] (a[1], a[2], a[0]); 968*35238bceSAndroid Build Coastguard Worker } 969*35238bceSAndroid Build Coastguard Worker 970*35238bceSAndroid Build Coastguard Worker "" 971*35238bceSAndroid Build Coastguard Worker end 972*35238bceSAndroid Build Coastguard Worker 973*35238bceSAndroid Build Coastguard Worker case float_vec3 974*35238bceSAndroid Build Coastguard Worker version 300 es 975*35238bceSAndroid Build Coastguard Worker values 976*35238bceSAndroid Build Coastguard Worker { 977*35238bceSAndroid Build Coastguard Worker input vec3 in0 = [ vec3(0.5, 1.0, 2.0) | vec3(-0.5, 11.2, -1.0) ]; 978*35238bceSAndroid Build Coastguard Worker output vec3 out0 = [ vec3(1.0, 0.5, -2.0) | vec3(11.2, -0.5, 1.0) ]; 979*35238bceSAndroid Build Coastguard Worker } 980*35238bceSAndroid Build Coastguard Worker 981*35238bceSAndroid Build Coastguard Worker both "" 982*35238bceSAndroid Build Coastguard Worker #version 300 es 983*35238bceSAndroid Build Coastguard Worker precision mediump float; 984*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 985*35238bceSAndroid Build Coastguard Worker 986*35238bceSAndroid Build Coastguard Worker vec3[3] func(vec3[3]); 987*35238bceSAndroid Build Coastguard Worker 988*35238bceSAndroid Build Coastguard Worker void main() 989*35238bceSAndroid Build Coastguard Worker { 990*35238bceSAndroid Build Coastguard Worker ${SETUP} 991*35238bceSAndroid Build Coastguard Worker vec3[3] x = vec3[3](vec3(in0.x, in0.y, -in0.z) , 992*35238bceSAndroid Build Coastguard Worker vec3(in0.y, -in0.z, in0.x) , 993*35238bceSAndroid Build Coastguard Worker vec3(-in0.z, in0.x, in0.y) ); 994*35238bceSAndroid Build Coastguard Worker x = func(x); 995*35238bceSAndroid Build Coastguard Worker out0 = vec3(x[0].x, x[1].y, x[2].z); 996*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 997*35238bceSAndroid Build Coastguard Worker } 998*35238bceSAndroid Build Coastguard Worker 999*35238bceSAndroid Build Coastguard Worker vec3[3] func(vec3[3] a) 1000*35238bceSAndroid Build Coastguard Worker { 1001*35238bceSAndroid Build Coastguard Worker return vec3[3] (a[1], a[2], a[0]); 1002*35238bceSAndroid Build Coastguard Worker } 1003*35238bceSAndroid Build Coastguard Worker "" 1004*35238bceSAndroid Build Coastguard Worker end 1005*35238bceSAndroid Build Coastguard Worker 1006*35238bceSAndroid Build Coastguard Worker case int_vec3 1007*35238bceSAndroid Build Coastguard Worker version 300 es 1008*35238bceSAndroid Build Coastguard Worker values 1009*35238bceSAndroid Build Coastguard Worker { 1010*35238bceSAndroid Build Coastguard Worker input ivec3 in0 = [ ivec3(5, 1, 2) | ivec3(-5, 11, -1) ]; 1011*35238bceSAndroid Build Coastguard Worker output ivec3 out0 = [ ivec3(1, 5, -2) | ivec3(11, -5, 1) ]; 1012*35238bceSAndroid Build Coastguard Worker } 1013*35238bceSAndroid Build Coastguard Worker 1014*35238bceSAndroid Build Coastguard Worker both "" 1015*35238bceSAndroid Build Coastguard Worker #version 300 es 1016*35238bceSAndroid Build Coastguard Worker precision mediump int; 1017*35238bceSAndroid Build Coastguard Worker precision mediump float; 1018*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1019*35238bceSAndroid Build Coastguard Worker 1020*35238bceSAndroid Build Coastguard Worker ivec3[3] func(ivec3[3]); 1021*35238bceSAndroid Build Coastguard Worker 1022*35238bceSAndroid Build Coastguard Worker void main() 1023*35238bceSAndroid Build Coastguard Worker { 1024*35238bceSAndroid Build Coastguard Worker ${SETUP} 1025*35238bceSAndroid Build Coastguard Worker ivec3[3] x = ivec3[3]( ivec3(in0.x, in0.y, -in0.z) , 1026*35238bceSAndroid Build Coastguard Worker ivec3(in0.y, -in0.z, in0.x) , 1027*35238bceSAndroid Build Coastguard Worker ivec3(-in0.z, in0.x, in0.y) ); 1028*35238bceSAndroid Build Coastguard Worker x = func(x); 1029*35238bceSAndroid Build Coastguard Worker out0 = ivec3(x[0].x, x[1].y, x[2].z); 1030*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1031*35238bceSAndroid Build Coastguard Worker } 1032*35238bceSAndroid Build Coastguard Worker 1033*35238bceSAndroid Build Coastguard Worker ivec3[3] func(ivec3[3] a) 1034*35238bceSAndroid Build Coastguard Worker { 1035*35238bceSAndroid Build Coastguard Worker return ivec3[3] (a[1], a[2], a[0]); 1036*35238bceSAndroid Build Coastguard Worker } 1037*35238bceSAndroid Build Coastguard Worker "" 1038*35238bceSAndroid Build Coastguard Worker end 1039*35238bceSAndroid Build Coastguard Worker 1040*35238bceSAndroid Build Coastguard Worker case bool_vec3 1041*35238bceSAndroid Build Coastguard Worker version 300 es 1042*35238bceSAndroid Build Coastguard Worker values 1043*35238bceSAndroid Build Coastguard Worker { 1044*35238bceSAndroid Build Coastguard Worker input bvec3 in0 = [ bvec3(true, false, false) ]; 1045*35238bceSAndroid Build Coastguard Worker output bvec3 out0 = [ bvec3(false, true, false) ]; 1046*35238bceSAndroid Build Coastguard Worker } 1047*35238bceSAndroid Build Coastguard Worker 1048*35238bceSAndroid Build Coastguard Worker both "" 1049*35238bceSAndroid Build Coastguard Worker #version 300 es 1050*35238bceSAndroid Build Coastguard Worker precision mediump int; 1051*35238bceSAndroid Build Coastguard Worker precision mediump float; 1052*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1053*35238bceSAndroid Build Coastguard Worker 1054*35238bceSAndroid Build Coastguard Worker bvec3[3] func(bvec3[3]); 1055*35238bceSAndroid Build Coastguard Worker 1056*35238bceSAndroid Build Coastguard Worker void main() 1057*35238bceSAndroid Build Coastguard Worker { 1058*35238bceSAndroid Build Coastguard Worker ${SETUP} 1059*35238bceSAndroid Build Coastguard Worker bvec3[3] x = bvec3[3]( bvec3(in0.x, in0.y, in0.z) , 1060*35238bceSAndroid Build Coastguard Worker bvec3(in0.y, in0.z, in0.x) , 1061*35238bceSAndroid Build Coastguard Worker bvec3(in0.z, in0.x, in0.y) ); 1062*35238bceSAndroid Build Coastguard Worker x = func(x); 1063*35238bceSAndroid Build Coastguard Worker out0 = bvec3(x[0].x, x[1].y, x[2].z); 1064*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1065*35238bceSAndroid Build Coastguard Worker } 1066*35238bceSAndroid Build Coastguard Worker 1067*35238bceSAndroid Build Coastguard Worker bvec3[3] func(bvec3[3] a) 1068*35238bceSAndroid Build Coastguard Worker { 1069*35238bceSAndroid Build Coastguard Worker return bvec3[3] (a[1], a[2], a[0]); 1070*35238bceSAndroid Build Coastguard Worker } 1071*35238bceSAndroid Build Coastguard Worker 1072*35238bceSAndroid Build Coastguard Worker "" 1073*35238bceSAndroid Build Coastguard Worker end 1074*35238bceSAndroid Build Coastguard Worker 1075*35238bceSAndroid Build Coastguard Worker case float_mat3 1076*35238bceSAndroid Build Coastguard Worker version 300 es 1077*35238bceSAndroid Build Coastguard Worker values 1078*35238bceSAndroid Build Coastguard Worker { 1079*35238bceSAndroid Build Coastguard Worker input vec3 in0 = [ vec3(0.5, 1.0, 2.0) | vec3(-1.5, 0.0, -2.3) ]; 1080*35238bceSAndroid Build Coastguard Worker output vec3 out0 = [ vec3(2.0, -1.0, 2.0) | vec3(-2.3, 0.0, -2.3) ]; 1081*35238bceSAndroid Build Coastguard Worker } 1082*35238bceSAndroid Build Coastguard Worker 1083*35238bceSAndroid Build Coastguard Worker both "" 1084*35238bceSAndroid Build Coastguard Worker #version 300 es 1085*35238bceSAndroid Build Coastguard Worker precision mediump float; 1086*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1087*35238bceSAndroid Build Coastguard Worker 1088*35238bceSAndroid Build Coastguard Worker mat3[3] func(mat3[3]); 1089*35238bceSAndroid Build Coastguard Worker 1090*35238bceSAndroid Build Coastguard Worker void main() 1091*35238bceSAndroid Build Coastguard Worker { 1092*35238bceSAndroid Build Coastguard Worker ${SETUP} 1093*35238bceSAndroid Build Coastguard Worker mat3[3] a, b; 1094*35238bceSAndroid Build Coastguard Worker a[0] = mat3(in0.x, in0.y, in0.z, 1095*35238bceSAndroid Build Coastguard Worker in0.x, in0.y, in0.z, 1096*35238bceSAndroid Build Coastguard Worker in0.x, in0.y, in0.z); 1097*35238bceSAndroid Build Coastguard Worker a[1] = mat3(in0.z, in0.x, -in0.y, 1098*35238bceSAndroid Build Coastguard Worker in0.z, in0.x, -in0.y, 1099*35238bceSAndroid Build Coastguard Worker in0.z, in0.x, -in0.y); 1100*35238bceSAndroid Build Coastguard Worker a[2] = mat3(-in0.z, -in0.z, in0.z, 1101*35238bceSAndroid Build Coastguard Worker -in0.y, -in0.y, in0.y, 1102*35238bceSAndroid Build Coastguard Worker -in0.x, -in0.x, in0.x); 1103*35238bceSAndroid Build Coastguard Worker 1104*35238bceSAndroid Build Coastguard Worker b = func(a); 1105*35238bceSAndroid Build Coastguard Worker 1106*35238bceSAndroid Build Coastguard Worker mat3 b0 = b[0]; 1107*35238bceSAndroid Build Coastguard Worker mat3 b1 = b[1]; 1108*35238bceSAndroid Build Coastguard Worker mat3 b2 = b[2]; 1109*35238bceSAndroid Build Coastguard Worker 1110*35238bceSAndroid Build Coastguard Worker float ret0 = b0[0][0]; 1111*35238bceSAndroid Build Coastguard Worker float ret1 = b1[1][1]; 1112*35238bceSAndroid Build Coastguard Worker float ret2 = b2[2][2]; 1113*35238bceSAndroid Build Coastguard Worker 1114*35238bceSAndroid Build Coastguard Worker out0 = vec3(ret0, ret1, ret2); 1115*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1116*35238bceSAndroid Build Coastguard Worker } 1117*35238bceSAndroid Build Coastguard Worker 1118*35238bceSAndroid Build Coastguard Worker mat3[3] func(mat3[3] x) 1119*35238bceSAndroid Build Coastguard Worker { 1120*35238bceSAndroid Build Coastguard Worker mat3[3] r; 1121*35238bceSAndroid Build Coastguard Worker r[0] = x[1]; 1122*35238bceSAndroid Build Coastguard Worker r[1] = x[2]; 1123*35238bceSAndroid Build Coastguard Worker r[2] = x[0]; 1124*35238bceSAndroid Build Coastguard Worker return r; 1125*35238bceSAndroid Build Coastguard Worker } 1126*35238bceSAndroid Build Coastguard Worker "" 1127*35238bceSAndroid Build Coastguard Worker end 1128*35238bceSAndroid Build Coastguard Worker 1129*35238bceSAndroid Build Coastguard Worker case int_mat3 1130*35238bceSAndroid Build Coastguard Worker version 300 es 1131*35238bceSAndroid Build Coastguard Worker values 1132*35238bceSAndroid Build Coastguard Worker { 1133*35238bceSAndroid Build Coastguard Worker input ivec3 in0 = [ ivec3(5, 1, 2) | ivec3(-1, 0, -2) ]; 1134*35238bceSAndroid Build Coastguard Worker output ivec3 out0 = [ ivec3(2, -1, 2) | ivec3(-2, 0, -2) ]; 1135*35238bceSAndroid Build Coastguard Worker } 1136*35238bceSAndroid Build Coastguard Worker 1137*35238bceSAndroid Build Coastguard Worker both "" 1138*35238bceSAndroid Build Coastguard Worker #version 300 es 1139*35238bceSAndroid Build Coastguard Worker precision mediump int; 1140*35238bceSAndroid Build Coastguard Worker precision mediump float; 1141*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1142*35238bceSAndroid Build Coastguard Worker 1143*35238bceSAndroid Build Coastguard Worker mat3[3] func(mat3[3]); 1144*35238bceSAndroid Build Coastguard Worker 1145*35238bceSAndroid Build Coastguard Worker void main() 1146*35238bceSAndroid Build Coastguard Worker { 1147*35238bceSAndroid Build Coastguard Worker ${SETUP} 1148*35238bceSAndroid Build Coastguard Worker mat3[3] a, b; 1149*35238bceSAndroid Build Coastguard Worker a[0] = mat3(in0.x, in0.y, in0.z, 1150*35238bceSAndroid Build Coastguard Worker in0.x, in0.y, in0.z, 1151*35238bceSAndroid Build Coastguard Worker in0.x, in0.y, in0.z); 1152*35238bceSAndroid Build Coastguard Worker a[1] = mat3(in0.z, in0.x, -in0.y, 1153*35238bceSAndroid Build Coastguard Worker in0.z, in0.x, -in0.y, 1154*35238bceSAndroid Build Coastguard Worker in0.z, in0.x, -in0.y); 1155*35238bceSAndroid Build Coastguard Worker a[2] = mat3(-in0.z, -in0.z, in0.z, 1156*35238bceSAndroid Build Coastguard Worker -in0.y, -in0.y, in0.y, 1157*35238bceSAndroid Build Coastguard Worker -in0.x, -in0.x, in0.x); 1158*35238bceSAndroid Build Coastguard Worker 1159*35238bceSAndroid Build Coastguard Worker b = func(a); 1160*35238bceSAndroid Build Coastguard Worker 1161*35238bceSAndroid Build Coastguard Worker mat3 b0 = b[0]; 1162*35238bceSAndroid Build Coastguard Worker mat3 b1 = b[1]; 1163*35238bceSAndroid Build Coastguard Worker mat3 b2 = b[2]; 1164*35238bceSAndroid Build Coastguard Worker 1165*35238bceSAndroid Build Coastguard Worker float ret0 = b0[0][0]; 1166*35238bceSAndroid Build Coastguard Worker float ret1 = b1[1][1]; 1167*35238bceSAndroid Build Coastguard Worker float ret2 = b2[2][2]; 1168*35238bceSAndroid Build Coastguard Worker 1169*35238bceSAndroid Build Coastguard Worker out0 = ivec3(ret0, ret1, ret2); 1170*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1171*35238bceSAndroid Build Coastguard Worker } 1172*35238bceSAndroid Build Coastguard Worker 1173*35238bceSAndroid Build Coastguard Worker mat3[3] func(mat3[3] x) 1174*35238bceSAndroid Build Coastguard Worker { 1175*35238bceSAndroid Build Coastguard Worker mat3[3] r; 1176*35238bceSAndroid Build Coastguard Worker r[0] = x[1]; 1177*35238bceSAndroid Build Coastguard Worker r[1] = x[2]; 1178*35238bceSAndroid Build Coastguard Worker r[2] = x[0]; 1179*35238bceSAndroid Build Coastguard Worker return r; 1180*35238bceSAndroid Build Coastguard Worker } 1181*35238bceSAndroid Build Coastguard Worker "" 1182*35238bceSAndroid Build Coastguard Worker end 1183*35238bceSAndroid Build Coastguard Worker 1184*35238bceSAndroid Build Coastguard Worker case bool_mat3 1185*35238bceSAndroid Build Coastguard Worker version 300 es 1186*35238bceSAndroid Build Coastguard Worker values 1187*35238bceSAndroid Build Coastguard Worker { 1188*35238bceSAndroid Build Coastguard Worker input bvec3 in0 = [ bvec3(true, false, true) | bvec3(true, true, false) ]; 1189*35238bceSAndroid Build Coastguard Worker output bvec3 out0 = [ bvec3(true, false, true) | bvec3(false, true, false) ]; 1190*35238bceSAndroid Build Coastguard Worker } 1191*35238bceSAndroid Build Coastguard Worker 1192*35238bceSAndroid Build Coastguard Worker both "" 1193*35238bceSAndroid Build Coastguard Worker #version 300 es 1194*35238bceSAndroid Build Coastguard Worker precision mediump float; 1195*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1196*35238bceSAndroid Build Coastguard Worker 1197*35238bceSAndroid Build Coastguard Worker mat3[3] func(mat3[3]); 1198*35238bceSAndroid Build Coastguard Worker void main() 1199*35238bceSAndroid Build Coastguard Worker { 1200*35238bceSAndroid Build Coastguard Worker ${SETUP} 1201*35238bceSAndroid Build Coastguard Worker mat3[3] a, b; 1202*35238bceSAndroid Build Coastguard Worker a[0] = mat3(in0.x, in0.y, in0.z, 1203*35238bceSAndroid Build Coastguard Worker in0.x, in0.y, in0.z, 1204*35238bceSAndroid Build Coastguard Worker in0.x, in0.y, in0.z); 1205*35238bceSAndroid Build Coastguard Worker a[1] = mat3(in0.z, in0.x, in0.y, 1206*35238bceSAndroid Build Coastguard Worker in0.z, in0.x, in0.y, 1207*35238bceSAndroid Build Coastguard Worker in0.z, in0.x, in0.y); 1208*35238bceSAndroid Build Coastguard Worker a[2] = mat3(in0.z, in0.z, in0.z, 1209*35238bceSAndroid Build Coastguard Worker in0.y, in0.y, in0.y, 1210*35238bceSAndroid Build Coastguard Worker in0.x, in0.x, in0.x); 1211*35238bceSAndroid Build Coastguard Worker 1212*35238bceSAndroid Build Coastguard Worker b = func(a); 1213*35238bceSAndroid Build Coastguard Worker 1214*35238bceSAndroid Build Coastguard Worker mat3 b0 = b[0]; 1215*35238bceSAndroid Build Coastguard Worker mat3 b1 = b[1]; 1216*35238bceSAndroid Build Coastguard Worker mat3 b2 = b[2]; 1217*35238bceSAndroid Build Coastguard Worker 1218*35238bceSAndroid Build Coastguard Worker float ret0 = b0[0][0]; 1219*35238bceSAndroid Build Coastguard Worker float ret1 = b1[1][1]; 1220*35238bceSAndroid Build Coastguard Worker float ret2 = b2[2][2]; 1221*35238bceSAndroid Build Coastguard Worker 1222*35238bceSAndroid Build Coastguard Worker out0 = bvec3(ret0, ret1, ret2); 1223*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1224*35238bceSAndroid Build Coastguard Worker } 1225*35238bceSAndroid Build Coastguard Worker 1226*35238bceSAndroid Build Coastguard Worker mat3[3] func(mat3[3] x) 1227*35238bceSAndroid Build Coastguard Worker { 1228*35238bceSAndroid Build Coastguard Worker mat3[3] r; 1229*35238bceSAndroid Build Coastguard Worker r[0] = x[1]; 1230*35238bceSAndroid Build Coastguard Worker r[1] = x[2]; 1231*35238bceSAndroid Build Coastguard Worker r[2] = x[0]; 1232*35238bceSAndroid Build Coastguard Worker return r; 1233*35238bceSAndroid Build Coastguard Worker } 1234*35238bceSAndroid Build Coastguard Worker "" 1235*35238bceSAndroid Build Coastguard Worker end 1236*35238bceSAndroid Build Coastguard Worker 1237*35238bceSAndroid Build Coastguard Workerend # unnamed_parameter 1238*35238bceSAndroid Build Coastguard Worker 1239*35238bceSAndroid Build Coastguard Workergroup declaration "Declaring arrays" 1240*35238bceSAndroid Build Coastguard Worker 1241*35238bceSAndroid Build Coastguard Worker case implicit_size_float 1242*35238bceSAndroid Build Coastguard Worker version 300 es 1243*35238bceSAndroid Build Coastguard Worker values 1244*35238bceSAndroid Build Coastguard Worker { 1245*35238bceSAndroid Build Coastguard Worker input vec3 in0 = [ vec3(0.5, 1.0, 2.0) | vec3(7.4, -1.0, 2.0) | vec3(3.0, 1.6, -2.0) ]; 1246*35238bceSAndroid Build Coastguard Worker output vec3 out0 = [ vec3(2.0, 0.5, 1.0) | vec3(2.0, 7.4, -1.0) | vec3(-2.0, 3.0, 1.6) ]; 1247*35238bceSAndroid Build Coastguard Worker } 1248*35238bceSAndroid Build Coastguard Worker 1249*35238bceSAndroid Build Coastguard Worker both "" 1250*35238bceSAndroid Build Coastguard Worker #version 300 es 1251*35238bceSAndroid Build Coastguard Worker precision mediump float; 1252*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1253*35238bceSAndroid Build Coastguard Worker 1254*35238bceSAndroid Build Coastguard Worker void main() 1255*35238bceSAndroid Build Coastguard Worker { 1256*35238bceSAndroid Build Coastguard Worker ${SETUP} 1257*35238bceSAndroid Build Coastguard Worker float[] x = float[] (in0.z, in0.x, in0.y); 1258*35238bceSAndroid Build Coastguard Worker float[] y = x; 1259*35238bceSAndroid Build Coastguard Worker 1260*35238bceSAndroid Build Coastguard Worker out0 = vec3(y[0], y[1], y[2]); 1261*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1262*35238bceSAndroid Build Coastguard Worker } 1263*35238bceSAndroid Build Coastguard Worker "" 1264*35238bceSAndroid Build Coastguard Worker end 1265*35238bceSAndroid Build Coastguard Worker 1266*35238bceSAndroid Build Coastguard Worker case implicit_size_int 1267*35238bceSAndroid Build Coastguard Worker version 300 es 1268*35238bceSAndroid Build Coastguard Worker values 1269*35238bceSAndroid Build Coastguard Worker { 1270*35238bceSAndroid Build Coastguard Worker input ivec3 in0 = [ ivec3(0, 1, 2) | ivec3(7, -1, 2) | ivec3(3, 1, -2) ]; 1271*35238bceSAndroid Build Coastguard Worker output ivec3 out0 = [ ivec3(2, 0, 1) | ivec3(2, 7, -1) | ivec3(-2, 3, 1) ]; 1272*35238bceSAndroid Build Coastguard Worker } 1273*35238bceSAndroid Build Coastguard Worker 1274*35238bceSAndroid Build Coastguard Worker both "" 1275*35238bceSAndroid Build Coastguard Worker #version 300 es 1276*35238bceSAndroid Build Coastguard Worker precision mediump int; 1277*35238bceSAndroid Build Coastguard Worker precision mediump float; 1278*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1279*35238bceSAndroid Build Coastguard Worker 1280*35238bceSAndroid Build Coastguard Worker void main() 1281*35238bceSAndroid Build Coastguard Worker { 1282*35238bceSAndroid Build Coastguard Worker ${SETUP} 1283*35238bceSAndroid Build Coastguard Worker int[] x = int[] (in0.z, in0.x, in0.y); 1284*35238bceSAndroid Build Coastguard Worker int[] y = x; 1285*35238bceSAndroid Build Coastguard Worker 1286*35238bceSAndroid Build Coastguard Worker out0 = ivec3(y[0], y[1], y[2]); 1287*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1288*35238bceSAndroid Build Coastguard Worker } 1289*35238bceSAndroid Build Coastguard Worker "" 1290*35238bceSAndroid Build Coastguard Worker end 1291*35238bceSAndroid Build Coastguard Worker 1292*35238bceSAndroid Build Coastguard Worker case implicit_size_bool 1293*35238bceSAndroid Build Coastguard Worker version 300 es 1294*35238bceSAndroid Build Coastguard Worker values 1295*35238bceSAndroid Build Coastguard Worker { 1296*35238bceSAndroid Build Coastguard Worker input bvec3 in0 = [ bvec3(false, true, true) ]; 1297*35238bceSAndroid Build Coastguard Worker output bvec3 out0 = [ bvec3(true, false, true) ]; 1298*35238bceSAndroid Build Coastguard Worker } 1299*35238bceSAndroid Build Coastguard Worker 1300*35238bceSAndroid Build Coastguard Worker both "" 1301*35238bceSAndroid Build Coastguard Worker #version 300 es 1302*35238bceSAndroid Build Coastguard Worker precision mediump float; 1303*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1304*35238bceSAndroid Build Coastguard Worker 1305*35238bceSAndroid Build Coastguard Worker void main() 1306*35238bceSAndroid Build Coastguard Worker { 1307*35238bceSAndroid Build Coastguard Worker ${SETUP} 1308*35238bceSAndroid Build Coastguard Worker bool[] x = bool[] (in0.z, in0.x, in0.y); 1309*35238bceSAndroid Build Coastguard Worker bool[] y = x; 1310*35238bceSAndroid Build Coastguard Worker 1311*35238bceSAndroid Build Coastguard Worker out0 = bvec3(y[0], y[1], y[2]); 1312*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1313*35238bceSAndroid Build Coastguard Worker } 1314*35238bceSAndroid Build Coastguard Worker "" 1315*35238bceSAndroid Build Coastguard Worker end 1316*35238bceSAndroid Build Coastguard Worker 1317*35238bceSAndroid Build Coastguard Worker case implicit_size_struct 1318*35238bceSAndroid Build Coastguard Worker version 300 es 1319*35238bceSAndroid Build Coastguard Worker values 1320*35238bceSAndroid Build Coastguard Worker { 1321*35238bceSAndroid Build Coastguard Worker input vec3 in0 = [ vec3(0.5, 1.0, 2.0) ]; 1322*35238bceSAndroid Build Coastguard Worker output vec3 out0 = [ vec3(-1.0, -0.5, 2.0) ]; 1323*35238bceSAndroid Build Coastguard Worker } 1324*35238bceSAndroid Build Coastguard Worker 1325*35238bceSAndroid Build Coastguard Worker both "" 1326*35238bceSAndroid Build Coastguard Worker #version 300 es 1327*35238bceSAndroid Build Coastguard Worker precision mediump float; 1328*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1329*35238bceSAndroid Build Coastguard Worker 1330*35238bceSAndroid Build Coastguard Worker struct test 1331*35238bceSAndroid Build Coastguard Worker { 1332*35238bceSAndroid Build Coastguard Worker float f; 1333*35238bceSAndroid Build Coastguard Worker vec3 v; 1334*35238bceSAndroid Build Coastguard Worker }; 1335*35238bceSAndroid Build Coastguard Worker 1336*35238bceSAndroid Build Coastguard Worker void main() 1337*35238bceSAndroid Build Coastguard Worker { 1338*35238bceSAndroid Build Coastguard Worker ${SETUP} 1339*35238bceSAndroid Build Coastguard Worker 1340*35238bceSAndroid Build Coastguard Worker test a = test(in0.z, vec3(in0.x, in0.y, in0.z)); 1341*35238bceSAndroid Build Coastguard Worker test b = test(in0.y, vec3(-in0.z, -in0.x, -in0.y)); 1342*35238bceSAndroid Build Coastguard Worker test c = test(in0.x, vec3(-in0.y, in0.z, -in0.x)); 1343*35238bceSAndroid Build Coastguard Worker 1344*35238bceSAndroid Build Coastguard Worker test[] x = test[] (c, b, a); 1345*35238bceSAndroid Build Coastguard Worker test[] y = x; 1346*35238bceSAndroid Build Coastguard Worker 1347*35238bceSAndroid Build Coastguard Worker out0 = vec3(y[0].v.x, y[1].v.y, y[2].v.z); 1348*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1349*35238bceSAndroid Build Coastguard Worker } 1350*35238bceSAndroid Build Coastguard Worker "" 1351*35238bceSAndroid Build Coastguard Worker end 1352*35238bceSAndroid Build Coastguard Worker 1353*35238bceSAndroid Build Coastguard Worker case implicit_size_float_vec3 1354*35238bceSAndroid Build Coastguard Worker version 300 es 1355*35238bceSAndroid Build Coastguard Worker values 1356*35238bceSAndroid Build Coastguard Worker { 1357*35238bceSAndroid Build Coastguard Worker input vec3 in0 = [ vec3(0.5, 1.0, 2.0) | vec3(-0.5, 11.2, -1.0) ]; 1358*35238bceSAndroid Build Coastguard Worker output vec3 out0 = [ vec3(0.5, -2.0, 1.0) | vec3(-0.5, 1.0, 11.2) ]; 1359*35238bceSAndroid Build Coastguard Worker } 1360*35238bceSAndroid Build Coastguard Worker 1361*35238bceSAndroid Build Coastguard Worker both "" 1362*35238bceSAndroid Build Coastguard Worker #version 300 es 1363*35238bceSAndroid Build Coastguard Worker precision mediump float; 1364*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1365*35238bceSAndroid Build Coastguard Worker 1366*35238bceSAndroid Build Coastguard Worker void main() 1367*35238bceSAndroid Build Coastguard Worker { 1368*35238bceSAndroid Build Coastguard Worker ${SETUP} 1369*35238bceSAndroid Build Coastguard Worker vec3[] x = vec3[] ( vec3(in0.x, in0.y, -in0.z) , 1370*35238bceSAndroid Build Coastguard Worker vec3(in0.y, -in0.z, in0.x) , 1371*35238bceSAndroid Build Coastguard Worker vec3(-in0.z, in0.x, in0.y) ); 1372*35238bceSAndroid Build Coastguard Worker vec3[] y = x; 1373*35238bceSAndroid Build Coastguard Worker out0 = vec3(y[0].x, y[1].y, y[2].z); 1374*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1375*35238bceSAndroid Build Coastguard Worker } 1376*35238bceSAndroid Build Coastguard Worker "" 1377*35238bceSAndroid Build Coastguard Worker end 1378*35238bceSAndroid Build Coastguard Worker 1379*35238bceSAndroid Build Coastguard Worker case implicit_size_int_ivec3 1380*35238bceSAndroid Build Coastguard Worker version 300 es 1381*35238bceSAndroid Build Coastguard Worker values 1382*35238bceSAndroid Build Coastguard Worker { 1383*35238bceSAndroid Build Coastguard Worker input ivec3 in0 = [ ivec3(0, 1, 2) | ivec3(5, 11, -1) ]; 1384*35238bceSAndroid Build Coastguard Worker output ivec3 out0 = [ ivec3(0, -2, 1) | ivec3(5, 1, 11) ]; 1385*35238bceSAndroid Build Coastguard Worker } 1386*35238bceSAndroid Build Coastguard Worker 1387*35238bceSAndroid Build Coastguard Worker both "" 1388*35238bceSAndroid Build Coastguard Worker #version 300 es 1389*35238bceSAndroid Build Coastguard Worker precision mediump int; 1390*35238bceSAndroid Build Coastguard Worker precision mediump float; 1391*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1392*35238bceSAndroid Build Coastguard Worker 1393*35238bceSAndroid Build Coastguard Worker void main() 1394*35238bceSAndroid Build Coastguard Worker { 1395*35238bceSAndroid Build Coastguard Worker ${SETUP} 1396*35238bceSAndroid Build Coastguard Worker ivec3[] x = ivec3[] ( ivec3(in0.x, in0.y, -in0.z) , 1397*35238bceSAndroid Build Coastguard Worker ivec3(in0.y, -in0.z, in0.x) , 1398*35238bceSAndroid Build Coastguard Worker ivec3(-in0.z, in0.x, in0.y) ); 1399*35238bceSAndroid Build Coastguard Worker ivec3[] y = x; 1400*35238bceSAndroid Build Coastguard Worker out0 = ivec3(y[0].x, y[1].y, y[2].z); 1401*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1402*35238bceSAndroid Build Coastguard Worker } 1403*35238bceSAndroid Build Coastguard Worker "" 1404*35238bceSAndroid Build Coastguard Worker end 1405*35238bceSAndroid Build Coastguard Worker 1406*35238bceSAndroid Build Coastguard Worker case implicit_size_bool_bvec3 1407*35238bceSAndroid Build Coastguard Worker version 300 es 1408*35238bceSAndroid Build Coastguard Worker values 1409*35238bceSAndroid Build Coastguard Worker { 1410*35238bceSAndroid Build Coastguard Worker input bvec3 in0 = [ bvec3(true, false, true) ]; 1411*35238bceSAndroid Build Coastguard Worker output bvec3 out0 = [ bvec3(true, true, false) ]; 1412*35238bceSAndroid Build Coastguard Worker } 1413*35238bceSAndroid Build Coastguard Worker 1414*35238bceSAndroid Build Coastguard Worker both "" 1415*35238bceSAndroid Build Coastguard Worker #version 300 es 1416*35238bceSAndroid Build Coastguard Worker precision mediump float; 1417*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1418*35238bceSAndroid Build Coastguard Worker 1419*35238bceSAndroid Build Coastguard Worker void main() 1420*35238bceSAndroid Build Coastguard Worker { 1421*35238bceSAndroid Build Coastguard Worker ${SETUP} 1422*35238bceSAndroid Build Coastguard Worker bvec3[] x = bvec3[] ( bvec3(in0.x, in0.y, in0.z) , 1423*35238bceSAndroid Build Coastguard Worker bvec3(in0.y, in0.z, in0.x) , 1424*35238bceSAndroid Build Coastguard Worker bvec3(in0.z, in0.x, in0.y) ); 1425*35238bceSAndroid Build Coastguard Worker bvec3[] y = x; 1426*35238bceSAndroid Build Coastguard Worker out0 = bvec3(y[0].x, y[1].y, y[2].z); 1427*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1428*35238bceSAndroid Build Coastguard Worker } 1429*35238bceSAndroid Build Coastguard Worker "" 1430*35238bceSAndroid Build Coastguard Worker end 1431*35238bceSAndroid Build Coastguard Worker 1432*35238bceSAndroid Build Coastguard Worker case implicit_size_float_mat3 1433*35238bceSAndroid Build Coastguard Worker version 300 es 1434*35238bceSAndroid Build Coastguard Worker values 1435*35238bceSAndroid Build Coastguard Worker { 1436*35238bceSAndroid Build Coastguard Worker input vec3 in0 = [ vec3(0.5, 1.0, 2.0) | vec3(-1.5, 0.0, -2.3) ]; 1437*35238bceSAndroid Build Coastguard Worker output vec3 out0 = [ vec3(0.5, -1.0, 1.0) | vec3(-1.5, 0.0, 0.0) ]; 1438*35238bceSAndroid Build Coastguard Worker } 1439*35238bceSAndroid Build Coastguard Worker 1440*35238bceSAndroid Build Coastguard Worker both "" 1441*35238bceSAndroid Build Coastguard Worker #version 300 es 1442*35238bceSAndroid Build Coastguard Worker precision mediump float; 1443*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1444*35238bceSAndroid Build Coastguard Worker 1445*35238bceSAndroid Build Coastguard Worker void main() 1446*35238bceSAndroid Build Coastguard Worker { 1447*35238bceSAndroid Build Coastguard Worker ${SETUP} 1448*35238bceSAndroid Build Coastguard Worker mat3[] a = mat3[] ( mat3( in0.x, in0.y, in0.z, 1449*35238bceSAndroid Build Coastguard Worker in0.x, in0.y, in0.z, 1450*35238bceSAndroid Build Coastguard Worker in0.x, in0.y, in0.z) , 1451*35238bceSAndroid Build Coastguard Worker mat3( in0.z, in0.x, -in0.y, 1452*35238bceSAndroid Build Coastguard Worker in0.z, in0.x, -in0.y, 1453*35238bceSAndroid Build Coastguard Worker in0.z, in0.x, -in0.y) , 1454*35238bceSAndroid Build Coastguard Worker mat3( -in0.z, -in0.z, in0.z, 1455*35238bceSAndroid Build Coastguard Worker -in0.y, -in0.y, in0.y, 1456*35238bceSAndroid Build Coastguard Worker -in0.x, -in0.x, in0.x) ); 1457*35238bceSAndroid Build Coastguard Worker 1458*35238bceSAndroid Build Coastguard Worker mat3 a0 = a[0]; 1459*35238bceSAndroid Build Coastguard Worker mat3 a1 = a[1]; 1460*35238bceSAndroid Build Coastguard Worker mat3 a2 = a[2]; 1461*35238bceSAndroid Build Coastguard Worker 1462*35238bceSAndroid Build Coastguard Worker float ret0 = a0[2][0]; 1463*35238bceSAndroid Build Coastguard Worker float ret1 = a1[0][2]; 1464*35238bceSAndroid Build Coastguard Worker float ret2 = a2[1][2]; 1465*35238bceSAndroid Build Coastguard Worker 1466*35238bceSAndroid Build Coastguard Worker out0 = vec3(ret0, ret1, ret2); 1467*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1468*35238bceSAndroid Build Coastguard Worker } 1469*35238bceSAndroid Build Coastguard Worker "" 1470*35238bceSAndroid Build Coastguard Worker end 1471*35238bceSAndroid Build Coastguard Worker 1472*35238bceSAndroid Build Coastguard Worker case implicit_size_int_mat3 1473*35238bceSAndroid Build Coastguard Worker version 300 es 1474*35238bceSAndroid Build Coastguard Worker values 1475*35238bceSAndroid Build Coastguard Worker { 1476*35238bceSAndroid Build Coastguard Worker input ivec3 in0 = [ ivec3(0, 1, 2) | ivec3(-1, 0, -2) ]; 1477*35238bceSAndroid Build Coastguard Worker output ivec3 out0 = [ ivec3(0, -1, 1) | ivec3(-1, 0, 0) ]; 1478*35238bceSAndroid Build Coastguard Worker } 1479*35238bceSAndroid Build Coastguard Worker 1480*35238bceSAndroid Build Coastguard Worker both "" 1481*35238bceSAndroid Build Coastguard Worker #version 300 es 1482*35238bceSAndroid Build Coastguard Worker precision mediump int; 1483*35238bceSAndroid Build Coastguard Worker precision mediump float; 1484*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1485*35238bceSAndroid Build Coastguard Worker 1486*35238bceSAndroid Build Coastguard Worker void main() 1487*35238bceSAndroid Build Coastguard Worker { 1488*35238bceSAndroid Build Coastguard Worker ${SETUP} 1489*35238bceSAndroid Build Coastguard Worker mat3[] a = mat3[] ( mat3( in0.x, in0.y, in0.z, 1490*35238bceSAndroid Build Coastguard Worker in0.x, in0.y, in0.z, 1491*35238bceSAndroid Build Coastguard Worker in0.x, in0.y, in0.z) , 1492*35238bceSAndroid Build Coastguard Worker mat3( in0.z, in0.x, -in0.y, 1493*35238bceSAndroid Build Coastguard Worker in0.z, in0.x, -in0.y, 1494*35238bceSAndroid Build Coastguard Worker in0.z, in0.x, -in0.y) , 1495*35238bceSAndroid Build Coastguard Worker mat3( -in0.z, -in0.z, in0.z, 1496*35238bceSAndroid Build Coastguard Worker -in0.y, -in0.y, in0.y, 1497*35238bceSAndroid Build Coastguard Worker -in0.x, -in0.x, in0.x) ); 1498*35238bceSAndroid Build Coastguard Worker 1499*35238bceSAndroid Build Coastguard Worker mat3 a0 = a[0]; 1500*35238bceSAndroid Build Coastguard Worker mat3 a1 = a[1]; 1501*35238bceSAndroid Build Coastguard Worker mat3 a2 = a[2]; 1502*35238bceSAndroid Build Coastguard Worker 1503*35238bceSAndroid Build Coastguard Worker float ret0 = a0[2][0]; 1504*35238bceSAndroid Build Coastguard Worker float ret1 = a1[0][2]; 1505*35238bceSAndroid Build Coastguard Worker float ret2 = a2[1][2]; 1506*35238bceSAndroid Build Coastguard Worker 1507*35238bceSAndroid Build Coastguard Worker out0 = ivec3(ret0, ret1, ret2); 1508*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1509*35238bceSAndroid Build Coastguard Worker } 1510*35238bceSAndroid Build Coastguard Worker "" 1511*35238bceSAndroid Build Coastguard Worker end 1512*35238bceSAndroid Build Coastguard Worker 1513*35238bceSAndroid Build Coastguard Worker case implicit_size_bool_mat3 1514*35238bceSAndroid Build Coastguard Worker version 300 es 1515*35238bceSAndroid Build Coastguard Worker values 1516*35238bceSAndroid Build Coastguard Worker { 1517*35238bceSAndroid Build Coastguard Worker input bvec3 in0 = [ bvec3(true, false, true) ]; 1518*35238bceSAndroid Build Coastguard Worker output bvec3 out0 = [ bvec3(true, false, false) ]; 1519*35238bceSAndroid Build Coastguard Worker } 1520*35238bceSAndroid Build Coastguard Worker 1521*35238bceSAndroid Build Coastguard Worker both "" 1522*35238bceSAndroid Build Coastguard Worker #version 300 es 1523*35238bceSAndroid Build Coastguard Worker precision mediump float; 1524*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1525*35238bceSAndroid Build Coastguard Worker 1526*35238bceSAndroid Build Coastguard Worker void main() 1527*35238bceSAndroid Build Coastguard Worker { 1528*35238bceSAndroid Build Coastguard Worker ${SETUP} 1529*35238bceSAndroid Build Coastguard Worker mat3[] a = mat3[] ( mat3( in0.x, in0.y, in0.z, 1530*35238bceSAndroid Build Coastguard Worker in0.x, in0.y, in0.z, 1531*35238bceSAndroid Build Coastguard Worker in0.x, in0.y, in0.z) , 1532*35238bceSAndroid Build Coastguard Worker mat3( in0.z, in0.x, in0.y, 1533*35238bceSAndroid Build Coastguard Worker in0.z, in0.x, in0.y, 1534*35238bceSAndroid Build Coastguard Worker in0.z, in0.x, in0.y) , 1535*35238bceSAndroid Build Coastguard Worker mat3( in0.z, in0.z, in0.z, 1536*35238bceSAndroid Build Coastguard Worker in0.y, in0.y, in0.y, 1537*35238bceSAndroid Build Coastguard Worker in0.x, in0.x, in0.x) ); 1538*35238bceSAndroid Build Coastguard Worker 1539*35238bceSAndroid Build Coastguard Worker mat3 a0 = a[0]; 1540*35238bceSAndroid Build Coastguard Worker mat3 a1 = a[1]; 1541*35238bceSAndroid Build Coastguard Worker mat3 a2 = a[2]; 1542*35238bceSAndroid Build Coastguard Worker 1543*35238bceSAndroid Build Coastguard Worker float ret0 = a0[2][0]; 1544*35238bceSAndroid Build Coastguard Worker float ret1 = a1[0][2]; 1545*35238bceSAndroid Build Coastguard Worker float ret2 = a2[1][2]; 1546*35238bceSAndroid Build Coastguard Worker 1547*35238bceSAndroid Build Coastguard Worker out0 = bvec3(ret0, ret1, ret2); 1548*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1549*35238bceSAndroid Build Coastguard Worker } 1550*35238bceSAndroid Build Coastguard Worker "" 1551*35238bceSAndroid Build Coastguard Worker end 1552*35238bceSAndroid Build Coastguard Worker 1553*35238bceSAndroid Build Coastguard Worker 1554*35238bceSAndroid Build Coastguard Worker case constant_expression_array_size 1555*35238bceSAndroid Build Coastguard Worker version 300 es 1556*35238bceSAndroid Build Coastguard Worker 1557*35238bceSAndroid Build Coastguard Worker both "" 1558*35238bceSAndroid Build Coastguard Worker #version 300 es 1559*35238bceSAndroid Build Coastguard Worker precision mediump float; 1560*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1561*35238bceSAndroid Build Coastguard Worker 1562*35238bceSAndroid Build Coastguard Worker const int a = 4; 1563*35238bceSAndroid Build Coastguard Worker 1564*35238bceSAndroid Build Coastguard Worker void main () 1565*35238bceSAndroid Build Coastguard Worker { 1566*35238bceSAndroid Build Coastguard Worker const int b = 5; 1567*35238bceSAndroid Build Coastguard Worker float[a] array1; 1568*35238bceSAndroid Build Coastguard Worker float[b] array2; 1569*35238bceSAndroid Build Coastguard Worker float[array1.length()] array3; 1570*35238bceSAndroid Build Coastguard Worker float[a+b] array4; 1571*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1572*35238bceSAndroid Build Coastguard Worker } 1573*35238bceSAndroid Build Coastguard Worker "" 1574*35238bceSAndroid Build Coastguard Worker end 1575*35238bceSAndroid Build Coastguard Worker 1576*35238bceSAndroid Build Coastguard Worker case constant_expression_array_access 1577*35238bceSAndroid Build Coastguard Worker version 300 es 1578*35238bceSAndroid Build Coastguard Worker values 1579*35238bceSAndroid Build Coastguard Worker { 1580*35238bceSAndroid Build Coastguard Worker input vec3 in0 = [ vec3(0.5, 1.0, 2.0) ]; 1581*35238bceSAndroid Build Coastguard Worker output vec3 out0 = [ vec3(-2.0, -1.0, -0.5) ]; 1582*35238bceSAndroid Build Coastguard Worker } 1583*35238bceSAndroid Build Coastguard Worker 1584*35238bceSAndroid Build Coastguard Worker both "" 1585*35238bceSAndroid Build Coastguard Worker #version 300 es 1586*35238bceSAndroid Build Coastguard Worker precision mediump float; 1587*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1588*35238bceSAndroid Build Coastguard Worker 1589*35238bceSAndroid Build Coastguard Worker const int a = 3; 1590*35238bceSAndroid Build Coastguard Worker 1591*35238bceSAndroid Build Coastguard Worker void main () 1592*35238bceSAndroid Build Coastguard Worker { 1593*35238bceSAndroid Build Coastguard Worker ${SETUP} 1594*35238bceSAndroid Build Coastguard Worker const int b = 2; 1595*35238bceSAndroid Build Coastguard Worker float x = float[] (in0.x, in0.y, in0.z, -in0.z, -in0.y, -in0.x) [a]; 1596*35238bceSAndroid Build Coastguard Worker float y = float[] (in0.x, in0.y, in0.z, -in0.z, -in0.y, -in0.x) [b+2]; 1597*35238bceSAndroid Build Coastguard Worker float z = float[] (in0.x, in0.y, in0.z, -in0.z, -in0.y, -in0.x) [5]; 1598*35238bceSAndroid Build Coastguard Worker out0 = vec3(x, y, z); 1599*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1600*35238bceSAndroid Build Coastguard Worker } 1601*35238bceSAndroid Build Coastguard Worker "" 1602*35238bceSAndroid Build Coastguard Worker end 1603*35238bceSAndroid Build Coastguard Worker 1604*35238bceSAndroid Build Coastguard Worker case dynamic_expression_array_access 1605*35238bceSAndroid Build Coastguard Worker version 300 es 1606*35238bceSAndroid Build Coastguard Worker values 1607*35238bceSAndroid Build Coastguard Worker { 1608*35238bceSAndroid Build Coastguard Worker input vec3 in0 = [ vec3(0.5, 1.0, 2.0) ]; 1609*35238bceSAndroid Build Coastguard Worker input ivec2 in1 = ivec2(3, 2); 1610*35238bceSAndroid Build Coastguard Worker output vec3 out0 = [ vec3(-2.0, -1.0, -0.5) ]; 1611*35238bceSAndroid Build Coastguard Worker } 1612*35238bceSAndroid Build Coastguard Worker 1613*35238bceSAndroid Build Coastguard Worker both "" 1614*35238bceSAndroid Build Coastguard Worker #version 300 es 1615*35238bceSAndroid Build Coastguard Worker precision mediump float; 1616*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1617*35238bceSAndroid Build Coastguard Worker 1618*35238bceSAndroid Build Coastguard Worker void main () 1619*35238bceSAndroid Build Coastguard Worker { 1620*35238bceSAndroid Build Coastguard Worker ${SETUP} 1621*35238bceSAndroid Build Coastguard Worker float x = float[] (in0.x, in0.y, in0.z, -in0.z, -in0.y, -in0.x) [in1.x]; 1622*35238bceSAndroid Build Coastguard Worker float y = float[] (in0.x, in0.y, in0.z, -in0.z, -in0.y, -in0.x) [in1.y+2]; 1623*35238bceSAndroid Build Coastguard Worker float z = float[] (in0.x, in0.y, in0.z, -in0.z, -in0.y, -in0.x) [in1.x+in1.y]; 1624*35238bceSAndroid Build Coastguard Worker out0 = vec3(x, y, z); 1625*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1626*35238bceSAndroid Build Coastguard Worker } 1627*35238bceSAndroid Build Coastguard Worker "" 1628*35238bceSAndroid Build Coastguard Worker end 1629*35238bceSAndroid Build Coastguard Worker 1630*35238bceSAndroid Build Coastguard Worker case multiple_declarations_single_statement_explicit 1631*35238bceSAndroid Build Coastguard Worker version 300 es 1632*35238bceSAndroid Build Coastguard Worker values 1633*35238bceSAndroid Build Coastguard Worker { 1634*35238bceSAndroid Build Coastguard Worker input vec3 in0 = [ vec3(0.5, 1.0, 2.0) ]; 1635*35238bceSAndroid Build Coastguard Worker output vec3 out0 = [ vec3(2.0, -1.0, 0.5) ]; 1636*35238bceSAndroid Build Coastguard Worker } 1637*35238bceSAndroid Build Coastguard Worker 1638*35238bceSAndroid Build Coastguard Worker both "" 1639*35238bceSAndroid Build Coastguard Worker #version 300 es 1640*35238bceSAndroid Build Coastguard Worker precision mediump float; 1641*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1642*35238bceSAndroid Build Coastguard Worker 1643*35238bceSAndroid Build Coastguard Worker void main () 1644*35238bceSAndroid Build Coastguard Worker { 1645*35238bceSAndroid Build Coastguard Worker ${SETUP} 1646*35238bceSAndroid Build Coastguard Worker float[] x = float[6] (in0.x, in0.y, in0.z, -in0.z, -in0.y, -in0.x), 1647*35238bceSAndroid Build Coastguard Worker y = float[2] (in0.x, -in0.y); 1648*35238bceSAndroid Build Coastguard Worker out0 = vec3(x[2], y[1], x[0]); 1649*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1650*35238bceSAndroid Build Coastguard Worker } 1651*35238bceSAndroid Build Coastguard Worker "" 1652*35238bceSAndroid Build Coastguard Worker end 1653*35238bceSAndroid Build Coastguard Worker 1654*35238bceSAndroid Build Coastguard Worker case multiple_declarations_single_statement_implicit 1655*35238bceSAndroid Build Coastguard Worker version 300 es 1656*35238bceSAndroid Build Coastguard Worker values 1657*35238bceSAndroid Build Coastguard Worker { 1658*35238bceSAndroid Build Coastguard Worker input ivec3 in0 = [ ivec3(5, 1, 2) ]; 1659*35238bceSAndroid Build Coastguard Worker output ivec3 out0 = [ ivec3(2, -1, 5) ]; 1660*35238bceSAndroid Build Coastguard Worker } 1661*35238bceSAndroid Build Coastguard Worker 1662*35238bceSAndroid Build Coastguard Worker both "" 1663*35238bceSAndroid Build Coastguard Worker #version 300 es 1664*35238bceSAndroid Build Coastguard Worker precision mediump float; 1665*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1666*35238bceSAndroid Build Coastguard Worker 1667*35238bceSAndroid Build Coastguard Worker void main () 1668*35238bceSAndroid Build Coastguard Worker { 1669*35238bceSAndroid Build Coastguard Worker ${SETUP} 1670*35238bceSAndroid Build Coastguard Worker int[] x = int[] (in0.x, in0.y, in0.z, -in0.z, -in0.y, -in0.x), 1671*35238bceSAndroid Build Coastguard Worker y = int[] (in0.x, -in0.y); 1672*35238bceSAndroid Build Coastguard Worker out0 = ivec3(x[2], y[1], x[0]); 1673*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1674*35238bceSAndroid Build Coastguard Worker } 1675*35238bceSAndroid Build Coastguard Worker "" 1676*35238bceSAndroid Build Coastguard Worker end 1677*35238bceSAndroid Build Coastguard Worker 1678*35238bceSAndroid Build Coastguard Workerend # declaration 1679*35238bceSAndroid Build Coastguard Worker 1680*35238bceSAndroid Build Coastguard Workergroup length "Array length method" 1681*35238bceSAndroid Build Coastguard Worker 1682*35238bceSAndroid Build Coastguard Worker case float 1683*35238bceSAndroid Build Coastguard Worker version 300 es 1684*35238bceSAndroid Build Coastguard Worker values 1685*35238bceSAndroid Build Coastguard Worker { 1686*35238bceSAndroid Build Coastguard Worker input vec3 in0 = [ vec3(0.5, 1.0, 2.0) ]; 1687*35238bceSAndroid Build Coastguard Worker output ivec3 out0 = [ ivec3(3, 5, 13) ]; 1688*35238bceSAndroid Build Coastguard Worker } 1689*35238bceSAndroid Build Coastguard Worker 1690*35238bceSAndroid Build Coastguard Worker both "" 1691*35238bceSAndroid Build Coastguard Worker #version 300 es 1692*35238bceSAndroid Build Coastguard Worker precision mediump float; 1693*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1694*35238bceSAndroid Build Coastguard Worker 1695*35238bceSAndroid Build Coastguard Worker void main() 1696*35238bceSAndroid Build Coastguard Worker { 1697*35238bceSAndroid Build Coastguard Worker ${SETUP} 1698*35238bceSAndroid Build Coastguard Worker float[] x = float[3] (in0.z, in0.x, in0.y); 1699*35238bceSAndroid Build Coastguard Worker float[] y = float[] (in0.z, in0.x, in0.y, in0.x, in0.y); 1700*35238bceSAndroid Build Coastguard Worker float[13] z; 1701*35238bceSAndroid Build Coastguard Worker 1702*35238bceSAndroid Build Coastguard Worker out0 = ivec3(x.length(), y.length(), z.length()); 1703*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1704*35238bceSAndroid Build Coastguard Worker } 1705*35238bceSAndroid Build Coastguard Worker "" 1706*35238bceSAndroid Build Coastguard Worker end 1707*35238bceSAndroid Build Coastguard Worker 1708*35238bceSAndroid Build Coastguard Worker case int 1709*35238bceSAndroid Build Coastguard Worker version 300 es 1710*35238bceSAndroid Build Coastguard Worker values 1711*35238bceSAndroid Build Coastguard Worker { 1712*35238bceSAndroid Build Coastguard Worker input ivec3 in0 = [ ivec3(0, 1, 2) ]; 1713*35238bceSAndroid Build Coastguard Worker output ivec3 out0 = [ ivec3(3, 5, 13) ]; 1714*35238bceSAndroid Build Coastguard Worker } 1715*35238bceSAndroid Build Coastguard Worker 1716*35238bceSAndroid Build Coastguard Worker both "" 1717*35238bceSAndroid Build Coastguard Worker #version 300 es 1718*35238bceSAndroid Build Coastguard Worker precision mediump int; 1719*35238bceSAndroid Build Coastguard Worker precision mediump float; 1720*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1721*35238bceSAndroid Build Coastguard Worker 1722*35238bceSAndroid Build Coastguard Worker void main() 1723*35238bceSAndroid Build Coastguard Worker { 1724*35238bceSAndroid Build Coastguard Worker ${SETUP} 1725*35238bceSAndroid Build Coastguard Worker int[] x = int[3] (in0.z, in0.x, in0.y); 1726*35238bceSAndroid Build Coastguard Worker int[] y = int[] (in0.z, in0.x, in0.y, in0.x, in0.y); 1727*35238bceSAndroid Build Coastguard Worker int[13] z; 1728*35238bceSAndroid Build Coastguard Worker 1729*35238bceSAndroid Build Coastguard Worker out0 = ivec3(x.length(), y.length(), z.length()); 1730*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1731*35238bceSAndroid Build Coastguard Worker } 1732*35238bceSAndroid Build Coastguard Worker "" 1733*35238bceSAndroid Build Coastguard Worker end 1734*35238bceSAndroid Build Coastguard Worker 1735*35238bceSAndroid Build Coastguard Worker case bool 1736*35238bceSAndroid Build Coastguard Worker version 300 es 1737*35238bceSAndroid Build Coastguard Worker values 1738*35238bceSAndroid Build Coastguard Worker { 1739*35238bceSAndroid Build Coastguard Worker input bvec3 in0 = [ bvec3(true, false, true) ]; 1740*35238bceSAndroid Build Coastguard Worker output ivec3 out0 = [ ivec3(3, 5, 13) ]; 1741*35238bceSAndroid Build Coastguard Worker } 1742*35238bceSAndroid Build Coastguard Worker 1743*35238bceSAndroid Build Coastguard Worker both "" 1744*35238bceSAndroid Build Coastguard Worker #version 300 es 1745*35238bceSAndroid Build Coastguard Worker precision mediump float; 1746*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1747*35238bceSAndroid Build Coastguard Worker 1748*35238bceSAndroid Build Coastguard Worker void main() 1749*35238bceSAndroid Build Coastguard Worker { 1750*35238bceSAndroid Build Coastguard Worker ${SETUP} 1751*35238bceSAndroid Build Coastguard Worker bool[] x = bool[3] (in0.z, in0.x, in0.y); 1752*35238bceSAndroid Build Coastguard Worker bool[] y = bool[] (in0.z, in0.x, in0.y, in0.x, in0.y); 1753*35238bceSAndroid Build Coastguard Worker bool[13] z; 1754*35238bceSAndroid Build Coastguard Worker 1755*35238bceSAndroid Build Coastguard Worker out0 = ivec3(x.length(), y.length(), z.length()); 1756*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1757*35238bceSAndroid Build Coastguard Worker } 1758*35238bceSAndroid Build Coastguard Worker "" 1759*35238bceSAndroid Build Coastguard Worker end 1760*35238bceSAndroid Build Coastguard Worker 1761*35238bceSAndroid Build Coastguard Worker case struct 1762*35238bceSAndroid Build Coastguard Worker version 300 es 1763*35238bceSAndroid Build Coastguard Worker values 1764*35238bceSAndroid Build Coastguard Worker { 1765*35238bceSAndroid Build Coastguard Worker input vec3 in0 = [ vec3(0.5, 1.0, 2.0) ]; 1766*35238bceSAndroid Build Coastguard Worker output ivec3 out0 = [ ivec3(3, 5, 13) ]; 1767*35238bceSAndroid Build Coastguard Worker } 1768*35238bceSAndroid Build Coastguard Worker 1769*35238bceSAndroid Build Coastguard Worker both "" 1770*35238bceSAndroid Build Coastguard Worker #version 300 es 1771*35238bceSAndroid Build Coastguard Worker precision mediump float; 1772*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1773*35238bceSAndroid Build Coastguard Worker 1774*35238bceSAndroid Build Coastguard Worker struct test 1775*35238bceSAndroid Build Coastguard Worker { 1776*35238bceSAndroid Build Coastguard Worker float f; 1777*35238bceSAndroid Build Coastguard Worker vec3 v; 1778*35238bceSAndroid Build Coastguard Worker }; 1779*35238bceSAndroid Build Coastguard Worker 1780*35238bceSAndroid Build Coastguard Worker void main() 1781*35238bceSAndroid Build Coastguard Worker { 1782*35238bceSAndroid Build Coastguard Worker ${SETUP} 1783*35238bceSAndroid Build Coastguard Worker 1784*35238bceSAndroid Build Coastguard Worker test a = test(in0.z, vec3(in0.x, in0.y, in0.z)); 1785*35238bceSAndroid Build Coastguard Worker test b = test(in0.y, vec3(-in0.z, -in0.x, -in0.y)); 1786*35238bceSAndroid Build Coastguard Worker test c = test(in0.x, vec3(-in0.y, in0.z, -in0.x)); 1787*35238bceSAndroid Build Coastguard Worker 1788*35238bceSAndroid Build Coastguard Worker test[] x = test[3] (a, b, c); 1789*35238bceSAndroid Build Coastguard Worker test[] y = test[] (c, a, b, b, a); 1790*35238bceSAndroid Build Coastguard Worker test[13] z; 1791*35238bceSAndroid Build Coastguard Worker 1792*35238bceSAndroid Build Coastguard Worker out0 = ivec3(x.length(), y.length(), z.length()); 1793*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1794*35238bceSAndroid Build Coastguard Worker } 1795*35238bceSAndroid Build Coastguard Worker "" 1796*35238bceSAndroid Build Coastguard Worker end 1797*35238bceSAndroid Build Coastguard Worker 1798*35238bceSAndroid Build Coastguard Workerend # length 1799*35238bceSAndroid Build Coastguard Worker 1800*35238bceSAndroid Build Coastguard Workergroup invalid "Invalid Functions" 1801*35238bceSAndroid Build Coastguard Worker 1802*35238bceSAndroid Build Coastguard Worker case multidimensional_array1 1803*35238bceSAndroid Build Coastguard Worker version 300 es 1804*35238bceSAndroid Build Coastguard Worker expect compile_fail 1805*35238bceSAndroid Build Coastguard Worker 1806*35238bceSAndroid Build Coastguard Worker both "" 1807*35238bceSAndroid Build Coastguard Worker #version 300 es 1808*35238bceSAndroid Build Coastguard Worker precision mediump float; 1809*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1810*35238bceSAndroid Build Coastguard Worker 1811*35238bceSAndroid Build Coastguard Worker void main () 1812*35238bceSAndroid Build Coastguard Worker { 1813*35238bceSAndroid Build Coastguard Worker float a[5][3]; 1814*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 1815*35238bceSAndroid Build Coastguard Worker } 1816*35238bceSAndroid Build Coastguard Worker "" 1817*35238bceSAndroid Build Coastguard Worker end 1818*35238bceSAndroid Build Coastguard Worker 1819*35238bceSAndroid Build Coastguard Worker case multidimensional_array2 1820*35238bceSAndroid Build Coastguard Worker version 300 es 1821*35238bceSAndroid Build Coastguard Worker expect compile_fail 1822*35238bceSAndroid Build Coastguard Worker 1823*35238bceSAndroid Build Coastguard Worker both "" 1824*35238bceSAndroid Build Coastguard Worker #version 300 es 1825*35238bceSAndroid Build Coastguard Worker precision mediump float; 1826*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1827*35238bceSAndroid Build Coastguard Worker 1828*35238bceSAndroid Build Coastguard Worker void main () 1829*35238bceSAndroid Build Coastguard Worker { 1830*35238bceSAndroid Build Coastguard Worker float[5] a[3]; 1831*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 1832*35238bceSAndroid Build Coastguard Worker } 1833*35238bceSAndroid Build Coastguard Worker "" 1834*35238bceSAndroid Build Coastguard Worker end 1835*35238bceSAndroid Build Coastguard Worker 1836*35238bceSAndroid Build Coastguard Worker case multidimensional_uniform_array 1837*35238bceSAndroid Build Coastguard Worker version 300 es 1838*35238bceSAndroid Build Coastguard Worker expect compile_fail 1839*35238bceSAndroid Build Coastguard Worker 1840*35238bceSAndroid Build Coastguard Worker both "" 1841*35238bceSAndroid Build Coastguard Worker #version 300 es 1842*35238bceSAndroid Build Coastguard Worker precision mediump float; 1843*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1844*35238bceSAndroid Build Coastguard Worker uniform float a[3][2]; 1845*35238bceSAndroid Build Coastguard Worker 1846*35238bceSAndroid Build Coastguard Worker void main () 1847*35238bceSAndroid Build Coastguard Worker { 1848*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 1849*35238bceSAndroid Build Coastguard Worker } 1850*35238bceSAndroid Build Coastguard Worker "" 1851*35238bceSAndroid Build Coastguard Worker end 1852*35238bceSAndroid Build Coastguard Worker 1853*35238bceSAndroid Build Coastguard Worker case multidimensional_array_in_uniform_block 1854*35238bceSAndroid Build Coastguard Worker version 300 es 1855*35238bceSAndroid Build Coastguard Worker expect compile_fail 1856*35238bceSAndroid Build Coastguard Worker 1857*35238bceSAndroid Build Coastguard Worker both "" 1858*35238bceSAndroid Build Coastguard Worker #version 300 es 1859*35238bceSAndroid Build Coastguard Worker precision mediump float; 1860*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1861*35238bceSAndroid Build Coastguard Worker uniform MyBlock 1862*35238bceSAndroid Build Coastguard Worker { 1863*35238bceSAndroid Build Coastguard Worker float a[3][2]; 1864*35238bceSAndroid Build Coastguard Worker }; 1865*35238bceSAndroid Build Coastguard Worker 1866*35238bceSAndroid Build Coastguard Worker void main () 1867*35238bceSAndroid Build Coastguard Worker { 1868*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 1869*35238bceSAndroid Build Coastguard Worker } 1870*35238bceSAndroid Build Coastguard Worker "" 1871*35238bceSAndroid Build Coastguard Worker end 1872*35238bceSAndroid Build Coastguard Worker 1873*35238bceSAndroid Build Coastguard Worker case dynamic_expression_array_size 1874*35238bceSAndroid Build Coastguard Worker version 300 es 1875*35238bceSAndroid Build Coastguard Worker expect compile_fail 1876*35238bceSAndroid Build Coastguard Worker 1877*35238bceSAndroid Build Coastguard Worker both "" 1878*35238bceSAndroid Build Coastguard Worker #version 300 es 1879*35238bceSAndroid Build Coastguard Worker precision mediump float; 1880*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1881*35238bceSAndroid Build Coastguard Worker 1882*35238bceSAndroid Build Coastguard Worker void main () 1883*35238bceSAndroid Build Coastguard Worker { 1884*35238bceSAndroid Build Coastguard Worker int a = 5; 1885*35238bceSAndroid Build Coastguard Worker float[a] array; 1886*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 1887*35238bceSAndroid Build Coastguard Worker } 1888*35238bceSAndroid Build Coastguard Worker "" 1889*35238bceSAndroid Build Coastguard Worker end 1890*35238bceSAndroid Build Coastguard Worker 1891*35238bceSAndroid Build Coastguard Worker case empty_declaration_without_var_name 1892*35238bceSAndroid Build Coastguard Worker version 300 es 1893*35238bceSAndroid Build Coastguard Worker expect compile_or_link_fail 1894*35238bceSAndroid Build Coastguard Worker 1895*35238bceSAndroid Build Coastguard Worker both "" 1896*35238bceSAndroid Build Coastguard Worker #version 300 es 1897*35238bceSAndroid Build Coastguard Worker precision mediump float; 1898*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1899*35238bceSAndroid Build Coastguard Worker 1900*35238bceSAndroid Build Coastguard Worker void main () 1901*35238bceSAndroid Build Coastguard Worker { 1902*35238bceSAndroid Build Coastguard Worker int[]; 1903*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 1904*35238bceSAndroid Build Coastguard Worker } 1905*35238bceSAndroid Build Coastguard Worker "" 1906*35238bceSAndroid Build Coastguard Worker end 1907*35238bceSAndroid Build Coastguard Worker 1908*35238bceSAndroid Build Coastguard Worker case empty_declaration_with_var_name 1909*35238bceSAndroid Build Coastguard Worker version 300 es 1910*35238bceSAndroid Build Coastguard Worker expect compile_or_link_fail 1911*35238bceSAndroid Build Coastguard Worker 1912*35238bceSAndroid Build Coastguard Worker both "" 1913*35238bceSAndroid Build Coastguard Worker #version 300 es 1914*35238bceSAndroid Build Coastguard Worker precision mediump float; 1915*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1916*35238bceSAndroid Build Coastguard Worker 1917*35238bceSAndroid Build Coastguard Worker void main () 1918*35238bceSAndroid Build Coastguard Worker { 1919*35238bceSAndroid Build Coastguard Worker int[] a; 1920*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 1921*35238bceSAndroid Build Coastguard Worker } 1922*35238bceSAndroid Build Coastguard Worker "" 1923*35238bceSAndroid Build Coastguard Worker end 1924*35238bceSAndroid Build Coastguard Worker 1925*35238bceSAndroid Build Coastguard Worker case constructor_c_style1 1926*35238bceSAndroid Build Coastguard Worker version 300 es 1927*35238bceSAndroid Build Coastguard Worker expect compile_fail 1928*35238bceSAndroid Build Coastguard Worker 1929*35238bceSAndroid Build Coastguard Worker both "" 1930*35238bceSAndroid Build Coastguard Worker #version 300 es 1931*35238bceSAndroid Build Coastguard Worker precision mediump float; 1932*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1933*35238bceSAndroid Build Coastguard Worker 1934*35238bceSAndroid Build Coastguard Worker void main () 1935*35238bceSAndroid Build Coastguard Worker { 1936*35238bceSAndroid Build Coastguard Worker float a[]; 1937*35238bceSAndroid Build Coastguard Worker a = float[3] { 1.0, 2.0, 3.0 }; 1938*35238bceSAndroid Build Coastguard Worker 1939*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 1940*35238bceSAndroid Build Coastguard Worker } 1941*35238bceSAndroid Build Coastguard Worker "" 1942*35238bceSAndroid Build Coastguard Worker end 1943*35238bceSAndroid Build Coastguard Worker 1944*35238bceSAndroid Build Coastguard Worker case constructor_c_style2 1945*35238bceSAndroid Build Coastguard Worker version 300 es 1946*35238bceSAndroid Build Coastguard Worker expect compile_fail 1947*35238bceSAndroid Build Coastguard Worker 1948*35238bceSAndroid Build Coastguard Worker both "" 1949*35238bceSAndroid Build Coastguard Worker #version 300 es 1950*35238bceSAndroid Build Coastguard Worker precision mediump float; 1951*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1952*35238bceSAndroid Build Coastguard Worker 1953*35238bceSAndroid Build Coastguard Worker void main () 1954*35238bceSAndroid Build Coastguard Worker { 1955*35238bceSAndroid Build Coastguard Worker float a[5] = { 1.0, 2.0, 3.0 }; 1956*35238bceSAndroid Build Coastguard Worker 1957*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 1958*35238bceSAndroid Build Coastguard Worker } 1959*35238bceSAndroid Build Coastguard Worker "" 1960*35238bceSAndroid Build Coastguard Worker end 1961*35238bceSAndroid Build Coastguard Worker 1962*35238bceSAndroid Build Coastguard Worker case constructor_c_style3 1963*35238bceSAndroid Build Coastguard Worker version 300 es 1964*35238bceSAndroid Build Coastguard Worker expect compile_fail 1965*35238bceSAndroid Build Coastguard Worker 1966*35238bceSAndroid Build Coastguard Worker both "" 1967*35238bceSAndroid Build Coastguard Worker #version 300 es 1968*35238bceSAndroid Build Coastguard Worker precision mediump float; 1969*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1970*35238bceSAndroid Build Coastguard Worker 1971*35238bceSAndroid Build Coastguard Worker void main () 1972*35238bceSAndroid Build Coastguard Worker { 1973*35238bceSAndroid Build Coastguard Worker float a[] = float[3] { 1.0, 2.0, 3.0 }; 1974*35238bceSAndroid Build Coastguard Worker 1975*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 1976*35238bceSAndroid Build Coastguard Worker } 1977*35238bceSAndroid Build Coastguard Worker "" 1978*35238bceSAndroid Build Coastguard Worker end 1979*35238bceSAndroid Build Coastguard Worker 1980*35238bceSAndroid Build Coastguard Worker case constructor_c_style4 1981*35238bceSAndroid Build Coastguard Worker version 300 es 1982*35238bceSAndroid Build Coastguard Worker expect compile_fail 1983*35238bceSAndroid Build Coastguard Worker 1984*35238bceSAndroid Build Coastguard Worker both "" 1985*35238bceSAndroid Build Coastguard Worker #version 300 es 1986*35238bceSAndroid Build Coastguard Worker precision mediump float; 1987*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1988*35238bceSAndroid Build Coastguard Worker 1989*35238bceSAndroid Build Coastguard Worker void main () 1990*35238bceSAndroid Build Coastguard Worker { 1991*35238bceSAndroid Build Coastguard Worker float a[3] = { 1.0, 2.0, 3.0 }; 1992*35238bceSAndroid Build Coastguard Worker 1993*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 1994*35238bceSAndroid Build Coastguard Worker } 1995*35238bceSAndroid Build Coastguard Worker "" 1996*35238bceSAndroid Build Coastguard Worker end 1997*35238bceSAndroid Build Coastguard Worker 1998*35238bceSAndroid Build Coastguard Workerend # invalid 1999*35238bceSAndroid Build Coastguard Worker 2000*35238bceSAndroid Build Coastguard Worker# https://github.com/KhronosGroup/WebGL/blob/main/sdk/tests/conformance2/glsl3/array-in-complex-expression.html 2001*35238bceSAndroid Build Coastguard Workergroup complex_expression "Arrays in complex expressions" 2002*35238bceSAndroid Build Coastguard Worker 2003*35238bceSAndroid Build Coastguard Worker case and_short_circuits 2004*35238bceSAndroid Build Coastguard Worker version 300 es 2005*35238bceSAndroid Build Coastguard Worker values 2006*35238bceSAndroid Build Coastguard Worker { 2007*35238bceSAndroid Build Coastguard Worker output int g = -1; 2008*35238bceSAndroid Build Coastguard Worker } 2009*35238bceSAndroid Build Coastguard Worker 2010*35238bceSAndroid Build Coastguard Worker both "" 2011*35238bceSAndroid Build Coastguard Worker #version 300 es 2012*35238bceSAndroid Build Coastguard Worker precision mediump float; 2013*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2014*35238bceSAndroid Build Coastguard Worker 2015*35238bceSAndroid Build Coastguard Worker int[2] plus() { 2016*35238bceSAndroid Build Coastguard Worker ++g; 2017*35238bceSAndroid Build Coastguard Worker return int[2](g, g); 2018*35238bceSAndroid Build Coastguard Worker } 2019*35238bceSAndroid Build Coastguard Worker 2020*35238bceSAndroid Build Coastguard Worker bool minus() { 2021*35238bceSAndroid Build Coastguard Worker --g; 2022*35238bceSAndroid Build Coastguard Worker return false; 2023*35238bceSAndroid Build Coastguard Worker } 2024*35238bceSAndroid Build Coastguard Worker 2025*35238bceSAndroid Build Coastguard Worker void main() { 2026*35238bceSAndroid Build Coastguard Worker ${SETUP} 2027*35238bceSAndroid Build Coastguard Worker g = 0; 2028*35238bceSAndroid Build Coastguard Worker int a[2] = int[2](0, 0); 2029*35238bceSAndroid Build Coastguard Worker // The plus() call must not be evaluated, since && short-circuits 2030*35238bceSAndroid Build Coastguard Worker minus() && (a == plus()); 2031*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2032*35238bceSAndroid Build Coastguard Worker } 2033*35238bceSAndroid Build Coastguard Worker "" 2034*35238bceSAndroid Build Coastguard Worker end 2035*35238bceSAndroid Build Coastguard Worker 2036*35238bceSAndroid Build Coastguard Worker case or_short_circuits 2037*35238bceSAndroid Build Coastguard Worker version 300 es 2038*35238bceSAndroid Build Coastguard Worker values 2039*35238bceSAndroid Build Coastguard Worker { 2040*35238bceSAndroid Build Coastguard Worker output int g = -1; 2041*35238bceSAndroid Build Coastguard Worker } 2042*35238bceSAndroid Build Coastguard Worker 2043*35238bceSAndroid Build Coastguard Worker both "" 2044*35238bceSAndroid Build Coastguard Worker #version 300 es 2045*35238bceSAndroid Build Coastguard Worker precision mediump float; 2046*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2047*35238bceSAndroid Build Coastguard Worker 2048*35238bceSAndroid Build Coastguard Worker int[2] plus() { 2049*35238bceSAndroid Build Coastguard Worker ++g; 2050*35238bceSAndroid Build Coastguard Worker return int[2](g, g); 2051*35238bceSAndroid Build Coastguard Worker } 2052*35238bceSAndroid Build Coastguard Worker 2053*35238bceSAndroid Build Coastguard Worker bool minus() { 2054*35238bceSAndroid Build Coastguard Worker --g; 2055*35238bceSAndroid Build Coastguard Worker return false; 2056*35238bceSAndroid Build Coastguard Worker } 2057*35238bceSAndroid Build Coastguard Worker 2058*35238bceSAndroid Build Coastguard Worker void main() { 2059*35238bceSAndroid Build Coastguard Worker ${SETUP} 2060*35238bceSAndroid Build Coastguard Worker g = 0; 2061*35238bceSAndroid Build Coastguard Worker int a[2] = int[2](0, 0); 2062*35238bceSAndroid Build Coastguard Worker // The function call must not be evaluated, since && short-circuits 2063*35238bceSAndroid Build Coastguard Worker minus() && (a == plus()); 2064*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2065*35238bceSAndroid Build Coastguard Worker } 2066*35238bceSAndroid Build Coastguard Worker "" 2067*35238bceSAndroid Build Coastguard Worker end 2068*35238bceSAndroid Build Coastguard Worker 2069*35238bceSAndroid Build Coastguard Worker case ternary_only_evaluates_one_operand 2070*35238bceSAndroid Build Coastguard Worker version 300 es 2071*35238bceSAndroid Build Coastguard Worker values 2072*35238bceSAndroid Build Coastguard Worker { 2073*35238bceSAndroid Build Coastguard Worker output int g = 0; 2074*35238bceSAndroid Build Coastguard Worker } 2075*35238bceSAndroid Build Coastguard Worker 2076*35238bceSAndroid Build Coastguard Worker both "" 2077*35238bceSAndroid Build Coastguard Worker #version 300 es 2078*35238bceSAndroid Build Coastguard Worker precision mediump float; 2079*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2080*35238bceSAndroid Build Coastguard Worker 2081*35238bceSAndroid Build Coastguard Worker int[2] plus() { 2082*35238bceSAndroid Build Coastguard Worker ++g; 2083*35238bceSAndroid Build Coastguard Worker return int[2](g, g); 2084*35238bceSAndroid Build Coastguard Worker } 2085*35238bceSAndroid Build Coastguard Worker 2086*35238bceSAndroid Build Coastguard Worker void main() { 2087*35238bceSAndroid Build Coastguard Worker ${SETUP} 2088*35238bceSAndroid Build Coastguard Worker g = 0; 2089*35238bceSAndroid Build Coastguard Worker int a[2] = int[2](0, 0); 2090*35238bceSAndroid Build Coastguard Worker // The function call must not be evaluated, since the condition is true. 2091*35238bceSAndroid Build Coastguard Worker (g == 0) ? true : (a == plus()); 2092*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2093*35238bceSAndroid Build Coastguard Worker } 2094*35238bceSAndroid Build Coastguard Worker "" 2095*35238bceSAndroid Build Coastguard Worker end 2096*35238bceSAndroid Build Coastguard Worker 2097*35238bceSAndroid Build Coastguard Worker case sequence_side_effects_affecting_compared_array_content 2098*35238bceSAndroid Build Coastguard Worker version 300 es 2099*35238bceSAndroid Build Coastguard Worker values 2100*35238bceSAndroid Build Coastguard Worker { 2101*35238bceSAndroid Build Coastguard Worker output bool success = true; 2102*35238bceSAndroid Build Coastguard Worker } 2103*35238bceSAndroid Build Coastguard Worker 2104*35238bceSAndroid Build Coastguard Worker both "" 2105*35238bceSAndroid Build Coastguard Worker #version 300 es 2106*35238bceSAndroid Build Coastguard Worker precision mediump float; 2107*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2108*35238bceSAndroid Build Coastguard Worker 2109*35238bceSAndroid Build Coastguard Worker int[2] func(int param) { 2110*35238bceSAndroid Build Coastguard Worker return int[2](param, param); 2111*35238bceSAndroid Build Coastguard Worker } 2112*35238bceSAndroid Build Coastguard Worker 2113*35238bceSAndroid Build Coastguard Worker void main() { 2114*35238bceSAndroid Build Coastguard Worker ${SETUP} 2115*35238bceSAndroid Build Coastguard Worker int a[2]; 2116*35238bceSAndroid Build Coastguard Worker for (int i = 0; i < 2; ++i) { 2117*35238bceSAndroid Build Coastguard Worker a[i] = 1; 2118*35238bceSAndroid Build Coastguard Worker } 2119*35238bceSAndroid Build Coastguard Worker int j = 0; 2120*35238bceSAndroid Build Coastguard Worker // Sequence operator evaluates operands from left to right (ESSL 3.00 section 5.9). 2121*35238bceSAndroid Build Coastguard Worker // The function call that returns the array needs to be evaluated after ++j 2122*35238bceSAndroid Build Coastguard Worker // for the expression to return the correct value (true). 2123*35238bceSAndroid Build Coastguard Worker success = ((++j), (a == func(j))); 2124*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2125*35238bceSAndroid Build Coastguard Worker } 2126*35238bceSAndroid Build Coastguard Worker "" 2127*35238bceSAndroid Build Coastguard Worker end 2128*35238bceSAndroid Build Coastguard Worker 2129*35238bceSAndroid Build Coastguard Workerend # complex_expression 2130*35238bceSAndroid Build Coastguard Worker 2131*35238bceSAndroid Build Coastguard Workergroup compare "Array comparisons" 2132*35238bceSAndroid Build Coastguard Worker 2133*35238bceSAndroid Build Coastguard Worker case equal_lowp_int_lowp_int 2134*35238bceSAndroid Build Coastguard Worker version 300 es 2135*35238bceSAndroid Build Coastguard Worker values 2136*35238bceSAndroid Build Coastguard Worker { 2137*35238bceSAndroid Build Coastguard Worker output bool success = true; 2138*35238bceSAndroid Build Coastguard Worker } 2139*35238bceSAndroid Build Coastguard Worker 2140*35238bceSAndroid Build Coastguard Worker both "" 2141*35238bceSAndroid Build Coastguard Worker #version 300 es 2142*35238bceSAndroid Build Coastguard Worker precision lowp float; 2143*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2144*35238bceSAndroid Build Coastguard Worker void main() 2145*35238bceSAndroid Build Coastguard Worker { 2146*35238bceSAndroid Build Coastguard Worker ${SETUP} 2147*35238bceSAndroid Build Coastguard Worker lowp int x[3] = int[3](1, 2, 3); 2148*35238bceSAndroid Build Coastguard Worker lowp int y[3] = x; 2149*35238bceSAndroid Build Coastguard Worker x = y; 2150*35238bceSAndroid Build Coastguard Worker success = (x == y); 2151*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2152*35238bceSAndroid Build Coastguard Worker } 2153*35238bceSAndroid Build Coastguard Worker "" 2154*35238bceSAndroid Build Coastguard Worker end 2155*35238bceSAndroid Build Coastguard Worker 2156*35238bceSAndroid Build Coastguard Worker case equal_lowp_uint_lowp_uint 2157*35238bceSAndroid Build Coastguard Worker version 300 es 2158*35238bceSAndroid Build Coastguard Worker values 2159*35238bceSAndroid Build Coastguard Worker { 2160*35238bceSAndroid Build Coastguard Worker output bool success = true; 2161*35238bceSAndroid Build Coastguard Worker } 2162*35238bceSAndroid Build Coastguard Worker 2163*35238bceSAndroid Build Coastguard Worker both "" 2164*35238bceSAndroid Build Coastguard Worker #version 300 es 2165*35238bceSAndroid Build Coastguard Worker precision lowp float; 2166*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2167*35238bceSAndroid Build Coastguard Worker void main() 2168*35238bceSAndroid Build Coastguard Worker { 2169*35238bceSAndroid Build Coastguard Worker ${SETUP} 2170*35238bceSAndroid Build Coastguard Worker lowp uint x[3] = uint[3](1u, 2u, 3u); 2171*35238bceSAndroid Build Coastguard Worker lowp uint y[3] = x; 2172*35238bceSAndroid Build Coastguard Worker x = y; 2173*35238bceSAndroid Build Coastguard Worker success = (x == y); 2174*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2175*35238bceSAndroid Build Coastguard Worker } 2176*35238bceSAndroid Build Coastguard Worker "" 2177*35238bceSAndroid Build Coastguard Worker end 2178*35238bceSAndroid Build Coastguard Worker 2179*35238bceSAndroid Build Coastguard Worker case equal_lowp_float_lowp_float 2180*35238bceSAndroid Build Coastguard Worker version 300 es 2181*35238bceSAndroid Build Coastguard Worker values 2182*35238bceSAndroid Build Coastguard Worker { 2183*35238bceSAndroid Build Coastguard Worker output bool success = true; 2184*35238bceSAndroid Build Coastguard Worker } 2185*35238bceSAndroid Build Coastguard Worker 2186*35238bceSAndroid Build Coastguard Worker both "" 2187*35238bceSAndroid Build Coastguard Worker #version 300 es 2188*35238bceSAndroid Build Coastguard Worker precision lowp float; 2189*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2190*35238bceSAndroid Build Coastguard Worker void main() 2191*35238bceSAndroid Build Coastguard Worker { 2192*35238bceSAndroid Build Coastguard Worker ${SETUP} 2193*35238bceSAndroid Build Coastguard Worker lowp float x[3] = float[3](1.0, 2.0, 3.0); 2194*35238bceSAndroid Build Coastguard Worker lowp float y[3] = x; 2195*35238bceSAndroid Build Coastguard Worker x = y; 2196*35238bceSAndroid Build Coastguard Worker success = (x == y); 2197*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2198*35238bceSAndroid Build Coastguard Worker } 2199*35238bceSAndroid Build Coastguard Worker "" 2200*35238bceSAndroid Build Coastguard Worker end 2201*35238bceSAndroid Build Coastguard Worker 2202*35238bceSAndroid Build Coastguard Worker case equal_lowp_vec2_lowp_vec2 2203*35238bceSAndroid Build Coastguard Worker version 300 es 2204*35238bceSAndroid Build Coastguard Worker values 2205*35238bceSAndroid Build Coastguard Worker { 2206*35238bceSAndroid Build Coastguard Worker output bool success = true; 2207*35238bceSAndroid Build Coastguard Worker } 2208*35238bceSAndroid Build Coastguard Worker 2209*35238bceSAndroid Build Coastguard Worker both "" 2210*35238bceSAndroid Build Coastguard Worker #version 300 es 2211*35238bceSAndroid Build Coastguard Worker precision lowp float; 2212*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2213*35238bceSAndroid Build Coastguard Worker void main() 2214*35238bceSAndroid Build Coastguard Worker { 2215*35238bceSAndroid Build Coastguard Worker ${SETUP} 2216*35238bceSAndroid Build Coastguard Worker lowp vec2 x[3] = vec2[3](vec2(1.0, 2.0), 2217*35238bceSAndroid Build Coastguard Worker vec2(3.0, 4.0), 2218*35238bceSAndroid Build Coastguard Worker vec2(5.0, 6.0)); 2219*35238bceSAndroid Build Coastguard Worker lowp vec2 y[3] = x; 2220*35238bceSAndroid Build Coastguard Worker x = y; 2221*35238bceSAndroid Build Coastguard Worker success = (x == y); 2222*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2223*35238bceSAndroid Build Coastguard Worker } 2224*35238bceSAndroid Build Coastguard Worker "" 2225*35238bceSAndroid Build Coastguard Worker end 2226*35238bceSAndroid Build Coastguard Worker 2227*35238bceSAndroid Build Coastguard Worker case equal_lowp_vec3_lowp_vec3 2228*35238bceSAndroid Build Coastguard Worker version 300 es 2229*35238bceSAndroid Build Coastguard Worker values 2230*35238bceSAndroid Build Coastguard Worker { 2231*35238bceSAndroid Build Coastguard Worker output bool success = true; 2232*35238bceSAndroid Build Coastguard Worker } 2233*35238bceSAndroid Build Coastguard Worker 2234*35238bceSAndroid Build Coastguard Worker both "" 2235*35238bceSAndroid Build Coastguard Worker #version 300 es 2236*35238bceSAndroid Build Coastguard Worker precision lowp float; 2237*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2238*35238bceSAndroid Build Coastguard Worker void main() 2239*35238bceSAndroid Build Coastguard Worker { 2240*35238bceSAndroid Build Coastguard Worker ${SETUP} 2241*35238bceSAndroid Build Coastguard Worker lowp vec3 x[3] = vec3[3](vec3(1.0, 2.0, 3.0), 2242*35238bceSAndroid Build Coastguard Worker vec3(4.0, 5.0, 6.0), 2243*35238bceSAndroid Build Coastguard Worker vec3(7.0, 8.0, 9.0)); 2244*35238bceSAndroid Build Coastguard Worker lowp vec3 y[3] = x; 2245*35238bceSAndroid Build Coastguard Worker x = y; 2246*35238bceSAndroid Build Coastguard Worker success = (x == y); 2247*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2248*35238bceSAndroid Build Coastguard Worker } 2249*35238bceSAndroid Build Coastguard Worker "" 2250*35238bceSAndroid Build Coastguard Worker end 2251*35238bceSAndroid Build Coastguard Worker 2252*35238bceSAndroid Build Coastguard Worker case equal_lowp_vec4_lowp_vec4 2253*35238bceSAndroid Build Coastguard Worker version 300 es 2254*35238bceSAndroid Build Coastguard Worker values 2255*35238bceSAndroid Build Coastguard Worker { 2256*35238bceSAndroid Build Coastguard Worker output bool success = true; 2257*35238bceSAndroid Build Coastguard Worker } 2258*35238bceSAndroid Build Coastguard Worker 2259*35238bceSAndroid Build Coastguard Worker both "" 2260*35238bceSAndroid Build Coastguard Worker #version 300 es 2261*35238bceSAndroid Build Coastguard Worker precision lowp float; 2262*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2263*35238bceSAndroid Build Coastguard Worker void main() 2264*35238bceSAndroid Build Coastguard Worker { 2265*35238bceSAndroid Build Coastguard Worker ${SETUP} 2266*35238bceSAndroid Build Coastguard Worker lowp vec4 x[3] = vec4[3](vec4(1.0, 2.0, 3.0, 4.0), 2267*35238bceSAndroid Build Coastguard Worker vec4(5.0, 6.0, 7.0, 8.0), 2268*35238bceSAndroid Build Coastguard Worker vec4(9.0, 10.0, 11.0, 12.0)); 2269*35238bceSAndroid Build Coastguard Worker lowp vec4 y[3] = x; 2270*35238bceSAndroid Build Coastguard Worker x = y; 2271*35238bceSAndroid Build Coastguard Worker success = (x == y); 2272*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2273*35238bceSAndroid Build Coastguard Worker } 2274*35238bceSAndroid Build Coastguard Worker "" 2275*35238bceSAndroid Build Coastguard Worker end 2276*35238bceSAndroid Build Coastguard Worker 2277*35238bceSAndroid Build Coastguard Worker case equal_lowp_ivec2_lowp_ivec2 2278*35238bceSAndroid Build Coastguard Worker version 300 es 2279*35238bceSAndroid Build Coastguard Worker values 2280*35238bceSAndroid Build Coastguard Worker { 2281*35238bceSAndroid Build Coastguard Worker output bool success = true; 2282*35238bceSAndroid Build Coastguard Worker } 2283*35238bceSAndroid Build Coastguard Worker 2284*35238bceSAndroid Build Coastguard Worker both "" 2285*35238bceSAndroid Build Coastguard Worker #version 300 es 2286*35238bceSAndroid Build Coastguard Worker precision lowp float; 2287*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2288*35238bceSAndroid Build Coastguard Worker void main() 2289*35238bceSAndroid Build Coastguard Worker { 2290*35238bceSAndroid Build Coastguard Worker ${SETUP} 2291*35238bceSAndroid Build Coastguard Worker lowp ivec2 x[3] = ivec2[3](ivec2(1, 2), 2292*35238bceSAndroid Build Coastguard Worker ivec2(3, 4), 2293*35238bceSAndroid Build Coastguard Worker ivec2(5, 6)); 2294*35238bceSAndroid Build Coastguard Worker lowp ivec2 y[3] = x; 2295*35238bceSAndroid Build Coastguard Worker x = y; 2296*35238bceSAndroid Build Coastguard Worker success = (x == y); 2297*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2298*35238bceSAndroid Build Coastguard Worker } 2299*35238bceSAndroid Build Coastguard Worker "" 2300*35238bceSAndroid Build Coastguard Worker end 2301*35238bceSAndroid Build Coastguard Worker 2302*35238bceSAndroid Build Coastguard Worker case equal_lowp_ivec3_lowp_ivec3 2303*35238bceSAndroid Build Coastguard Worker version 300 es 2304*35238bceSAndroid Build Coastguard Worker values 2305*35238bceSAndroid Build Coastguard Worker { 2306*35238bceSAndroid Build Coastguard Worker output bool success = true; 2307*35238bceSAndroid Build Coastguard Worker } 2308*35238bceSAndroid Build Coastguard Worker 2309*35238bceSAndroid Build Coastguard Worker both "" 2310*35238bceSAndroid Build Coastguard Worker #version 300 es 2311*35238bceSAndroid Build Coastguard Worker precision lowp float; 2312*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2313*35238bceSAndroid Build Coastguard Worker void main() 2314*35238bceSAndroid Build Coastguard Worker { 2315*35238bceSAndroid Build Coastguard Worker ${SETUP} 2316*35238bceSAndroid Build Coastguard Worker lowp ivec3 x[3] = ivec3[3](ivec3(1, 2, 3), 2317*35238bceSAndroid Build Coastguard Worker ivec3(4, 5, 6), 2318*35238bceSAndroid Build Coastguard Worker ivec3(7, 8, 9)); 2319*35238bceSAndroid Build Coastguard Worker lowp ivec3 y[3] = x; 2320*35238bceSAndroid Build Coastguard Worker x = y; 2321*35238bceSAndroid Build Coastguard Worker success = (x == y); 2322*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2323*35238bceSAndroid Build Coastguard Worker } 2324*35238bceSAndroid Build Coastguard Worker "" 2325*35238bceSAndroid Build Coastguard Worker end 2326*35238bceSAndroid Build Coastguard Worker 2327*35238bceSAndroid Build Coastguard Worker case equal_lowp_ivec4_lowp_ivec4 2328*35238bceSAndroid Build Coastguard Worker version 300 es 2329*35238bceSAndroid Build Coastguard Worker values 2330*35238bceSAndroid Build Coastguard Worker { 2331*35238bceSAndroid Build Coastguard Worker output bool success = true; 2332*35238bceSAndroid Build Coastguard Worker } 2333*35238bceSAndroid Build Coastguard Worker 2334*35238bceSAndroid Build Coastguard Worker both "" 2335*35238bceSAndroid Build Coastguard Worker #version 300 es 2336*35238bceSAndroid Build Coastguard Worker precision lowp float; 2337*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2338*35238bceSAndroid Build Coastguard Worker void main() 2339*35238bceSAndroid Build Coastguard Worker { 2340*35238bceSAndroid Build Coastguard Worker ${SETUP} 2341*35238bceSAndroid Build Coastguard Worker lowp ivec4 x[3] = ivec4[3](ivec4(1, 2, 3, 4), 2342*35238bceSAndroid Build Coastguard Worker ivec4(5, 6, 7, 8), 2343*35238bceSAndroid Build Coastguard Worker ivec4(9, 10, 11, 12)); 2344*35238bceSAndroid Build Coastguard Worker lowp ivec4 y[3] = x; 2345*35238bceSAndroid Build Coastguard Worker x = y; 2346*35238bceSAndroid Build Coastguard Worker success = (x == y); 2347*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2348*35238bceSAndroid Build Coastguard Worker } 2349*35238bceSAndroid Build Coastguard Worker "" 2350*35238bceSAndroid Build Coastguard Worker end 2351*35238bceSAndroid Build Coastguard Worker 2352*35238bceSAndroid Build Coastguard Worker case equal_lowp_uvec2_lowp_uvec2 2353*35238bceSAndroid Build Coastguard Worker version 300 es 2354*35238bceSAndroid Build Coastguard Worker values 2355*35238bceSAndroid Build Coastguard Worker { 2356*35238bceSAndroid Build Coastguard Worker output bool success = true; 2357*35238bceSAndroid Build Coastguard Worker } 2358*35238bceSAndroid Build Coastguard Worker 2359*35238bceSAndroid Build Coastguard Worker both "" 2360*35238bceSAndroid Build Coastguard Worker #version 300 es 2361*35238bceSAndroid Build Coastguard Worker precision lowp float; 2362*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2363*35238bceSAndroid Build Coastguard Worker void main() 2364*35238bceSAndroid Build Coastguard Worker { 2365*35238bceSAndroid Build Coastguard Worker ${SETUP} 2366*35238bceSAndroid Build Coastguard Worker lowp uvec2 x[3] = uvec2[3](uvec2(1u, 2u), 2367*35238bceSAndroid Build Coastguard Worker uvec2(3u, 4u), 2368*35238bceSAndroid Build Coastguard Worker uvec2(5u, 6u)); 2369*35238bceSAndroid Build Coastguard Worker lowp uvec2 y[3] = x; 2370*35238bceSAndroid Build Coastguard Worker x = y; 2371*35238bceSAndroid Build Coastguard Worker success = (x == y); 2372*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2373*35238bceSAndroid Build Coastguard Worker } 2374*35238bceSAndroid Build Coastguard Worker "" 2375*35238bceSAndroid Build Coastguard Worker end 2376*35238bceSAndroid Build Coastguard Worker 2377*35238bceSAndroid Build Coastguard Worker case equal_lowp_uvec3_lowp_uvec3 2378*35238bceSAndroid Build Coastguard Worker version 300 es 2379*35238bceSAndroid Build Coastguard Worker values 2380*35238bceSAndroid Build Coastguard Worker { 2381*35238bceSAndroid Build Coastguard Worker output bool success = true; 2382*35238bceSAndroid Build Coastguard Worker } 2383*35238bceSAndroid Build Coastguard Worker 2384*35238bceSAndroid Build Coastguard Worker both "" 2385*35238bceSAndroid Build Coastguard Worker #version 300 es 2386*35238bceSAndroid Build Coastguard Worker precision lowp float; 2387*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2388*35238bceSAndroid Build Coastguard Worker void main() 2389*35238bceSAndroid Build Coastguard Worker { 2390*35238bceSAndroid Build Coastguard Worker ${SETUP} 2391*35238bceSAndroid Build Coastguard Worker lowp uvec3 x[3] = uvec3[3](uvec3(1u, 2u, 3u), 2392*35238bceSAndroid Build Coastguard Worker uvec3(4u, 5u, 6u), 2393*35238bceSAndroid Build Coastguard Worker uvec3(7u, 8u, 9u)); 2394*35238bceSAndroid Build Coastguard Worker lowp uvec3 y[3] = x; 2395*35238bceSAndroid Build Coastguard Worker x = y; 2396*35238bceSAndroid Build Coastguard Worker success = (x == y); 2397*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2398*35238bceSAndroid Build Coastguard Worker } 2399*35238bceSAndroid Build Coastguard Worker "" 2400*35238bceSAndroid Build Coastguard Worker end 2401*35238bceSAndroid Build Coastguard Worker 2402*35238bceSAndroid Build Coastguard Worker case equal_lowp_uvec4_lowp_uvec4 2403*35238bceSAndroid Build Coastguard Worker version 300 es 2404*35238bceSAndroid Build Coastguard Worker values 2405*35238bceSAndroid Build Coastguard Worker { 2406*35238bceSAndroid Build Coastguard Worker output bool success = true; 2407*35238bceSAndroid Build Coastguard Worker } 2408*35238bceSAndroid Build Coastguard Worker 2409*35238bceSAndroid Build Coastguard Worker both "" 2410*35238bceSAndroid Build Coastguard Worker #version 300 es 2411*35238bceSAndroid Build Coastguard Worker precision lowp float; 2412*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2413*35238bceSAndroid Build Coastguard Worker void main() 2414*35238bceSAndroid Build Coastguard Worker { 2415*35238bceSAndroid Build Coastguard Worker ${SETUP} 2416*35238bceSAndroid Build Coastguard Worker lowp uvec4 x[3] = uvec4[3](uvec4(1u, 2u, 3u, 4u), 2417*35238bceSAndroid Build Coastguard Worker uvec4(5u, 6u, 7u, 8u), 2418*35238bceSAndroid Build Coastguard Worker uvec4(9u, 10u, 11u, 12u)); 2419*35238bceSAndroid Build Coastguard Worker lowp uvec4 y[3] = x; 2420*35238bceSAndroid Build Coastguard Worker x = y; 2421*35238bceSAndroid Build Coastguard Worker success = (x == y); 2422*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2423*35238bceSAndroid Build Coastguard Worker } 2424*35238bceSAndroid Build Coastguard Worker "" 2425*35238bceSAndroid Build Coastguard Worker end 2426*35238bceSAndroid Build Coastguard Worker 2427*35238bceSAndroid Build Coastguard Worker case equal_lowp_mat2_lowp_mat2 2428*35238bceSAndroid Build Coastguard Worker version 300 es 2429*35238bceSAndroid Build Coastguard Worker values 2430*35238bceSAndroid Build Coastguard Worker { 2431*35238bceSAndroid Build Coastguard Worker output bool success = true; 2432*35238bceSAndroid Build Coastguard Worker } 2433*35238bceSAndroid Build Coastguard Worker 2434*35238bceSAndroid Build Coastguard Worker both "" 2435*35238bceSAndroid Build Coastguard Worker #version 300 es 2436*35238bceSAndroid Build Coastguard Worker precision lowp float; 2437*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2438*35238bceSAndroid Build Coastguard Worker void main() 2439*35238bceSAndroid Build Coastguard Worker { 2440*35238bceSAndroid Build Coastguard Worker ${SETUP} 2441*35238bceSAndroid Build Coastguard Worker lowp mat2 x[3] = mat2[3](mat2(1.0, 2.0, 3.0, 4.0), 2442*35238bceSAndroid Build Coastguard Worker mat2(5.0, 6.0, 7.0, 8.0), 2443*35238bceSAndroid Build Coastguard Worker mat2(9.0, 10.0, 11.0, 12.0)); 2444*35238bceSAndroid Build Coastguard Worker lowp mat2 y[3] = x; 2445*35238bceSAndroid Build Coastguard Worker x = y; 2446*35238bceSAndroid Build Coastguard Worker success = (x == y); 2447*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2448*35238bceSAndroid Build Coastguard Worker } 2449*35238bceSAndroid Build Coastguard Worker "" 2450*35238bceSAndroid Build Coastguard Worker end 2451*35238bceSAndroid Build Coastguard Worker 2452*35238bceSAndroid Build Coastguard Worker case equal_lowp_mat3_lowp_mat3 2453*35238bceSAndroid Build Coastguard Worker version 300 es 2454*35238bceSAndroid Build Coastguard Worker values 2455*35238bceSAndroid Build Coastguard Worker { 2456*35238bceSAndroid Build Coastguard Worker output bool success = true; 2457*35238bceSAndroid Build Coastguard Worker } 2458*35238bceSAndroid Build Coastguard Worker 2459*35238bceSAndroid Build Coastguard Worker both "" 2460*35238bceSAndroid Build Coastguard Worker #version 300 es 2461*35238bceSAndroid Build Coastguard Worker precision lowp float; 2462*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2463*35238bceSAndroid Build Coastguard Worker void main() 2464*35238bceSAndroid Build Coastguard Worker { 2465*35238bceSAndroid Build Coastguard Worker ${SETUP} 2466*35238bceSAndroid Build Coastguard Worker lowp mat3 x[3] = mat3[3](mat3(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0), 2467*35238bceSAndroid Build Coastguard Worker mat3(10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0), 2468*35238bceSAndroid Build Coastguard Worker mat3(19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0)); 2469*35238bceSAndroid Build Coastguard Worker lowp mat3 y[3] = x; 2470*35238bceSAndroid Build Coastguard Worker x = y; 2471*35238bceSAndroid Build Coastguard Worker success = (x == y); 2472*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2473*35238bceSAndroid Build Coastguard Worker } 2474*35238bceSAndroid Build Coastguard Worker "" 2475*35238bceSAndroid Build Coastguard Worker end 2476*35238bceSAndroid Build Coastguard Worker 2477*35238bceSAndroid Build Coastguard Worker case equal_lowp_mat4_lowp_mat4 2478*35238bceSAndroid Build Coastguard Worker version 300 es 2479*35238bceSAndroid Build Coastguard Worker values 2480*35238bceSAndroid Build Coastguard Worker { 2481*35238bceSAndroid Build Coastguard Worker output bool success = true; 2482*35238bceSAndroid Build Coastguard Worker } 2483*35238bceSAndroid Build Coastguard Worker 2484*35238bceSAndroid Build Coastguard Worker both "" 2485*35238bceSAndroid Build Coastguard Worker #version 300 es 2486*35238bceSAndroid Build Coastguard Worker precision lowp float; 2487*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2488*35238bceSAndroid Build Coastguard Worker void main() 2489*35238bceSAndroid Build Coastguard Worker { 2490*35238bceSAndroid Build Coastguard Worker ${SETUP} 2491*35238bceSAndroid Build Coastguard Worker lowp mat4 x[3] = mat4[3](mat4(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0), 2492*35238bceSAndroid Build Coastguard Worker mat4(17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0), 2493*35238bceSAndroid Build Coastguard Worker mat4(33.0, 34.0, 35.0, 36.0, 37.0, 38.0, 39.0, 40.0, 41.0, 42.0, 43.0, 44.0, 45.0, 46.0, 47.0, 48.0)); 2494*35238bceSAndroid Build Coastguard Worker lowp mat4 y[3] = x; 2495*35238bceSAndroid Build Coastguard Worker x = y; 2496*35238bceSAndroid Build Coastguard Worker success = (x == y); 2497*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2498*35238bceSAndroid Build Coastguard Worker } 2499*35238bceSAndroid Build Coastguard Worker "" 2500*35238bceSAndroid Build Coastguard Worker end 2501*35238bceSAndroid Build Coastguard Worker 2502*35238bceSAndroid Build Coastguard Worker case equal_mediump_int_lowp_int 2503*35238bceSAndroid Build Coastguard Worker version 300 es 2504*35238bceSAndroid Build Coastguard Worker values 2505*35238bceSAndroid Build Coastguard Worker { 2506*35238bceSAndroid Build Coastguard Worker output bool success = true; 2507*35238bceSAndroid Build Coastguard Worker } 2508*35238bceSAndroid Build Coastguard Worker 2509*35238bceSAndroid Build Coastguard Worker both "" 2510*35238bceSAndroid Build Coastguard Worker #version 300 es 2511*35238bceSAndroid Build Coastguard Worker precision mediump float; 2512*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2513*35238bceSAndroid Build Coastguard Worker void main() 2514*35238bceSAndroid Build Coastguard Worker { 2515*35238bceSAndroid Build Coastguard Worker ${SETUP} 2516*35238bceSAndroid Build Coastguard Worker mediump int x[3] = int[3](1, 2, 3); 2517*35238bceSAndroid Build Coastguard Worker lowp int y[3] = x; 2518*35238bceSAndroid Build Coastguard Worker x = y; 2519*35238bceSAndroid Build Coastguard Worker success = (x == y); 2520*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2521*35238bceSAndroid Build Coastguard Worker } 2522*35238bceSAndroid Build Coastguard Worker "" 2523*35238bceSAndroid Build Coastguard Worker end 2524*35238bceSAndroid Build Coastguard Worker 2525*35238bceSAndroid Build Coastguard Worker case equal_mediump_uint_lowp_uint 2526*35238bceSAndroid Build Coastguard Worker version 300 es 2527*35238bceSAndroid Build Coastguard Worker values 2528*35238bceSAndroid Build Coastguard Worker { 2529*35238bceSAndroid Build Coastguard Worker output bool success = true; 2530*35238bceSAndroid Build Coastguard Worker } 2531*35238bceSAndroid Build Coastguard Worker 2532*35238bceSAndroid Build Coastguard Worker both "" 2533*35238bceSAndroid Build Coastguard Worker #version 300 es 2534*35238bceSAndroid Build Coastguard Worker precision mediump float; 2535*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2536*35238bceSAndroid Build Coastguard Worker void main() 2537*35238bceSAndroid Build Coastguard Worker { 2538*35238bceSAndroid Build Coastguard Worker ${SETUP} 2539*35238bceSAndroid Build Coastguard Worker mediump uint x[3] = uint[3](1u, 2u, 3u); 2540*35238bceSAndroid Build Coastguard Worker lowp uint y[3] = x; 2541*35238bceSAndroid Build Coastguard Worker x = y; 2542*35238bceSAndroid Build Coastguard Worker success = (x == y); 2543*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2544*35238bceSAndroid Build Coastguard Worker } 2545*35238bceSAndroid Build Coastguard Worker "" 2546*35238bceSAndroid Build Coastguard Worker end 2547*35238bceSAndroid Build Coastguard Worker 2548*35238bceSAndroid Build Coastguard Worker case equal_mediump_float_lowp_float 2549*35238bceSAndroid Build Coastguard Worker version 300 es 2550*35238bceSAndroid Build Coastguard Worker values 2551*35238bceSAndroid Build Coastguard Worker { 2552*35238bceSAndroid Build Coastguard Worker output bool success = true; 2553*35238bceSAndroid Build Coastguard Worker } 2554*35238bceSAndroid Build Coastguard Worker 2555*35238bceSAndroid Build Coastguard Worker both "" 2556*35238bceSAndroid Build Coastguard Worker #version 300 es 2557*35238bceSAndroid Build Coastguard Worker precision mediump float; 2558*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2559*35238bceSAndroid Build Coastguard Worker void main() 2560*35238bceSAndroid Build Coastguard Worker { 2561*35238bceSAndroid Build Coastguard Worker ${SETUP} 2562*35238bceSAndroid Build Coastguard Worker mediump float x[3] = float[3](1.0, 2.0, 3.0); 2563*35238bceSAndroid Build Coastguard Worker lowp float y[3] = x; 2564*35238bceSAndroid Build Coastguard Worker x = y; 2565*35238bceSAndroid Build Coastguard Worker success = (x == y); 2566*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2567*35238bceSAndroid Build Coastguard Worker } 2568*35238bceSAndroid Build Coastguard Worker "" 2569*35238bceSAndroid Build Coastguard Worker end 2570*35238bceSAndroid Build Coastguard Worker 2571*35238bceSAndroid Build Coastguard Worker case equal_mediump_vec2_lowp_vec2 2572*35238bceSAndroid Build Coastguard Worker version 300 es 2573*35238bceSAndroid Build Coastguard Worker values 2574*35238bceSAndroid Build Coastguard Worker { 2575*35238bceSAndroid Build Coastguard Worker output bool success = true; 2576*35238bceSAndroid Build Coastguard Worker } 2577*35238bceSAndroid Build Coastguard Worker 2578*35238bceSAndroid Build Coastguard Worker both "" 2579*35238bceSAndroid Build Coastguard Worker #version 300 es 2580*35238bceSAndroid Build Coastguard Worker precision mediump float; 2581*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2582*35238bceSAndroid Build Coastguard Worker void main() 2583*35238bceSAndroid Build Coastguard Worker { 2584*35238bceSAndroid Build Coastguard Worker ${SETUP} 2585*35238bceSAndroid Build Coastguard Worker mediump vec2 x[3] = vec2[3](vec2(1.0, 2.0), 2586*35238bceSAndroid Build Coastguard Worker vec2(3.0, 4.0), 2587*35238bceSAndroid Build Coastguard Worker vec2(5.0, 6.0)); 2588*35238bceSAndroid Build Coastguard Worker lowp vec2 y[3] = x; 2589*35238bceSAndroid Build Coastguard Worker x = y; 2590*35238bceSAndroid Build Coastguard Worker success = (x == y); 2591*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2592*35238bceSAndroid Build Coastguard Worker } 2593*35238bceSAndroid Build Coastguard Worker "" 2594*35238bceSAndroid Build Coastguard Worker end 2595*35238bceSAndroid Build Coastguard Worker 2596*35238bceSAndroid Build Coastguard Worker case equal_mediump_vec3_lowp_vec3 2597*35238bceSAndroid Build Coastguard Worker version 300 es 2598*35238bceSAndroid Build Coastguard Worker values 2599*35238bceSAndroid Build Coastguard Worker { 2600*35238bceSAndroid Build Coastguard Worker output bool success = true; 2601*35238bceSAndroid Build Coastguard Worker } 2602*35238bceSAndroid Build Coastguard Worker 2603*35238bceSAndroid Build Coastguard Worker both "" 2604*35238bceSAndroid Build Coastguard Worker #version 300 es 2605*35238bceSAndroid Build Coastguard Worker precision mediump float; 2606*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2607*35238bceSAndroid Build Coastguard Worker void main() 2608*35238bceSAndroid Build Coastguard Worker { 2609*35238bceSAndroid Build Coastguard Worker ${SETUP} 2610*35238bceSAndroid Build Coastguard Worker mediump vec3 x[3] = vec3[3](vec3(1.0, 2.0, 3.0), 2611*35238bceSAndroid Build Coastguard Worker vec3(4.0, 5.0, 6.0), 2612*35238bceSAndroid Build Coastguard Worker vec3(7.0, 8.0, 9.0)); 2613*35238bceSAndroid Build Coastguard Worker lowp vec3 y[3] = x; 2614*35238bceSAndroid Build Coastguard Worker x = y; 2615*35238bceSAndroid Build Coastguard Worker success = (x == y); 2616*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2617*35238bceSAndroid Build Coastguard Worker } 2618*35238bceSAndroid Build Coastguard Worker "" 2619*35238bceSAndroid Build Coastguard Worker end 2620*35238bceSAndroid Build Coastguard Worker 2621*35238bceSAndroid Build Coastguard Worker case equal_mediump_vec4_lowp_vec4 2622*35238bceSAndroid Build Coastguard Worker version 300 es 2623*35238bceSAndroid Build Coastguard Worker values 2624*35238bceSAndroid Build Coastguard Worker { 2625*35238bceSAndroid Build Coastguard Worker output bool success = true; 2626*35238bceSAndroid Build Coastguard Worker } 2627*35238bceSAndroid Build Coastguard Worker 2628*35238bceSAndroid Build Coastguard Worker both "" 2629*35238bceSAndroid Build Coastguard Worker #version 300 es 2630*35238bceSAndroid Build Coastguard Worker precision mediump float; 2631*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2632*35238bceSAndroid Build Coastguard Worker void main() 2633*35238bceSAndroid Build Coastguard Worker { 2634*35238bceSAndroid Build Coastguard Worker ${SETUP} 2635*35238bceSAndroid Build Coastguard Worker mediump vec4 x[3] = vec4[3](vec4(1.0, 2.0, 3.0, 4.0), 2636*35238bceSAndroid Build Coastguard Worker vec4(5.0, 6.0, 7.0, 8.0), 2637*35238bceSAndroid Build Coastguard Worker vec4(9.0, 10.0, 11.0, 12.0)); 2638*35238bceSAndroid Build Coastguard Worker lowp vec4 y[3] = x; 2639*35238bceSAndroid Build Coastguard Worker x = y; 2640*35238bceSAndroid Build Coastguard Worker success = (x == y); 2641*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2642*35238bceSAndroid Build Coastguard Worker } 2643*35238bceSAndroid Build Coastguard Worker "" 2644*35238bceSAndroid Build Coastguard Worker end 2645*35238bceSAndroid Build Coastguard Worker 2646*35238bceSAndroid Build Coastguard Worker case equal_mediump_ivec2_lowp_ivec2 2647*35238bceSAndroid Build Coastguard Worker version 300 es 2648*35238bceSAndroid Build Coastguard Worker values 2649*35238bceSAndroid Build Coastguard Worker { 2650*35238bceSAndroid Build Coastguard Worker output bool success = true; 2651*35238bceSAndroid Build Coastguard Worker } 2652*35238bceSAndroid Build Coastguard Worker 2653*35238bceSAndroid Build Coastguard Worker both "" 2654*35238bceSAndroid Build Coastguard Worker #version 300 es 2655*35238bceSAndroid Build Coastguard Worker precision mediump float; 2656*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2657*35238bceSAndroid Build Coastguard Worker void main() 2658*35238bceSAndroid Build Coastguard Worker { 2659*35238bceSAndroid Build Coastguard Worker ${SETUP} 2660*35238bceSAndroid Build Coastguard Worker mediump ivec2 x[3] = ivec2[3](ivec2(1, 2), 2661*35238bceSAndroid Build Coastguard Worker ivec2(3, 4), 2662*35238bceSAndroid Build Coastguard Worker ivec2(5, 6)); 2663*35238bceSAndroid Build Coastguard Worker lowp ivec2 y[3] = x; 2664*35238bceSAndroid Build Coastguard Worker x = y; 2665*35238bceSAndroid Build Coastguard Worker success = (x == y); 2666*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2667*35238bceSAndroid Build Coastguard Worker } 2668*35238bceSAndroid Build Coastguard Worker "" 2669*35238bceSAndroid Build Coastguard Worker end 2670*35238bceSAndroid Build Coastguard Worker 2671*35238bceSAndroid Build Coastguard Worker case equal_mediump_ivec3_lowp_ivec3 2672*35238bceSAndroid Build Coastguard Worker version 300 es 2673*35238bceSAndroid Build Coastguard Worker values 2674*35238bceSAndroid Build Coastguard Worker { 2675*35238bceSAndroid Build Coastguard Worker output bool success = true; 2676*35238bceSAndroid Build Coastguard Worker } 2677*35238bceSAndroid Build Coastguard Worker 2678*35238bceSAndroid Build Coastguard Worker both "" 2679*35238bceSAndroid Build Coastguard Worker #version 300 es 2680*35238bceSAndroid Build Coastguard Worker precision mediump float; 2681*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2682*35238bceSAndroid Build Coastguard Worker void main() 2683*35238bceSAndroid Build Coastguard Worker { 2684*35238bceSAndroid Build Coastguard Worker ${SETUP} 2685*35238bceSAndroid Build Coastguard Worker mediump ivec3 x[3] = ivec3[3](ivec3(1, 2, 3), 2686*35238bceSAndroid Build Coastguard Worker ivec3(4, 5, 6), 2687*35238bceSAndroid Build Coastguard Worker ivec3(7, 8, 9)); 2688*35238bceSAndroid Build Coastguard Worker lowp ivec3 y[3] = x; 2689*35238bceSAndroid Build Coastguard Worker x = y; 2690*35238bceSAndroid Build Coastguard Worker success = (x == y); 2691*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2692*35238bceSAndroid Build Coastguard Worker } 2693*35238bceSAndroid Build Coastguard Worker "" 2694*35238bceSAndroid Build Coastguard Worker end 2695*35238bceSAndroid Build Coastguard Worker 2696*35238bceSAndroid Build Coastguard Worker case equal_mediump_ivec4_lowp_ivec4 2697*35238bceSAndroid Build Coastguard Worker version 300 es 2698*35238bceSAndroid Build Coastguard Worker values 2699*35238bceSAndroid Build Coastguard Worker { 2700*35238bceSAndroid Build Coastguard Worker output bool success = true; 2701*35238bceSAndroid Build Coastguard Worker } 2702*35238bceSAndroid Build Coastguard Worker 2703*35238bceSAndroid Build Coastguard Worker both "" 2704*35238bceSAndroid Build Coastguard Worker #version 300 es 2705*35238bceSAndroid Build Coastguard Worker precision mediump float; 2706*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2707*35238bceSAndroid Build Coastguard Worker void main() 2708*35238bceSAndroid Build Coastguard Worker { 2709*35238bceSAndroid Build Coastguard Worker ${SETUP} 2710*35238bceSAndroid Build Coastguard Worker mediump ivec4 x[3] = ivec4[3](ivec4(1, 2, 3, 4), 2711*35238bceSAndroid Build Coastguard Worker ivec4(5, 6, 7, 8), 2712*35238bceSAndroid Build Coastguard Worker ivec4(9, 10, 11, 12)); 2713*35238bceSAndroid Build Coastguard Worker lowp ivec4 y[3] = x; 2714*35238bceSAndroid Build Coastguard Worker x = y; 2715*35238bceSAndroid Build Coastguard Worker success = (x == y); 2716*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2717*35238bceSAndroid Build Coastguard Worker } 2718*35238bceSAndroid Build Coastguard Worker "" 2719*35238bceSAndroid Build Coastguard Worker end 2720*35238bceSAndroid Build Coastguard Worker 2721*35238bceSAndroid Build Coastguard Worker case equal_mediump_uvec2_lowp_uvec2 2722*35238bceSAndroid Build Coastguard Worker version 300 es 2723*35238bceSAndroid Build Coastguard Worker values 2724*35238bceSAndroid Build Coastguard Worker { 2725*35238bceSAndroid Build Coastguard Worker output bool success = true; 2726*35238bceSAndroid Build Coastguard Worker } 2727*35238bceSAndroid Build Coastguard Worker 2728*35238bceSAndroid Build Coastguard Worker both "" 2729*35238bceSAndroid Build Coastguard Worker #version 300 es 2730*35238bceSAndroid Build Coastguard Worker precision mediump float; 2731*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2732*35238bceSAndroid Build Coastguard Worker void main() 2733*35238bceSAndroid Build Coastguard Worker { 2734*35238bceSAndroid Build Coastguard Worker ${SETUP} 2735*35238bceSAndroid Build Coastguard Worker mediump uvec2 x[3] = uvec2[3](uvec2(1u, 2u), 2736*35238bceSAndroid Build Coastguard Worker uvec2(3u, 4u), 2737*35238bceSAndroid Build Coastguard Worker uvec2(5u, 6u)); 2738*35238bceSAndroid Build Coastguard Worker lowp uvec2 y[3] = x; 2739*35238bceSAndroid Build Coastguard Worker x = y; 2740*35238bceSAndroid Build Coastguard Worker success = (x == y); 2741*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2742*35238bceSAndroid Build Coastguard Worker } 2743*35238bceSAndroid Build Coastguard Worker "" 2744*35238bceSAndroid Build Coastguard Worker end 2745*35238bceSAndroid Build Coastguard Worker 2746*35238bceSAndroid Build Coastguard Worker case equal_mediump_uvec3_lowp_uvec3 2747*35238bceSAndroid Build Coastguard Worker version 300 es 2748*35238bceSAndroid Build Coastguard Worker values 2749*35238bceSAndroid Build Coastguard Worker { 2750*35238bceSAndroid Build Coastguard Worker output bool success = true; 2751*35238bceSAndroid Build Coastguard Worker } 2752*35238bceSAndroid Build Coastguard Worker 2753*35238bceSAndroid Build Coastguard Worker both "" 2754*35238bceSAndroid Build Coastguard Worker #version 300 es 2755*35238bceSAndroid Build Coastguard Worker precision mediump float; 2756*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2757*35238bceSAndroid Build Coastguard Worker void main() 2758*35238bceSAndroid Build Coastguard Worker { 2759*35238bceSAndroid Build Coastguard Worker ${SETUP} 2760*35238bceSAndroid Build Coastguard Worker mediump uvec3 x[3] = uvec3[3](uvec3(1u, 2u, 3u), 2761*35238bceSAndroid Build Coastguard Worker uvec3(4u, 5u, 6u), 2762*35238bceSAndroid Build Coastguard Worker uvec3(7u, 8u, 9u)); 2763*35238bceSAndroid Build Coastguard Worker lowp uvec3 y[3] = x; 2764*35238bceSAndroid Build Coastguard Worker x = y; 2765*35238bceSAndroid Build Coastguard Worker success = (x == y); 2766*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2767*35238bceSAndroid Build Coastguard Worker } 2768*35238bceSAndroid Build Coastguard Worker "" 2769*35238bceSAndroid Build Coastguard Worker end 2770*35238bceSAndroid Build Coastguard Worker 2771*35238bceSAndroid Build Coastguard Worker case equal_mediump_uvec4_lowp_uvec4 2772*35238bceSAndroid Build Coastguard Worker version 300 es 2773*35238bceSAndroid Build Coastguard Worker values 2774*35238bceSAndroid Build Coastguard Worker { 2775*35238bceSAndroid Build Coastguard Worker output bool success = true; 2776*35238bceSAndroid Build Coastguard Worker } 2777*35238bceSAndroid Build Coastguard Worker 2778*35238bceSAndroid Build Coastguard Worker both "" 2779*35238bceSAndroid Build Coastguard Worker #version 300 es 2780*35238bceSAndroid Build Coastguard Worker precision mediump float; 2781*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2782*35238bceSAndroid Build Coastguard Worker void main() 2783*35238bceSAndroid Build Coastguard Worker { 2784*35238bceSAndroid Build Coastguard Worker ${SETUP} 2785*35238bceSAndroid Build Coastguard Worker mediump uvec4 x[3] = uvec4[3](uvec4(1u, 2u, 3u, 4u), 2786*35238bceSAndroid Build Coastguard Worker uvec4(5u, 6u, 7u, 8u), 2787*35238bceSAndroid Build Coastguard Worker uvec4(9u, 10u, 11u, 12u)); 2788*35238bceSAndroid Build Coastguard Worker lowp uvec4 y[3] = x; 2789*35238bceSAndroid Build Coastguard Worker x = y; 2790*35238bceSAndroid Build Coastguard Worker success = (x == y); 2791*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2792*35238bceSAndroid Build Coastguard Worker } 2793*35238bceSAndroid Build Coastguard Worker "" 2794*35238bceSAndroid Build Coastguard Worker end 2795*35238bceSAndroid Build Coastguard Worker 2796*35238bceSAndroid Build Coastguard Worker case equal_mediump_mat2_lowp_mat2 2797*35238bceSAndroid Build Coastguard Worker version 300 es 2798*35238bceSAndroid Build Coastguard Worker values 2799*35238bceSAndroid Build Coastguard Worker { 2800*35238bceSAndroid Build Coastguard Worker output bool success = true; 2801*35238bceSAndroid Build Coastguard Worker } 2802*35238bceSAndroid Build Coastguard Worker 2803*35238bceSAndroid Build Coastguard Worker both "" 2804*35238bceSAndroid Build Coastguard Worker #version 300 es 2805*35238bceSAndroid Build Coastguard Worker precision mediump float; 2806*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2807*35238bceSAndroid Build Coastguard Worker void main() 2808*35238bceSAndroid Build Coastguard Worker { 2809*35238bceSAndroid Build Coastguard Worker ${SETUP} 2810*35238bceSAndroid Build Coastguard Worker mediump mat2 x[3] = mat2[3](mat2(1.0, 2.0, 3.0, 4.0), 2811*35238bceSAndroid Build Coastguard Worker mat2(5.0, 6.0, 7.0, 8.0), 2812*35238bceSAndroid Build Coastguard Worker mat2(9.0, 10.0, 11.0, 12.0)); 2813*35238bceSAndroid Build Coastguard Worker lowp mat2 y[3] = x; 2814*35238bceSAndroid Build Coastguard Worker x = y; 2815*35238bceSAndroid Build Coastguard Worker success = (x == y); 2816*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2817*35238bceSAndroid Build Coastguard Worker } 2818*35238bceSAndroid Build Coastguard Worker "" 2819*35238bceSAndroid Build Coastguard Worker end 2820*35238bceSAndroid Build Coastguard Worker 2821*35238bceSAndroid Build Coastguard Worker case equal_mediump_mat3_lowp_mat3 2822*35238bceSAndroid Build Coastguard Worker version 300 es 2823*35238bceSAndroid Build Coastguard Worker values 2824*35238bceSAndroid Build Coastguard Worker { 2825*35238bceSAndroid Build Coastguard Worker output bool success = true; 2826*35238bceSAndroid Build Coastguard Worker } 2827*35238bceSAndroid Build Coastguard Worker 2828*35238bceSAndroid Build Coastguard Worker both "" 2829*35238bceSAndroid Build Coastguard Worker #version 300 es 2830*35238bceSAndroid Build Coastguard Worker precision mediump float; 2831*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2832*35238bceSAndroid Build Coastguard Worker void main() 2833*35238bceSAndroid Build Coastguard Worker { 2834*35238bceSAndroid Build Coastguard Worker ${SETUP} 2835*35238bceSAndroid Build Coastguard Worker mediump mat3 x[3] = mat3[3](mat3(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0), 2836*35238bceSAndroid Build Coastguard Worker mat3(10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0), 2837*35238bceSAndroid Build Coastguard Worker mat3(19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0)); 2838*35238bceSAndroid Build Coastguard Worker lowp mat3 y[3] = x; 2839*35238bceSAndroid Build Coastguard Worker x = y; 2840*35238bceSAndroid Build Coastguard Worker success = (x == y); 2841*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2842*35238bceSAndroid Build Coastguard Worker } 2843*35238bceSAndroid Build Coastguard Worker "" 2844*35238bceSAndroid Build Coastguard Worker end 2845*35238bceSAndroid Build Coastguard Worker 2846*35238bceSAndroid Build Coastguard Worker case equal_mediump_mat4_lowp_mat4 2847*35238bceSAndroid Build Coastguard Worker version 300 es 2848*35238bceSAndroid Build Coastguard Worker values 2849*35238bceSAndroid Build Coastguard Worker { 2850*35238bceSAndroid Build Coastguard Worker output bool success = true; 2851*35238bceSAndroid Build Coastguard Worker } 2852*35238bceSAndroid Build Coastguard Worker 2853*35238bceSAndroid Build Coastguard Worker both "" 2854*35238bceSAndroid Build Coastguard Worker #version 300 es 2855*35238bceSAndroid Build Coastguard Worker precision mediump float; 2856*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2857*35238bceSAndroid Build Coastguard Worker void main() 2858*35238bceSAndroid Build Coastguard Worker { 2859*35238bceSAndroid Build Coastguard Worker ${SETUP} 2860*35238bceSAndroid Build Coastguard Worker mediump mat4 x[3] = mat4[3](mat4(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0), 2861*35238bceSAndroid Build Coastguard Worker mat4(17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0), 2862*35238bceSAndroid Build Coastguard Worker mat4(33.0, 34.0, 35.0, 36.0, 37.0, 38.0, 39.0, 40.0, 41.0, 42.0, 43.0, 44.0, 45.0, 46.0, 47.0, 48.0)); 2863*35238bceSAndroid Build Coastguard Worker lowp mat4 y[3] = x; 2864*35238bceSAndroid Build Coastguard Worker x = y; 2865*35238bceSAndroid Build Coastguard Worker success = (x == y); 2866*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2867*35238bceSAndroid Build Coastguard Worker } 2868*35238bceSAndroid Build Coastguard Worker "" 2869*35238bceSAndroid Build Coastguard Worker end 2870*35238bceSAndroid Build Coastguard Worker 2871*35238bceSAndroid Build Coastguard Worker case equal_mediump_int_mediump_int 2872*35238bceSAndroid Build Coastguard Worker version 300 es 2873*35238bceSAndroid Build Coastguard Worker values 2874*35238bceSAndroid Build Coastguard Worker { 2875*35238bceSAndroid Build Coastguard Worker output bool success = true; 2876*35238bceSAndroid Build Coastguard Worker } 2877*35238bceSAndroid Build Coastguard Worker 2878*35238bceSAndroid Build Coastguard Worker both "" 2879*35238bceSAndroid Build Coastguard Worker #version 300 es 2880*35238bceSAndroid Build Coastguard Worker precision mediump float; 2881*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2882*35238bceSAndroid Build Coastguard Worker void main() 2883*35238bceSAndroid Build Coastguard Worker { 2884*35238bceSAndroid Build Coastguard Worker ${SETUP} 2885*35238bceSAndroid Build Coastguard Worker mediump int x[3] = int[3](1, 2, 3); 2886*35238bceSAndroid Build Coastguard Worker mediump int y[3] = x; 2887*35238bceSAndroid Build Coastguard Worker x = y; 2888*35238bceSAndroid Build Coastguard Worker success = (x == y); 2889*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2890*35238bceSAndroid Build Coastguard Worker } 2891*35238bceSAndroid Build Coastguard Worker "" 2892*35238bceSAndroid Build Coastguard Worker end 2893*35238bceSAndroid Build Coastguard Worker 2894*35238bceSAndroid Build Coastguard Worker case equal_mediump_uint_mediump_uint 2895*35238bceSAndroid Build Coastguard Worker version 300 es 2896*35238bceSAndroid Build Coastguard Worker values 2897*35238bceSAndroid Build Coastguard Worker { 2898*35238bceSAndroid Build Coastguard Worker output bool success = true; 2899*35238bceSAndroid Build Coastguard Worker } 2900*35238bceSAndroid Build Coastguard Worker 2901*35238bceSAndroid Build Coastguard Worker both "" 2902*35238bceSAndroid Build Coastguard Worker #version 300 es 2903*35238bceSAndroid Build Coastguard Worker precision mediump float; 2904*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2905*35238bceSAndroid Build Coastguard Worker void main() 2906*35238bceSAndroid Build Coastguard Worker { 2907*35238bceSAndroid Build Coastguard Worker ${SETUP} 2908*35238bceSAndroid Build Coastguard Worker mediump uint x[3] = uint[3](1u, 2u, 3u); 2909*35238bceSAndroid Build Coastguard Worker mediump uint y[3] = x; 2910*35238bceSAndroid Build Coastguard Worker x = y; 2911*35238bceSAndroid Build Coastguard Worker success = (x == y); 2912*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2913*35238bceSAndroid Build Coastguard Worker } 2914*35238bceSAndroid Build Coastguard Worker "" 2915*35238bceSAndroid Build Coastguard Worker end 2916*35238bceSAndroid Build Coastguard Worker 2917*35238bceSAndroid Build Coastguard Worker case equal_mediump_float_mediump_float 2918*35238bceSAndroid Build Coastguard Worker version 300 es 2919*35238bceSAndroid Build Coastguard Worker values 2920*35238bceSAndroid Build Coastguard Worker { 2921*35238bceSAndroid Build Coastguard Worker output bool success = true; 2922*35238bceSAndroid Build Coastguard Worker } 2923*35238bceSAndroid Build Coastguard Worker 2924*35238bceSAndroid Build Coastguard Worker both "" 2925*35238bceSAndroid Build Coastguard Worker #version 300 es 2926*35238bceSAndroid Build Coastguard Worker precision mediump float; 2927*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2928*35238bceSAndroid Build Coastguard Worker void main() 2929*35238bceSAndroid Build Coastguard Worker { 2930*35238bceSAndroid Build Coastguard Worker ${SETUP} 2931*35238bceSAndroid Build Coastguard Worker mediump float x[3] = float[3](1.0, 2.0, 3.0); 2932*35238bceSAndroid Build Coastguard Worker mediump float y[3] = x; 2933*35238bceSAndroid Build Coastguard Worker x = y; 2934*35238bceSAndroid Build Coastguard Worker success = (x == y); 2935*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2936*35238bceSAndroid Build Coastguard Worker } 2937*35238bceSAndroid Build Coastguard Worker "" 2938*35238bceSAndroid Build Coastguard Worker end 2939*35238bceSAndroid Build Coastguard Worker 2940*35238bceSAndroid Build Coastguard Worker case equal_mediump_vec2_mediump_vec2 2941*35238bceSAndroid Build Coastguard Worker version 300 es 2942*35238bceSAndroid Build Coastguard Worker values 2943*35238bceSAndroid Build Coastguard Worker { 2944*35238bceSAndroid Build Coastguard Worker output bool success = true; 2945*35238bceSAndroid Build Coastguard Worker } 2946*35238bceSAndroid Build Coastguard Worker 2947*35238bceSAndroid Build Coastguard Worker both "" 2948*35238bceSAndroid Build Coastguard Worker #version 300 es 2949*35238bceSAndroid Build Coastguard Worker precision mediump float; 2950*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2951*35238bceSAndroid Build Coastguard Worker void main() 2952*35238bceSAndroid Build Coastguard Worker { 2953*35238bceSAndroid Build Coastguard Worker ${SETUP} 2954*35238bceSAndroid Build Coastguard Worker mediump vec2 x[3] = vec2[3](vec2(1.0, 2.0), 2955*35238bceSAndroid Build Coastguard Worker vec2(3.0, 4.0), 2956*35238bceSAndroid Build Coastguard Worker vec2(5.0, 6.0)); 2957*35238bceSAndroid Build Coastguard Worker mediump vec2 y[3] = x; 2958*35238bceSAndroid Build Coastguard Worker x = y; 2959*35238bceSAndroid Build Coastguard Worker success = (x == y); 2960*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2961*35238bceSAndroid Build Coastguard Worker } 2962*35238bceSAndroid Build Coastguard Worker "" 2963*35238bceSAndroid Build Coastguard Worker end 2964*35238bceSAndroid Build Coastguard Worker 2965*35238bceSAndroid Build Coastguard Worker case equal_mediump_vec3_mediump_vec3 2966*35238bceSAndroid Build Coastguard Worker version 300 es 2967*35238bceSAndroid Build Coastguard Worker values 2968*35238bceSAndroid Build Coastguard Worker { 2969*35238bceSAndroid Build Coastguard Worker output bool success = true; 2970*35238bceSAndroid Build Coastguard Worker } 2971*35238bceSAndroid Build Coastguard Worker 2972*35238bceSAndroid Build Coastguard Worker both "" 2973*35238bceSAndroid Build Coastguard Worker #version 300 es 2974*35238bceSAndroid Build Coastguard Worker precision mediump float; 2975*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2976*35238bceSAndroid Build Coastguard Worker void main() 2977*35238bceSAndroid Build Coastguard Worker { 2978*35238bceSAndroid Build Coastguard Worker ${SETUP} 2979*35238bceSAndroid Build Coastguard Worker mediump vec3 x[3] = vec3[3](vec3(1.0, 2.0, 3.0), 2980*35238bceSAndroid Build Coastguard Worker vec3(4.0, 5.0, 6.0), 2981*35238bceSAndroid Build Coastguard Worker vec3(7.0, 8.0, 9.0)); 2982*35238bceSAndroid Build Coastguard Worker mediump vec3 y[3] = x; 2983*35238bceSAndroid Build Coastguard Worker x = y; 2984*35238bceSAndroid Build Coastguard Worker success = (x == y); 2985*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2986*35238bceSAndroid Build Coastguard Worker } 2987*35238bceSAndroid Build Coastguard Worker "" 2988*35238bceSAndroid Build Coastguard Worker end 2989*35238bceSAndroid Build Coastguard Worker 2990*35238bceSAndroid Build Coastguard Worker case equal_mediump_vec4_mediump_vec4 2991*35238bceSAndroid Build Coastguard Worker version 300 es 2992*35238bceSAndroid Build Coastguard Worker values 2993*35238bceSAndroid Build Coastguard Worker { 2994*35238bceSAndroid Build Coastguard Worker output bool success = true; 2995*35238bceSAndroid Build Coastguard Worker } 2996*35238bceSAndroid Build Coastguard Worker 2997*35238bceSAndroid Build Coastguard Worker both "" 2998*35238bceSAndroid Build Coastguard Worker #version 300 es 2999*35238bceSAndroid Build Coastguard Worker precision mediump float; 3000*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3001*35238bceSAndroid Build Coastguard Worker void main() 3002*35238bceSAndroid Build Coastguard Worker { 3003*35238bceSAndroid Build Coastguard Worker ${SETUP} 3004*35238bceSAndroid Build Coastguard Worker mediump vec4 x[3] = vec4[3](vec4(1.0, 2.0, 3.0, 4.0), 3005*35238bceSAndroid Build Coastguard Worker vec4(5.0, 6.0, 7.0, 8.0), 3006*35238bceSAndroid Build Coastguard Worker vec4(9.0, 10.0, 11.0, 12.0)); 3007*35238bceSAndroid Build Coastguard Worker mediump vec4 y[3] = x; 3008*35238bceSAndroid Build Coastguard Worker x = y; 3009*35238bceSAndroid Build Coastguard Worker success = (x == y); 3010*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3011*35238bceSAndroid Build Coastguard Worker } 3012*35238bceSAndroid Build Coastguard Worker "" 3013*35238bceSAndroid Build Coastguard Worker end 3014*35238bceSAndroid Build Coastguard Worker 3015*35238bceSAndroid Build Coastguard Worker case equal_mediump_ivec2_mediump_ivec2 3016*35238bceSAndroid Build Coastguard Worker version 300 es 3017*35238bceSAndroid Build Coastguard Worker values 3018*35238bceSAndroid Build Coastguard Worker { 3019*35238bceSAndroid Build Coastguard Worker output bool success = true; 3020*35238bceSAndroid Build Coastguard Worker } 3021*35238bceSAndroid Build Coastguard Worker 3022*35238bceSAndroid Build Coastguard Worker both "" 3023*35238bceSAndroid Build Coastguard Worker #version 300 es 3024*35238bceSAndroid Build Coastguard Worker precision mediump float; 3025*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3026*35238bceSAndroid Build Coastguard Worker void main() 3027*35238bceSAndroid Build Coastguard Worker { 3028*35238bceSAndroid Build Coastguard Worker ${SETUP} 3029*35238bceSAndroid Build Coastguard Worker mediump ivec2 x[3] = ivec2[3](ivec2(1, 2), 3030*35238bceSAndroid Build Coastguard Worker ivec2(3, 4), 3031*35238bceSAndroid Build Coastguard Worker ivec2(5, 6)); 3032*35238bceSAndroid Build Coastguard Worker mediump ivec2 y[3] = x; 3033*35238bceSAndroid Build Coastguard Worker x = y; 3034*35238bceSAndroid Build Coastguard Worker success = (x == y); 3035*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3036*35238bceSAndroid Build Coastguard Worker } 3037*35238bceSAndroid Build Coastguard Worker "" 3038*35238bceSAndroid Build Coastguard Worker end 3039*35238bceSAndroid Build Coastguard Worker 3040*35238bceSAndroid Build Coastguard Worker case equal_mediump_ivec3_mediump_ivec3 3041*35238bceSAndroid Build Coastguard Worker version 300 es 3042*35238bceSAndroid Build Coastguard Worker values 3043*35238bceSAndroid Build Coastguard Worker { 3044*35238bceSAndroid Build Coastguard Worker output bool success = true; 3045*35238bceSAndroid Build Coastguard Worker } 3046*35238bceSAndroid Build Coastguard Worker 3047*35238bceSAndroid Build Coastguard Worker both "" 3048*35238bceSAndroid Build Coastguard Worker #version 300 es 3049*35238bceSAndroid Build Coastguard Worker precision mediump float; 3050*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3051*35238bceSAndroid Build Coastguard Worker void main() 3052*35238bceSAndroid Build Coastguard Worker { 3053*35238bceSAndroid Build Coastguard Worker ${SETUP} 3054*35238bceSAndroid Build Coastguard Worker mediump ivec3 x[3] = ivec3[3](ivec3(1, 2, 3), 3055*35238bceSAndroid Build Coastguard Worker ivec3(4, 5, 6), 3056*35238bceSAndroid Build Coastguard Worker ivec3(7, 8, 9)); 3057*35238bceSAndroid Build Coastguard Worker mediump ivec3 y[3] = x; 3058*35238bceSAndroid Build Coastguard Worker x = y; 3059*35238bceSAndroid Build Coastguard Worker success = (x == y); 3060*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3061*35238bceSAndroid Build Coastguard Worker } 3062*35238bceSAndroid Build Coastguard Worker "" 3063*35238bceSAndroid Build Coastguard Worker end 3064*35238bceSAndroid Build Coastguard Worker 3065*35238bceSAndroid Build Coastguard Worker case equal_mediump_ivec4_mediump_ivec4 3066*35238bceSAndroid Build Coastguard Worker version 300 es 3067*35238bceSAndroid Build Coastguard Worker values 3068*35238bceSAndroid Build Coastguard Worker { 3069*35238bceSAndroid Build Coastguard Worker output bool success = true; 3070*35238bceSAndroid Build Coastguard Worker } 3071*35238bceSAndroid Build Coastguard Worker 3072*35238bceSAndroid Build Coastguard Worker both "" 3073*35238bceSAndroid Build Coastguard Worker #version 300 es 3074*35238bceSAndroid Build Coastguard Worker precision mediump float; 3075*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3076*35238bceSAndroid Build Coastguard Worker void main() 3077*35238bceSAndroid Build Coastguard Worker { 3078*35238bceSAndroid Build Coastguard Worker ${SETUP} 3079*35238bceSAndroid Build Coastguard Worker mediump ivec4 x[3] = ivec4[3](ivec4(1, 2, 3, 4), 3080*35238bceSAndroid Build Coastguard Worker ivec4(5, 6, 7, 8), 3081*35238bceSAndroid Build Coastguard Worker ivec4(9, 10, 11, 12)); 3082*35238bceSAndroid Build Coastguard Worker mediump ivec4 y[3] = x; 3083*35238bceSAndroid Build Coastguard Worker x = y; 3084*35238bceSAndroid Build Coastguard Worker success = (x == y); 3085*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3086*35238bceSAndroid Build Coastguard Worker } 3087*35238bceSAndroid Build Coastguard Worker "" 3088*35238bceSAndroid Build Coastguard Worker end 3089*35238bceSAndroid Build Coastguard Worker 3090*35238bceSAndroid Build Coastguard Worker case equal_mediump_uvec2_mediump_uvec2 3091*35238bceSAndroid Build Coastguard Worker version 300 es 3092*35238bceSAndroid Build Coastguard Worker values 3093*35238bceSAndroid Build Coastguard Worker { 3094*35238bceSAndroid Build Coastguard Worker output bool success = true; 3095*35238bceSAndroid Build Coastguard Worker } 3096*35238bceSAndroid Build Coastguard Worker 3097*35238bceSAndroid Build Coastguard Worker both "" 3098*35238bceSAndroid Build Coastguard Worker #version 300 es 3099*35238bceSAndroid Build Coastguard Worker precision mediump float; 3100*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3101*35238bceSAndroid Build Coastguard Worker void main() 3102*35238bceSAndroid Build Coastguard Worker { 3103*35238bceSAndroid Build Coastguard Worker ${SETUP} 3104*35238bceSAndroid Build Coastguard Worker mediump uvec2 x[3] = uvec2[3](uvec2(1u, 2u), 3105*35238bceSAndroid Build Coastguard Worker uvec2(3u, 4u), 3106*35238bceSAndroid Build Coastguard Worker uvec2(5u, 6u)); 3107*35238bceSAndroid Build Coastguard Worker mediump uvec2 y[3] = x; 3108*35238bceSAndroid Build Coastguard Worker x = y; 3109*35238bceSAndroid Build Coastguard Worker success = (x == y); 3110*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3111*35238bceSAndroid Build Coastguard Worker } 3112*35238bceSAndroid Build Coastguard Worker "" 3113*35238bceSAndroid Build Coastguard Worker end 3114*35238bceSAndroid Build Coastguard Worker 3115*35238bceSAndroid Build Coastguard Worker case equal_mediump_uvec3_mediump_uvec3 3116*35238bceSAndroid Build Coastguard Worker version 300 es 3117*35238bceSAndroid Build Coastguard Worker values 3118*35238bceSAndroid Build Coastguard Worker { 3119*35238bceSAndroid Build Coastguard Worker output bool success = true; 3120*35238bceSAndroid Build Coastguard Worker } 3121*35238bceSAndroid Build Coastguard Worker 3122*35238bceSAndroid Build Coastguard Worker both "" 3123*35238bceSAndroid Build Coastguard Worker #version 300 es 3124*35238bceSAndroid Build Coastguard Worker precision mediump float; 3125*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3126*35238bceSAndroid Build Coastguard Worker void main() 3127*35238bceSAndroid Build Coastguard Worker { 3128*35238bceSAndroid Build Coastguard Worker ${SETUP} 3129*35238bceSAndroid Build Coastguard Worker mediump uvec3 x[3] = uvec3[3](uvec3(1u, 2u, 3u), 3130*35238bceSAndroid Build Coastguard Worker uvec3(4u, 5u, 6u), 3131*35238bceSAndroid Build Coastguard Worker uvec3(7u, 8u, 9u)); 3132*35238bceSAndroid Build Coastguard Worker mediump uvec3 y[3] = x; 3133*35238bceSAndroid Build Coastguard Worker x = y; 3134*35238bceSAndroid Build Coastguard Worker success = (x == y); 3135*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3136*35238bceSAndroid Build Coastguard Worker } 3137*35238bceSAndroid Build Coastguard Worker "" 3138*35238bceSAndroid Build Coastguard Worker end 3139*35238bceSAndroid Build Coastguard Worker 3140*35238bceSAndroid Build Coastguard Worker case equal_mediump_uvec4_mediump_uvec4 3141*35238bceSAndroid Build Coastguard Worker version 300 es 3142*35238bceSAndroid Build Coastguard Worker values 3143*35238bceSAndroid Build Coastguard Worker { 3144*35238bceSAndroid Build Coastguard Worker output bool success = true; 3145*35238bceSAndroid Build Coastguard Worker } 3146*35238bceSAndroid Build Coastguard Worker 3147*35238bceSAndroid Build Coastguard Worker both "" 3148*35238bceSAndroid Build Coastguard Worker #version 300 es 3149*35238bceSAndroid Build Coastguard Worker precision mediump float; 3150*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3151*35238bceSAndroid Build Coastguard Worker void main() 3152*35238bceSAndroid Build Coastguard Worker { 3153*35238bceSAndroid Build Coastguard Worker ${SETUP} 3154*35238bceSAndroid Build Coastguard Worker mediump uvec4 x[3] = uvec4[3](uvec4(1u, 2u, 3u, 4u), 3155*35238bceSAndroid Build Coastguard Worker uvec4(5u, 6u, 7u, 8u), 3156*35238bceSAndroid Build Coastguard Worker uvec4(9u, 10u, 11u, 12u)); 3157*35238bceSAndroid Build Coastguard Worker mediump uvec4 y[3] = x; 3158*35238bceSAndroid Build Coastguard Worker x = y; 3159*35238bceSAndroid Build Coastguard Worker success = (x == y); 3160*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3161*35238bceSAndroid Build Coastguard Worker } 3162*35238bceSAndroid Build Coastguard Worker "" 3163*35238bceSAndroid Build Coastguard Worker end 3164*35238bceSAndroid Build Coastguard Worker 3165*35238bceSAndroid Build Coastguard Worker case equal_mediump_mat2_mediump_mat2 3166*35238bceSAndroid Build Coastguard Worker version 300 es 3167*35238bceSAndroid Build Coastguard Worker values 3168*35238bceSAndroid Build Coastguard Worker { 3169*35238bceSAndroid Build Coastguard Worker output bool success = true; 3170*35238bceSAndroid Build Coastguard Worker } 3171*35238bceSAndroid Build Coastguard Worker 3172*35238bceSAndroid Build Coastguard Worker both "" 3173*35238bceSAndroid Build Coastguard Worker #version 300 es 3174*35238bceSAndroid Build Coastguard Worker precision mediump float; 3175*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3176*35238bceSAndroid Build Coastguard Worker void main() 3177*35238bceSAndroid Build Coastguard Worker { 3178*35238bceSAndroid Build Coastguard Worker ${SETUP} 3179*35238bceSAndroid Build Coastguard Worker mediump mat2 x[3] = mat2[3](mat2(1.0, 2.0, 3.0, 4.0), 3180*35238bceSAndroid Build Coastguard Worker mat2(5.0, 6.0, 7.0, 8.0), 3181*35238bceSAndroid Build Coastguard Worker mat2(9.0, 10.0, 11.0, 12.0)); 3182*35238bceSAndroid Build Coastguard Worker mediump mat2 y[3] = x; 3183*35238bceSAndroid Build Coastguard Worker x = y; 3184*35238bceSAndroid Build Coastguard Worker success = (x == y); 3185*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3186*35238bceSAndroid Build Coastguard Worker } 3187*35238bceSAndroid Build Coastguard Worker "" 3188*35238bceSAndroid Build Coastguard Worker end 3189*35238bceSAndroid Build Coastguard Worker 3190*35238bceSAndroid Build Coastguard Worker case equal_mediump_mat3_mediump_mat3 3191*35238bceSAndroid Build Coastguard Worker version 300 es 3192*35238bceSAndroid Build Coastguard Worker values 3193*35238bceSAndroid Build Coastguard Worker { 3194*35238bceSAndroid Build Coastguard Worker output bool success = true; 3195*35238bceSAndroid Build Coastguard Worker } 3196*35238bceSAndroid Build Coastguard Worker 3197*35238bceSAndroid Build Coastguard Worker both "" 3198*35238bceSAndroid Build Coastguard Worker #version 300 es 3199*35238bceSAndroid Build Coastguard Worker precision mediump float; 3200*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3201*35238bceSAndroid Build Coastguard Worker void main() 3202*35238bceSAndroid Build Coastguard Worker { 3203*35238bceSAndroid Build Coastguard Worker ${SETUP} 3204*35238bceSAndroid Build Coastguard Worker mediump mat3 x[3] = mat3[3](mat3(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0), 3205*35238bceSAndroid Build Coastguard Worker mat3(10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0), 3206*35238bceSAndroid Build Coastguard Worker mat3(19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0)); 3207*35238bceSAndroid Build Coastguard Worker mediump mat3 y[3] = x; 3208*35238bceSAndroid Build Coastguard Worker x = y; 3209*35238bceSAndroid Build Coastguard Worker success = (x == y); 3210*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3211*35238bceSAndroid Build Coastguard Worker } 3212*35238bceSAndroid Build Coastguard Worker "" 3213*35238bceSAndroid Build Coastguard Worker end 3214*35238bceSAndroid Build Coastguard Worker 3215*35238bceSAndroid Build Coastguard Worker case equal_mediump_mat4_mediump_mat4 3216*35238bceSAndroid Build Coastguard Worker version 300 es 3217*35238bceSAndroid Build Coastguard Worker values 3218*35238bceSAndroid Build Coastguard Worker { 3219*35238bceSAndroid Build Coastguard Worker output bool success = true; 3220*35238bceSAndroid Build Coastguard Worker } 3221*35238bceSAndroid Build Coastguard Worker 3222*35238bceSAndroid Build Coastguard Worker both "" 3223*35238bceSAndroid Build Coastguard Worker #version 300 es 3224*35238bceSAndroid Build Coastguard Worker precision mediump float; 3225*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3226*35238bceSAndroid Build Coastguard Worker void main() 3227*35238bceSAndroid Build Coastguard Worker { 3228*35238bceSAndroid Build Coastguard Worker ${SETUP} 3229*35238bceSAndroid Build Coastguard Worker mediump mat4 x[3] = mat4[3](mat4(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0), 3230*35238bceSAndroid Build Coastguard Worker mat4(17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0), 3231*35238bceSAndroid Build Coastguard Worker mat4(33.0, 34.0, 35.0, 36.0, 37.0, 38.0, 39.0, 40.0, 41.0, 42.0, 43.0, 44.0, 45.0, 46.0, 47.0, 48.0)); 3232*35238bceSAndroid Build Coastguard Worker mediump mat4 y[3] = x; 3233*35238bceSAndroid Build Coastguard Worker x = y; 3234*35238bceSAndroid Build Coastguard Worker success = (x == y); 3235*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3236*35238bceSAndroid Build Coastguard Worker } 3237*35238bceSAndroid Build Coastguard Worker "" 3238*35238bceSAndroid Build Coastguard Worker end 3239*35238bceSAndroid Build Coastguard Worker 3240*35238bceSAndroid Build Coastguard Worker case equal_highp_int_mediump_int 3241*35238bceSAndroid Build Coastguard Worker version 300 es 3242*35238bceSAndroid Build Coastguard Worker values 3243*35238bceSAndroid Build Coastguard Worker { 3244*35238bceSAndroid Build Coastguard Worker output bool success = true; 3245*35238bceSAndroid Build Coastguard Worker } 3246*35238bceSAndroid Build Coastguard Worker 3247*35238bceSAndroid Build Coastguard Worker both "" 3248*35238bceSAndroid Build Coastguard Worker #version 300 es 3249*35238bceSAndroid Build Coastguard Worker precision highp float; 3250*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3251*35238bceSAndroid Build Coastguard Worker void main() 3252*35238bceSAndroid Build Coastguard Worker { 3253*35238bceSAndroid Build Coastguard Worker ${SETUP} 3254*35238bceSAndroid Build Coastguard Worker highp int x[3] = int[3](1, 2, 3); 3255*35238bceSAndroid Build Coastguard Worker mediump int y[3] = x; 3256*35238bceSAndroid Build Coastguard Worker x = y; 3257*35238bceSAndroid Build Coastguard Worker success = (x == y); 3258*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3259*35238bceSAndroid Build Coastguard Worker } 3260*35238bceSAndroid Build Coastguard Worker "" 3261*35238bceSAndroid Build Coastguard Worker end 3262*35238bceSAndroid Build Coastguard Worker 3263*35238bceSAndroid Build Coastguard Worker case equal_highp_uint_mediump_uint 3264*35238bceSAndroid Build Coastguard Worker version 300 es 3265*35238bceSAndroid Build Coastguard Worker values 3266*35238bceSAndroid Build Coastguard Worker { 3267*35238bceSAndroid Build Coastguard Worker output bool success = true; 3268*35238bceSAndroid Build Coastguard Worker } 3269*35238bceSAndroid Build Coastguard Worker 3270*35238bceSAndroid Build Coastguard Worker both "" 3271*35238bceSAndroid Build Coastguard Worker #version 300 es 3272*35238bceSAndroid Build Coastguard Worker precision highp float; 3273*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3274*35238bceSAndroid Build Coastguard Worker void main() 3275*35238bceSAndroid Build Coastguard Worker { 3276*35238bceSAndroid Build Coastguard Worker ${SETUP} 3277*35238bceSAndroid Build Coastguard Worker highp uint x[3] = uint[3](1u, 2u, 3u); 3278*35238bceSAndroid Build Coastguard Worker mediump uint y[3] = x; 3279*35238bceSAndroid Build Coastguard Worker x = y; 3280*35238bceSAndroid Build Coastguard Worker success = (x == y); 3281*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3282*35238bceSAndroid Build Coastguard Worker } 3283*35238bceSAndroid Build Coastguard Worker "" 3284*35238bceSAndroid Build Coastguard Worker end 3285*35238bceSAndroid Build Coastguard Worker 3286*35238bceSAndroid Build Coastguard Worker case equal_highp_float_mediump_float 3287*35238bceSAndroid Build Coastguard Worker version 300 es 3288*35238bceSAndroid Build Coastguard Worker values 3289*35238bceSAndroid Build Coastguard Worker { 3290*35238bceSAndroid Build Coastguard Worker output bool success = true; 3291*35238bceSAndroid Build Coastguard Worker } 3292*35238bceSAndroid Build Coastguard Worker 3293*35238bceSAndroid Build Coastguard Worker both "" 3294*35238bceSAndroid Build Coastguard Worker #version 300 es 3295*35238bceSAndroid Build Coastguard Worker precision highp float; 3296*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3297*35238bceSAndroid Build Coastguard Worker void main() 3298*35238bceSAndroid Build Coastguard Worker { 3299*35238bceSAndroid Build Coastguard Worker ${SETUP} 3300*35238bceSAndroid Build Coastguard Worker highp float x[3] = float[3](1.0, 2.0, 3.0); 3301*35238bceSAndroid Build Coastguard Worker mediump float y[3] = x; 3302*35238bceSAndroid Build Coastguard Worker x = y; 3303*35238bceSAndroid Build Coastguard Worker success = (x == y); 3304*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3305*35238bceSAndroid Build Coastguard Worker } 3306*35238bceSAndroid Build Coastguard Worker "" 3307*35238bceSAndroid Build Coastguard Worker end 3308*35238bceSAndroid Build Coastguard Worker 3309*35238bceSAndroid Build Coastguard Worker case equal_highp_vec2_mediump_vec2 3310*35238bceSAndroid Build Coastguard Worker version 300 es 3311*35238bceSAndroid Build Coastguard Worker values 3312*35238bceSAndroid Build Coastguard Worker { 3313*35238bceSAndroid Build Coastguard Worker output bool success = true; 3314*35238bceSAndroid Build Coastguard Worker } 3315*35238bceSAndroid Build Coastguard Worker 3316*35238bceSAndroid Build Coastguard Worker both "" 3317*35238bceSAndroid Build Coastguard Worker #version 300 es 3318*35238bceSAndroid Build Coastguard Worker precision highp float; 3319*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3320*35238bceSAndroid Build Coastguard Worker void main() 3321*35238bceSAndroid Build Coastguard Worker { 3322*35238bceSAndroid Build Coastguard Worker ${SETUP} 3323*35238bceSAndroid Build Coastguard Worker highp vec2 x[3] = vec2[3](vec2(1.0, 2.0), 3324*35238bceSAndroid Build Coastguard Worker vec2(3.0, 4.0), 3325*35238bceSAndroid Build Coastguard Worker vec2(5.0, 6.0)); 3326*35238bceSAndroid Build Coastguard Worker mediump vec2 y[3] = x; 3327*35238bceSAndroid Build Coastguard Worker x = y; 3328*35238bceSAndroid Build Coastguard Worker success = (x == y); 3329*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3330*35238bceSAndroid Build Coastguard Worker } 3331*35238bceSAndroid Build Coastguard Worker "" 3332*35238bceSAndroid Build Coastguard Worker end 3333*35238bceSAndroid Build Coastguard Worker 3334*35238bceSAndroid Build Coastguard Worker case equal_highp_vec3_mediump_vec3 3335*35238bceSAndroid Build Coastguard Worker version 300 es 3336*35238bceSAndroid Build Coastguard Worker values 3337*35238bceSAndroid Build Coastguard Worker { 3338*35238bceSAndroid Build Coastguard Worker output bool success = true; 3339*35238bceSAndroid Build Coastguard Worker } 3340*35238bceSAndroid Build Coastguard Worker 3341*35238bceSAndroid Build Coastguard Worker both "" 3342*35238bceSAndroid Build Coastguard Worker #version 300 es 3343*35238bceSAndroid Build Coastguard Worker precision highp float; 3344*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3345*35238bceSAndroid Build Coastguard Worker void main() 3346*35238bceSAndroid Build Coastguard Worker { 3347*35238bceSAndroid Build Coastguard Worker ${SETUP} 3348*35238bceSAndroid Build Coastguard Worker highp vec3 x[3] = vec3[3](vec3(1.0, 2.0, 3.0), 3349*35238bceSAndroid Build Coastguard Worker vec3(4.0, 5.0, 6.0), 3350*35238bceSAndroid Build Coastguard Worker vec3(7.0, 8.0, 9.0)); 3351*35238bceSAndroid Build Coastguard Worker mediump vec3 y[3] = x; 3352*35238bceSAndroid Build Coastguard Worker x = y; 3353*35238bceSAndroid Build Coastguard Worker success = (x == y); 3354*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3355*35238bceSAndroid Build Coastguard Worker } 3356*35238bceSAndroid Build Coastguard Worker "" 3357*35238bceSAndroid Build Coastguard Worker end 3358*35238bceSAndroid Build Coastguard Worker 3359*35238bceSAndroid Build Coastguard Worker case equal_highp_vec4_mediump_vec4 3360*35238bceSAndroid Build Coastguard Worker version 300 es 3361*35238bceSAndroid Build Coastguard Worker values 3362*35238bceSAndroid Build Coastguard Worker { 3363*35238bceSAndroid Build Coastguard Worker output bool success = true; 3364*35238bceSAndroid Build Coastguard Worker } 3365*35238bceSAndroid Build Coastguard Worker 3366*35238bceSAndroid Build Coastguard Worker both "" 3367*35238bceSAndroid Build Coastguard Worker #version 300 es 3368*35238bceSAndroid Build Coastguard Worker precision highp float; 3369*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3370*35238bceSAndroid Build Coastguard Worker void main() 3371*35238bceSAndroid Build Coastguard Worker { 3372*35238bceSAndroid Build Coastguard Worker ${SETUP} 3373*35238bceSAndroid Build Coastguard Worker highp vec4 x[3] = vec4[3](vec4(1.0, 2.0, 3.0, 4.0), 3374*35238bceSAndroid Build Coastguard Worker vec4(5.0, 6.0, 7.0, 8.0), 3375*35238bceSAndroid Build Coastguard Worker vec4(9.0, 10.0, 11.0, 12.0)); 3376*35238bceSAndroid Build Coastguard Worker mediump vec4 y[3] = x; 3377*35238bceSAndroid Build Coastguard Worker x = y; 3378*35238bceSAndroid Build Coastguard Worker success = (x == y); 3379*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3380*35238bceSAndroid Build Coastguard Worker } 3381*35238bceSAndroid Build Coastguard Worker "" 3382*35238bceSAndroid Build Coastguard Worker end 3383*35238bceSAndroid Build Coastguard Worker 3384*35238bceSAndroid Build Coastguard Worker case equal_highp_ivec2_mediump_ivec2 3385*35238bceSAndroid Build Coastguard Worker version 300 es 3386*35238bceSAndroid Build Coastguard Worker values 3387*35238bceSAndroid Build Coastguard Worker { 3388*35238bceSAndroid Build Coastguard Worker output bool success = true; 3389*35238bceSAndroid Build Coastguard Worker } 3390*35238bceSAndroid Build Coastguard Worker 3391*35238bceSAndroid Build Coastguard Worker both "" 3392*35238bceSAndroid Build Coastguard Worker #version 300 es 3393*35238bceSAndroid Build Coastguard Worker precision highp float; 3394*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3395*35238bceSAndroid Build Coastguard Worker void main() 3396*35238bceSAndroid Build Coastguard Worker { 3397*35238bceSAndroid Build Coastguard Worker ${SETUP} 3398*35238bceSAndroid Build Coastguard Worker highp ivec2 x[3] = ivec2[3](ivec2(1, 2), 3399*35238bceSAndroid Build Coastguard Worker ivec2(3, 4), 3400*35238bceSAndroid Build Coastguard Worker ivec2(5, 6)); 3401*35238bceSAndroid Build Coastguard Worker mediump ivec2 y[3] = x; 3402*35238bceSAndroid Build Coastguard Worker x = y; 3403*35238bceSAndroid Build Coastguard Worker success = (x == y); 3404*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3405*35238bceSAndroid Build Coastguard Worker } 3406*35238bceSAndroid Build Coastguard Worker "" 3407*35238bceSAndroid Build Coastguard Worker end 3408*35238bceSAndroid Build Coastguard Worker 3409*35238bceSAndroid Build Coastguard Worker case equal_highp_ivec3_mediump_ivec3 3410*35238bceSAndroid Build Coastguard Worker version 300 es 3411*35238bceSAndroid Build Coastguard Worker values 3412*35238bceSAndroid Build Coastguard Worker { 3413*35238bceSAndroid Build Coastguard Worker output bool success = true; 3414*35238bceSAndroid Build Coastguard Worker } 3415*35238bceSAndroid Build Coastguard Worker 3416*35238bceSAndroid Build Coastguard Worker both "" 3417*35238bceSAndroid Build Coastguard Worker #version 300 es 3418*35238bceSAndroid Build Coastguard Worker precision highp float; 3419*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3420*35238bceSAndroid Build Coastguard Worker void main() 3421*35238bceSAndroid Build Coastguard Worker { 3422*35238bceSAndroid Build Coastguard Worker ${SETUP} 3423*35238bceSAndroid Build Coastguard Worker highp ivec3 x[3] = ivec3[3](ivec3(1, 2, 3), 3424*35238bceSAndroid Build Coastguard Worker ivec3(4, 5, 6), 3425*35238bceSAndroid Build Coastguard Worker ivec3(7, 8, 9)); 3426*35238bceSAndroid Build Coastguard Worker mediump ivec3 y[3] = x; 3427*35238bceSAndroid Build Coastguard Worker x = y; 3428*35238bceSAndroid Build Coastguard Worker success = (x == y); 3429*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3430*35238bceSAndroid Build Coastguard Worker } 3431*35238bceSAndroid Build Coastguard Worker "" 3432*35238bceSAndroid Build Coastguard Worker end 3433*35238bceSAndroid Build Coastguard Worker 3434*35238bceSAndroid Build Coastguard Worker case equal_highp_ivec4_mediump_ivec4 3435*35238bceSAndroid Build Coastguard Worker version 300 es 3436*35238bceSAndroid Build Coastguard Worker values 3437*35238bceSAndroid Build Coastguard Worker { 3438*35238bceSAndroid Build Coastguard Worker output bool success = true; 3439*35238bceSAndroid Build Coastguard Worker } 3440*35238bceSAndroid Build Coastguard Worker 3441*35238bceSAndroid Build Coastguard Worker both "" 3442*35238bceSAndroid Build Coastguard Worker #version 300 es 3443*35238bceSAndroid Build Coastguard Worker precision highp float; 3444*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3445*35238bceSAndroid Build Coastguard Worker void main() 3446*35238bceSAndroid Build Coastguard Worker { 3447*35238bceSAndroid Build Coastguard Worker ${SETUP} 3448*35238bceSAndroid Build Coastguard Worker highp ivec4 x[3] = ivec4[3](ivec4(1, 2, 3, 4), 3449*35238bceSAndroid Build Coastguard Worker ivec4(5, 6, 7, 8), 3450*35238bceSAndroid Build Coastguard Worker ivec4(9, 10, 11, 12)); 3451*35238bceSAndroid Build Coastguard Worker mediump ivec4 y[3] = x; 3452*35238bceSAndroid Build Coastguard Worker x = y; 3453*35238bceSAndroid Build Coastguard Worker success = (x == y); 3454*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3455*35238bceSAndroid Build Coastguard Worker } 3456*35238bceSAndroid Build Coastguard Worker "" 3457*35238bceSAndroid Build Coastguard Worker end 3458*35238bceSAndroid Build Coastguard Worker 3459*35238bceSAndroid Build Coastguard Worker case equal_highp_uvec2_mediump_uvec2 3460*35238bceSAndroid Build Coastguard Worker version 300 es 3461*35238bceSAndroid Build Coastguard Worker values 3462*35238bceSAndroid Build Coastguard Worker { 3463*35238bceSAndroid Build Coastguard Worker output bool success = true; 3464*35238bceSAndroid Build Coastguard Worker } 3465*35238bceSAndroid Build Coastguard Worker 3466*35238bceSAndroid Build Coastguard Worker both "" 3467*35238bceSAndroid Build Coastguard Worker #version 300 es 3468*35238bceSAndroid Build Coastguard Worker precision highp float; 3469*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3470*35238bceSAndroid Build Coastguard Worker void main() 3471*35238bceSAndroid Build Coastguard Worker { 3472*35238bceSAndroid Build Coastguard Worker ${SETUP} 3473*35238bceSAndroid Build Coastguard Worker highp uvec2 x[3] = uvec2[3](uvec2(1u, 2u), 3474*35238bceSAndroid Build Coastguard Worker uvec2(3u, 4u), 3475*35238bceSAndroid Build Coastguard Worker uvec2(5u, 6u)); 3476*35238bceSAndroid Build Coastguard Worker mediump uvec2 y[3] = x; 3477*35238bceSAndroid Build Coastguard Worker x = y; 3478*35238bceSAndroid Build Coastguard Worker success = (x == y); 3479*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3480*35238bceSAndroid Build Coastguard Worker } 3481*35238bceSAndroid Build Coastguard Worker "" 3482*35238bceSAndroid Build Coastguard Worker end 3483*35238bceSAndroid Build Coastguard Worker 3484*35238bceSAndroid Build Coastguard Worker case equal_highp_uvec3_mediump_uvec3 3485*35238bceSAndroid Build Coastguard Worker version 300 es 3486*35238bceSAndroid Build Coastguard Worker values 3487*35238bceSAndroid Build Coastguard Worker { 3488*35238bceSAndroid Build Coastguard Worker output bool success = true; 3489*35238bceSAndroid Build Coastguard Worker } 3490*35238bceSAndroid Build Coastguard Worker 3491*35238bceSAndroid Build Coastguard Worker both "" 3492*35238bceSAndroid Build Coastguard Worker #version 300 es 3493*35238bceSAndroid Build Coastguard Worker precision highp float; 3494*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3495*35238bceSAndroid Build Coastguard Worker void main() 3496*35238bceSAndroid Build Coastguard Worker { 3497*35238bceSAndroid Build Coastguard Worker ${SETUP} 3498*35238bceSAndroid Build Coastguard Worker highp uvec3 x[3] = uvec3[3](uvec3(1u, 2u, 3u), 3499*35238bceSAndroid Build Coastguard Worker uvec3(4u, 5u, 6u), 3500*35238bceSAndroid Build Coastguard Worker uvec3(7u, 8u, 9u)); 3501*35238bceSAndroid Build Coastguard Worker mediump uvec3 y[3] = x; 3502*35238bceSAndroid Build Coastguard Worker x = y; 3503*35238bceSAndroid Build Coastguard Worker success = (x == y); 3504*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3505*35238bceSAndroid Build Coastguard Worker } 3506*35238bceSAndroid Build Coastguard Worker "" 3507*35238bceSAndroid Build Coastguard Worker end 3508*35238bceSAndroid Build Coastguard Worker 3509*35238bceSAndroid Build Coastguard Worker case equal_highp_uvec4_mediump_uvec4 3510*35238bceSAndroid Build Coastguard Worker version 300 es 3511*35238bceSAndroid Build Coastguard Worker values 3512*35238bceSAndroid Build Coastguard Worker { 3513*35238bceSAndroid Build Coastguard Worker output bool success = true; 3514*35238bceSAndroid Build Coastguard Worker } 3515*35238bceSAndroid Build Coastguard Worker 3516*35238bceSAndroid Build Coastguard Worker both "" 3517*35238bceSAndroid Build Coastguard Worker #version 300 es 3518*35238bceSAndroid Build Coastguard Worker precision highp float; 3519*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3520*35238bceSAndroid Build Coastguard Worker void main() 3521*35238bceSAndroid Build Coastguard Worker { 3522*35238bceSAndroid Build Coastguard Worker ${SETUP} 3523*35238bceSAndroid Build Coastguard Worker highp uvec4 x[3] = uvec4[3](uvec4(1u, 2u, 3u, 4u), 3524*35238bceSAndroid Build Coastguard Worker uvec4(5u, 6u, 7u, 8u), 3525*35238bceSAndroid Build Coastguard Worker uvec4(9u, 10u, 11u, 12u)); 3526*35238bceSAndroid Build Coastguard Worker mediump uvec4 y[3] = x; 3527*35238bceSAndroid Build Coastguard Worker x = y; 3528*35238bceSAndroid Build Coastguard Worker success = (x == y); 3529*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3530*35238bceSAndroid Build Coastguard Worker } 3531*35238bceSAndroid Build Coastguard Worker "" 3532*35238bceSAndroid Build Coastguard Worker end 3533*35238bceSAndroid Build Coastguard Worker 3534*35238bceSAndroid Build Coastguard Worker case equal_highp_mat2_mediump_mat2 3535*35238bceSAndroid Build Coastguard Worker version 300 es 3536*35238bceSAndroid Build Coastguard Worker values 3537*35238bceSAndroid Build Coastguard Worker { 3538*35238bceSAndroid Build Coastguard Worker output bool success = true; 3539*35238bceSAndroid Build Coastguard Worker } 3540*35238bceSAndroid Build Coastguard Worker 3541*35238bceSAndroid Build Coastguard Worker both "" 3542*35238bceSAndroid Build Coastguard Worker #version 300 es 3543*35238bceSAndroid Build Coastguard Worker precision highp float; 3544*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3545*35238bceSAndroid Build Coastguard Worker void main() 3546*35238bceSAndroid Build Coastguard Worker { 3547*35238bceSAndroid Build Coastguard Worker ${SETUP} 3548*35238bceSAndroid Build Coastguard Worker highp mat2 x[3] = mat2[3](mat2(1.0, 2.0, 3.0, 4.0), 3549*35238bceSAndroid Build Coastguard Worker mat2(5.0, 6.0, 7.0, 8.0), 3550*35238bceSAndroid Build Coastguard Worker mat2(9.0, 10.0, 11.0, 12.0)); 3551*35238bceSAndroid Build Coastguard Worker mediump mat2 y[3] = x; 3552*35238bceSAndroid Build Coastguard Worker x = y; 3553*35238bceSAndroid Build Coastguard Worker success = (x == y); 3554*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3555*35238bceSAndroid Build Coastguard Worker } 3556*35238bceSAndroid Build Coastguard Worker "" 3557*35238bceSAndroid Build Coastguard Worker end 3558*35238bceSAndroid Build Coastguard Worker 3559*35238bceSAndroid Build Coastguard Worker case equal_highp_mat3_mediump_mat3 3560*35238bceSAndroid Build Coastguard Worker version 300 es 3561*35238bceSAndroid Build Coastguard Worker values 3562*35238bceSAndroid Build Coastguard Worker { 3563*35238bceSAndroid Build Coastguard Worker output bool success = true; 3564*35238bceSAndroid Build Coastguard Worker } 3565*35238bceSAndroid Build Coastguard Worker 3566*35238bceSAndroid Build Coastguard Worker both "" 3567*35238bceSAndroid Build Coastguard Worker #version 300 es 3568*35238bceSAndroid Build Coastguard Worker precision highp float; 3569*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3570*35238bceSAndroid Build Coastguard Worker void main() 3571*35238bceSAndroid Build Coastguard Worker { 3572*35238bceSAndroid Build Coastguard Worker ${SETUP} 3573*35238bceSAndroid Build Coastguard Worker highp mat3 x[3] = mat3[3](mat3(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0), 3574*35238bceSAndroid Build Coastguard Worker mat3(10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0), 3575*35238bceSAndroid Build Coastguard Worker mat3(19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0)); 3576*35238bceSAndroid Build Coastguard Worker mediump mat3 y[3] = x; 3577*35238bceSAndroid Build Coastguard Worker x = y; 3578*35238bceSAndroid Build Coastguard Worker success = (x == y); 3579*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3580*35238bceSAndroid Build Coastguard Worker } 3581*35238bceSAndroid Build Coastguard Worker "" 3582*35238bceSAndroid Build Coastguard Worker end 3583*35238bceSAndroid Build Coastguard Worker 3584*35238bceSAndroid Build Coastguard Worker case equal_highp_mat4_mediump_mat4 3585*35238bceSAndroid Build Coastguard Worker version 300 es 3586*35238bceSAndroid Build Coastguard Worker values 3587*35238bceSAndroid Build Coastguard Worker { 3588*35238bceSAndroid Build Coastguard Worker output bool success = true; 3589*35238bceSAndroid Build Coastguard Worker } 3590*35238bceSAndroid Build Coastguard Worker 3591*35238bceSAndroid Build Coastguard Worker both "" 3592*35238bceSAndroid Build Coastguard Worker #version 300 es 3593*35238bceSAndroid Build Coastguard Worker precision highp float; 3594*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3595*35238bceSAndroid Build Coastguard Worker void main() 3596*35238bceSAndroid Build Coastguard Worker { 3597*35238bceSAndroid Build Coastguard Worker ${SETUP} 3598*35238bceSAndroid Build Coastguard Worker highp mat4 x[3] = mat4[3](mat4(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0), 3599*35238bceSAndroid Build Coastguard Worker mat4(17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0), 3600*35238bceSAndroid Build Coastguard Worker mat4(33.0, 34.0, 35.0, 36.0, 37.0, 38.0, 39.0, 40.0, 41.0, 42.0, 43.0, 44.0, 45.0, 46.0, 47.0, 48.0)); 3601*35238bceSAndroid Build Coastguard Worker mediump mat4 y[3] = x; 3602*35238bceSAndroid Build Coastguard Worker x = y; 3603*35238bceSAndroid Build Coastguard Worker success = (x == y); 3604*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3605*35238bceSAndroid Build Coastguard Worker } 3606*35238bceSAndroid Build Coastguard Worker "" 3607*35238bceSAndroid Build Coastguard Worker end 3608*35238bceSAndroid Build Coastguard Worker 3609*35238bceSAndroid Build Coastguard Worker case equal_highp_int_lowp_int 3610*35238bceSAndroid Build Coastguard Worker version 300 es 3611*35238bceSAndroid Build Coastguard Worker values 3612*35238bceSAndroid Build Coastguard Worker { 3613*35238bceSAndroid Build Coastguard Worker output bool success = true; 3614*35238bceSAndroid Build Coastguard Worker } 3615*35238bceSAndroid Build Coastguard Worker 3616*35238bceSAndroid Build Coastguard Worker both "" 3617*35238bceSAndroid Build Coastguard Worker #version 300 es 3618*35238bceSAndroid Build Coastguard Worker precision highp float; 3619*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3620*35238bceSAndroid Build Coastguard Worker void main() 3621*35238bceSAndroid Build Coastguard Worker { 3622*35238bceSAndroid Build Coastguard Worker ${SETUP} 3623*35238bceSAndroid Build Coastguard Worker highp int x[3] = int[3](1, 2, 3); 3624*35238bceSAndroid Build Coastguard Worker lowp int y[3] = x; 3625*35238bceSAndroid Build Coastguard Worker x = y; 3626*35238bceSAndroid Build Coastguard Worker success = (x == y); 3627*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3628*35238bceSAndroid Build Coastguard Worker } 3629*35238bceSAndroid Build Coastguard Worker "" 3630*35238bceSAndroid Build Coastguard Worker end 3631*35238bceSAndroid Build Coastguard Worker 3632*35238bceSAndroid Build Coastguard Worker case equal_highp_uint_lowp_uint 3633*35238bceSAndroid Build Coastguard Worker version 300 es 3634*35238bceSAndroid Build Coastguard Worker values 3635*35238bceSAndroid Build Coastguard Worker { 3636*35238bceSAndroid Build Coastguard Worker output bool success = true; 3637*35238bceSAndroid Build Coastguard Worker } 3638*35238bceSAndroid Build Coastguard Worker 3639*35238bceSAndroid Build Coastguard Worker both "" 3640*35238bceSAndroid Build Coastguard Worker #version 300 es 3641*35238bceSAndroid Build Coastguard Worker precision highp float; 3642*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3643*35238bceSAndroid Build Coastguard Worker void main() 3644*35238bceSAndroid Build Coastguard Worker { 3645*35238bceSAndroid Build Coastguard Worker ${SETUP} 3646*35238bceSAndroid Build Coastguard Worker highp uint x[3] = uint[3](1u, 2u, 3u); 3647*35238bceSAndroid Build Coastguard Worker lowp uint y[3] = x; 3648*35238bceSAndroid Build Coastguard Worker x = y; 3649*35238bceSAndroid Build Coastguard Worker success = (x == y); 3650*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3651*35238bceSAndroid Build Coastguard Worker } 3652*35238bceSAndroid Build Coastguard Worker "" 3653*35238bceSAndroid Build Coastguard Worker end 3654*35238bceSAndroid Build Coastguard Worker 3655*35238bceSAndroid Build Coastguard Worker case equal_highp_float_lowp_float 3656*35238bceSAndroid Build Coastguard Worker version 300 es 3657*35238bceSAndroid Build Coastguard Worker values 3658*35238bceSAndroid Build Coastguard Worker { 3659*35238bceSAndroid Build Coastguard Worker output bool success = true; 3660*35238bceSAndroid Build Coastguard Worker } 3661*35238bceSAndroid Build Coastguard Worker 3662*35238bceSAndroid Build Coastguard Worker both "" 3663*35238bceSAndroid Build Coastguard Worker #version 300 es 3664*35238bceSAndroid Build Coastguard Worker precision highp float; 3665*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3666*35238bceSAndroid Build Coastguard Worker void main() 3667*35238bceSAndroid Build Coastguard Worker { 3668*35238bceSAndroid Build Coastguard Worker ${SETUP} 3669*35238bceSAndroid Build Coastguard Worker highp float x[3] = float[3](1.0, 2.0, 3.0); 3670*35238bceSAndroid Build Coastguard Worker lowp float y[3] = x; 3671*35238bceSAndroid Build Coastguard Worker x = y; 3672*35238bceSAndroid Build Coastguard Worker success = (x == y); 3673*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3674*35238bceSAndroid Build Coastguard Worker } 3675*35238bceSAndroid Build Coastguard Worker "" 3676*35238bceSAndroid Build Coastguard Worker end 3677*35238bceSAndroid Build Coastguard Worker 3678*35238bceSAndroid Build Coastguard Worker case equal_highp_vec2_lowp_vec2 3679*35238bceSAndroid Build Coastguard Worker version 300 es 3680*35238bceSAndroid Build Coastguard Worker values 3681*35238bceSAndroid Build Coastguard Worker { 3682*35238bceSAndroid Build Coastguard Worker output bool success = true; 3683*35238bceSAndroid Build Coastguard Worker } 3684*35238bceSAndroid Build Coastguard Worker 3685*35238bceSAndroid Build Coastguard Worker both "" 3686*35238bceSAndroid Build Coastguard Worker #version 300 es 3687*35238bceSAndroid Build Coastguard Worker precision highp float; 3688*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3689*35238bceSAndroid Build Coastguard Worker void main() 3690*35238bceSAndroid Build Coastguard Worker { 3691*35238bceSAndroid Build Coastguard Worker ${SETUP} 3692*35238bceSAndroid Build Coastguard Worker highp vec2 x[3] = vec2[3](vec2(1.0, 2.0), 3693*35238bceSAndroid Build Coastguard Worker vec2(3.0, 4.0), 3694*35238bceSAndroid Build Coastguard Worker vec2(5.0, 6.0)); 3695*35238bceSAndroid Build Coastguard Worker lowp vec2 y[3] = x; 3696*35238bceSAndroid Build Coastguard Worker x = y; 3697*35238bceSAndroid Build Coastguard Worker success = (x == y); 3698*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3699*35238bceSAndroid Build Coastguard Worker } 3700*35238bceSAndroid Build Coastguard Worker "" 3701*35238bceSAndroid Build Coastguard Worker end 3702*35238bceSAndroid Build Coastguard Worker 3703*35238bceSAndroid Build Coastguard Worker case equal_highp_vec3_lowp_vec3 3704*35238bceSAndroid Build Coastguard Worker version 300 es 3705*35238bceSAndroid Build Coastguard Worker values 3706*35238bceSAndroid Build Coastguard Worker { 3707*35238bceSAndroid Build Coastguard Worker output bool success = true; 3708*35238bceSAndroid Build Coastguard Worker } 3709*35238bceSAndroid Build Coastguard Worker 3710*35238bceSAndroid Build Coastguard Worker both "" 3711*35238bceSAndroid Build Coastguard Worker #version 300 es 3712*35238bceSAndroid Build Coastguard Worker precision highp float; 3713*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3714*35238bceSAndroid Build Coastguard Worker void main() 3715*35238bceSAndroid Build Coastguard Worker { 3716*35238bceSAndroid Build Coastguard Worker ${SETUP} 3717*35238bceSAndroid Build Coastguard Worker highp vec3 x[3] = vec3[3](vec3(1.0, 2.0, 3.0), 3718*35238bceSAndroid Build Coastguard Worker vec3(4.0, 5.0, 6.0), 3719*35238bceSAndroid Build Coastguard Worker vec3(7.0, 8.0, 9.0)); 3720*35238bceSAndroid Build Coastguard Worker lowp vec3 y[3] = x; 3721*35238bceSAndroid Build Coastguard Worker x = y; 3722*35238bceSAndroid Build Coastguard Worker success = (x == y); 3723*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3724*35238bceSAndroid Build Coastguard Worker } 3725*35238bceSAndroid Build Coastguard Worker "" 3726*35238bceSAndroid Build Coastguard Worker end 3727*35238bceSAndroid Build Coastguard Worker 3728*35238bceSAndroid Build Coastguard Worker case equal_highp_vec4_lowp_vec4 3729*35238bceSAndroid Build Coastguard Worker version 300 es 3730*35238bceSAndroid Build Coastguard Worker values 3731*35238bceSAndroid Build Coastguard Worker { 3732*35238bceSAndroid Build Coastguard Worker output bool success = true; 3733*35238bceSAndroid Build Coastguard Worker } 3734*35238bceSAndroid Build Coastguard Worker 3735*35238bceSAndroid Build Coastguard Worker both "" 3736*35238bceSAndroid Build Coastguard Worker #version 300 es 3737*35238bceSAndroid Build Coastguard Worker precision highp float; 3738*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3739*35238bceSAndroid Build Coastguard Worker void main() 3740*35238bceSAndroid Build Coastguard Worker { 3741*35238bceSAndroid Build Coastguard Worker ${SETUP} 3742*35238bceSAndroid Build Coastguard Worker highp vec4 x[3] = vec4[3](vec4(1.0, 2.0, 3.0, 4.0), 3743*35238bceSAndroid Build Coastguard Worker vec4(5.0, 6.0, 7.0, 8.0), 3744*35238bceSAndroid Build Coastguard Worker vec4(9.0, 10.0, 11.0, 12.0)); 3745*35238bceSAndroid Build Coastguard Worker lowp vec4 y[3] = x; 3746*35238bceSAndroid Build Coastguard Worker x = y; 3747*35238bceSAndroid Build Coastguard Worker success = (x == y); 3748*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3749*35238bceSAndroid Build Coastguard Worker } 3750*35238bceSAndroid Build Coastguard Worker "" 3751*35238bceSAndroid Build Coastguard Worker end 3752*35238bceSAndroid Build Coastguard Worker 3753*35238bceSAndroid Build Coastguard Worker case equal_highp_ivec2_lowp_ivec2 3754*35238bceSAndroid Build Coastguard Worker version 300 es 3755*35238bceSAndroid Build Coastguard Worker values 3756*35238bceSAndroid Build Coastguard Worker { 3757*35238bceSAndroid Build Coastguard Worker output bool success = true; 3758*35238bceSAndroid Build Coastguard Worker } 3759*35238bceSAndroid Build Coastguard Worker 3760*35238bceSAndroid Build Coastguard Worker both "" 3761*35238bceSAndroid Build Coastguard Worker #version 300 es 3762*35238bceSAndroid Build Coastguard Worker precision highp float; 3763*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3764*35238bceSAndroid Build Coastguard Worker void main() 3765*35238bceSAndroid Build Coastguard Worker { 3766*35238bceSAndroid Build Coastguard Worker ${SETUP} 3767*35238bceSAndroid Build Coastguard Worker highp ivec2 x[3] = ivec2[3](ivec2(1, 2), 3768*35238bceSAndroid Build Coastguard Worker ivec2(3, 4), 3769*35238bceSAndroid Build Coastguard Worker ivec2(5, 6)); 3770*35238bceSAndroid Build Coastguard Worker lowp ivec2 y[3] = x; 3771*35238bceSAndroid Build Coastguard Worker x = y; 3772*35238bceSAndroid Build Coastguard Worker success = (x == y); 3773*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3774*35238bceSAndroid Build Coastguard Worker } 3775*35238bceSAndroid Build Coastguard Worker "" 3776*35238bceSAndroid Build Coastguard Worker end 3777*35238bceSAndroid Build Coastguard Worker 3778*35238bceSAndroid Build Coastguard Worker case equal_highp_ivec3_lowp_ivec3 3779*35238bceSAndroid Build Coastguard Worker version 300 es 3780*35238bceSAndroid Build Coastguard Worker values 3781*35238bceSAndroid Build Coastguard Worker { 3782*35238bceSAndroid Build Coastguard Worker output bool success = true; 3783*35238bceSAndroid Build Coastguard Worker } 3784*35238bceSAndroid Build Coastguard Worker 3785*35238bceSAndroid Build Coastguard Worker both "" 3786*35238bceSAndroid Build Coastguard Worker #version 300 es 3787*35238bceSAndroid Build Coastguard Worker precision highp float; 3788*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3789*35238bceSAndroid Build Coastguard Worker void main() 3790*35238bceSAndroid Build Coastguard Worker { 3791*35238bceSAndroid Build Coastguard Worker ${SETUP} 3792*35238bceSAndroid Build Coastguard Worker highp ivec3 x[3] = ivec3[3](ivec3(1, 2, 3), 3793*35238bceSAndroid Build Coastguard Worker ivec3(4, 5, 6), 3794*35238bceSAndroid Build Coastguard Worker ivec3(7, 8, 9)); 3795*35238bceSAndroid Build Coastguard Worker lowp ivec3 y[3] = x; 3796*35238bceSAndroid Build Coastguard Worker x = y; 3797*35238bceSAndroid Build Coastguard Worker success = (x == y); 3798*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3799*35238bceSAndroid Build Coastguard Worker } 3800*35238bceSAndroid Build Coastguard Worker "" 3801*35238bceSAndroid Build Coastguard Worker end 3802*35238bceSAndroid Build Coastguard Worker 3803*35238bceSAndroid Build Coastguard Worker case equal_highp_ivec4_lowp_ivec4 3804*35238bceSAndroid Build Coastguard Worker version 300 es 3805*35238bceSAndroid Build Coastguard Worker values 3806*35238bceSAndroid Build Coastguard Worker { 3807*35238bceSAndroid Build Coastguard Worker output bool success = true; 3808*35238bceSAndroid Build Coastguard Worker } 3809*35238bceSAndroid Build Coastguard Worker 3810*35238bceSAndroid Build Coastguard Worker both "" 3811*35238bceSAndroid Build Coastguard Worker #version 300 es 3812*35238bceSAndroid Build Coastguard Worker precision highp float; 3813*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3814*35238bceSAndroid Build Coastguard Worker void main() 3815*35238bceSAndroid Build Coastguard Worker { 3816*35238bceSAndroid Build Coastguard Worker ${SETUP} 3817*35238bceSAndroid Build Coastguard Worker highp ivec4 x[3] = ivec4[3](ivec4(1, 2, 3, 4), 3818*35238bceSAndroid Build Coastguard Worker ivec4(5, 6, 7, 8), 3819*35238bceSAndroid Build Coastguard Worker ivec4(9, 10, 11, 12)); 3820*35238bceSAndroid Build Coastguard Worker lowp ivec4 y[3] = x; 3821*35238bceSAndroid Build Coastguard Worker x = y; 3822*35238bceSAndroid Build Coastguard Worker success = (x == y); 3823*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3824*35238bceSAndroid Build Coastguard Worker } 3825*35238bceSAndroid Build Coastguard Worker "" 3826*35238bceSAndroid Build Coastguard Worker end 3827*35238bceSAndroid Build Coastguard Worker 3828*35238bceSAndroid Build Coastguard Worker case equal_highp_uvec2_lowp_uvec2 3829*35238bceSAndroid Build Coastguard Worker version 300 es 3830*35238bceSAndroid Build Coastguard Worker values 3831*35238bceSAndroid Build Coastguard Worker { 3832*35238bceSAndroid Build Coastguard Worker output bool success = true; 3833*35238bceSAndroid Build Coastguard Worker } 3834*35238bceSAndroid Build Coastguard Worker 3835*35238bceSAndroid Build Coastguard Worker both "" 3836*35238bceSAndroid Build Coastguard Worker #version 300 es 3837*35238bceSAndroid Build Coastguard Worker precision highp float; 3838*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3839*35238bceSAndroid Build Coastguard Worker void main() 3840*35238bceSAndroid Build Coastguard Worker { 3841*35238bceSAndroid Build Coastguard Worker ${SETUP} 3842*35238bceSAndroid Build Coastguard Worker highp uvec2 x[3] = uvec2[3](uvec2(1u, 2u), 3843*35238bceSAndroid Build Coastguard Worker uvec2(3u, 4u), 3844*35238bceSAndroid Build Coastguard Worker uvec2(5u, 6u)); 3845*35238bceSAndroid Build Coastguard Worker lowp uvec2 y[3] = x; 3846*35238bceSAndroid Build Coastguard Worker x = y; 3847*35238bceSAndroid Build Coastguard Worker success = (x == y); 3848*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3849*35238bceSAndroid Build Coastguard Worker } 3850*35238bceSAndroid Build Coastguard Worker "" 3851*35238bceSAndroid Build Coastguard Worker end 3852*35238bceSAndroid Build Coastguard Worker 3853*35238bceSAndroid Build Coastguard Worker case equal_highp_uvec3_lowp_uvec3 3854*35238bceSAndroid Build Coastguard Worker version 300 es 3855*35238bceSAndroid Build Coastguard Worker values 3856*35238bceSAndroid Build Coastguard Worker { 3857*35238bceSAndroid Build Coastguard Worker output bool success = true; 3858*35238bceSAndroid Build Coastguard Worker } 3859*35238bceSAndroid Build Coastguard Worker 3860*35238bceSAndroid Build Coastguard Worker both "" 3861*35238bceSAndroid Build Coastguard Worker #version 300 es 3862*35238bceSAndroid Build Coastguard Worker precision highp float; 3863*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3864*35238bceSAndroid Build Coastguard Worker void main() 3865*35238bceSAndroid Build Coastguard Worker { 3866*35238bceSAndroid Build Coastguard Worker ${SETUP} 3867*35238bceSAndroid Build Coastguard Worker highp uvec3 x[3] = uvec3[3](uvec3(1u, 2u, 3u), 3868*35238bceSAndroid Build Coastguard Worker uvec3(4u, 5u, 6u), 3869*35238bceSAndroid Build Coastguard Worker uvec3(7u, 8u, 9u)); 3870*35238bceSAndroid Build Coastguard Worker lowp uvec3 y[3] = x; 3871*35238bceSAndroid Build Coastguard Worker x = y; 3872*35238bceSAndroid Build Coastguard Worker success = (x == y); 3873*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3874*35238bceSAndroid Build Coastguard Worker } 3875*35238bceSAndroid Build Coastguard Worker "" 3876*35238bceSAndroid Build Coastguard Worker end 3877*35238bceSAndroid Build Coastguard Worker 3878*35238bceSAndroid Build Coastguard Worker case equal_highp_uvec4_lowp_uvec4 3879*35238bceSAndroid Build Coastguard Worker version 300 es 3880*35238bceSAndroid Build Coastguard Worker values 3881*35238bceSAndroid Build Coastguard Worker { 3882*35238bceSAndroid Build Coastguard Worker output bool success = true; 3883*35238bceSAndroid Build Coastguard Worker } 3884*35238bceSAndroid Build Coastguard Worker 3885*35238bceSAndroid Build Coastguard Worker both "" 3886*35238bceSAndroid Build Coastguard Worker #version 300 es 3887*35238bceSAndroid Build Coastguard Worker precision highp float; 3888*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3889*35238bceSAndroid Build Coastguard Worker void main() 3890*35238bceSAndroid Build Coastguard Worker { 3891*35238bceSAndroid Build Coastguard Worker ${SETUP} 3892*35238bceSAndroid Build Coastguard Worker highp uvec4 x[3] = uvec4[3](uvec4(1u, 2u, 3u, 4u), 3893*35238bceSAndroid Build Coastguard Worker uvec4(5u, 6u, 7u, 8u), 3894*35238bceSAndroid Build Coastguard Worker uvec4(9u, 10u, 11u, 12u)); 3895*35238bceSAndroid Build Coastguard Worker lowp uvec4 y[3] = x; 3896*35238bceSAndroid Build Coastguard Worker x = y; 3897*35238bceSAndroid Build Coastguard Worker success = (x == y); 3898*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3899*35238bceSAndroid Build Coastguard Worker } 3900*35238bceSAndroid Build Coastguard Worker "" 3901*35238bceSAndroid Build Coastguard Worker end 3902*35238bceSAndroid Build Coastguard Worker 3903*35238bceSAndroid Build Coastguard Worker case equal_highp_mat2_lowp_mat2 3904*35238bceSAndroid Build Coastguard Worker version 300 es 3905*35238bceSAndroid Build Coastguard Worker values 3906*35238bceSAndroid Build Coastguard Worker { 3907*35238bceSAndroid Build Coastguard Worker output bool success = true; 3908*35238bceSAndroid Build Coastguard Worker } 3909*35238bceSAndroid Build Coastguard Worker 3910*35238bceSAndroid Build Coastguard Worker both "" 3911*35238bceSAndroid Build Coastguard Worker #version 300 es 3912*35238bceSAndroid Build Coastguard Worker precision highp float; 3913*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3914*35238bceSAndroid Build Coastguard Worker void main() 3915*35238bceSAndroid Build Coastguard Worker { 3916*35238bceSAndroid Build Coastguard Worker ${SETUP} 3917*35238bceSAndroid Build Coastguard Worker highp mat2 x[3] = mat2[3](mat2(1.0, 2.0, 3.0, 4.0), 3918*35238bceSAndroid Build Coastguard Worker mat2(5.0, 6.0, 7.0, 8.0), 3919*35238bceSAndroid Build Coastguard Worker mat2(9.0, 10.0, 11.0, 12.0)); 3920*35238bceSAndroid Build Coastguard Worker lowp mat2 y[3] = x; 3921*35238bceSAndroid Build Coastguard Worker x = y; 3922*35238bceSAndroid Build Coastguard Worker success = (x == y); 3923*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3924*35238bceSAndroid Build Coastguard Worker } 3925*35238bceSAndroid Build Coastguard Worker "" 3926*35238bceSAndroid Build Coastguard Worker end 3927*35238bceSAndroid Build Coastguard Worker 3928*35238bceSAndroid Build Coastguard Worker case equal_highp_mat3_lowp_mat3 3929*35238bceSAndroid Build Coastguard Worker version 300 es 3930*35238bceSAndroid Build Coastguard Worker values 3931*35238bceSAndroid Build Coastguard Worker { 3932*35238bceSAndroid Build Coastguard Worker output bool success = true; 3933*35238bceSAndroid Build Coastguard Worker } 3934*35238bceSAndroid Build Coastguard Worker 3935*35238bceSAndroid Build Coastguard Worker both "" 3936*35238bceSAndroid Build Coastguard Worker #version 300 es 3937*35238bceSAndroid Build Coastguard Worker precision highp float; 3938*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3939*35238bceSAndroid Build Coastguard Worker void main() 3940*35238bceSAndroid Build Coastguard Worker { 3941*35238bceSAndroid Build Coastguard Worker ${SETUP} 3942*35238bceSAndroid Build Coastguard Worker highp mat3 x[3] = mat3[3](mat3(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0), 3943*35238bceSAndroid Build Coastguard Worker mat3(10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0), 3944*35238bceSAndroid Build Coastguard Worker mat3(19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0)); 3945*35238bceSAndroid Build Coastguard Worker lowp mat3 y[3] = x; 3946*35238bceSAndroid Build Coastguard Worker x = y; 3947*35238bceSAndroid Build Coastguard Worker success = (x == y); 3948*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3949*35238bceSAndroid Build Coastguard Worker } 3950*35238bceSAndroid Build Coastguard Worker "" 3951*35238bceSAndroid Build Coastguard Worker end 3952*35238bceSAndroid Build Coastguard Worker 3953*35238bceSAndroid Build Coastguard Worker case equal_highp_mat4_lowp_mat4 3954*35238bceSAndroid Build Coastguard Worker version 300 es 3955*35238bceSAndroid Build Coastguard Worker values 3956*35238bceSAndroid Build Coastguard Worker { 3957*35238bceSAndroid Build Coastguard Worker output bool success = true; 3958*35238bceSAndroid Build Coastguard Worker } 3959*35238bceSAndroid Build Coastguard Worker 3960*35238bceSAndroid Build Coastguard Worker both "" 3961*35238bceSAndroid Build Coastguard Worker #version 300 es 3962*35238bceSAndroid Build Coastguard Worker precision highp float; 3963*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3964*35238bceSAndroid Build Coastguard Worker void main() 3965*35238bceSAndroid Build Coastguard Worker { 3966*35238bceSAndroid Build Coastguard Worker ${SETUP} 3967*35238bceSAndroid Build Coastguard Worker highp mat4 x[3] = mat4[3](mat4(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0), 3968*35238bceSAndroid Build Coastguard Worker mat4(17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0), 3969*35238bceSAndroid Build Coastguard Worker mat4(33.0, 34.0, 35.0, 36.0, 37.0, 38.0, 39.0, 40.0, 41.0, 42.0, 43.0, 44.0, 45.0, 46.0, 47.0, 48.0)); 3970*35238bceSAndroid Build Coastguard Worker lowp mat4 y[3] = x; 3971*35238bceSAndroid Build Coastguard Worker x = y; 3972*35238bceSAndroid Build Coastguard Worker success = (x == y); 3973*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3974*35238bceSAndroid Build Coastguard Worker } 3975*35238bceSAndroid Build Coastguard Worker "" 3976*35238bceSAndroid Build Coastguard Worker end 3977*35238bceSAndroid Build Coastguard Worker 3978*35238bceSAndroid Build Coastguard Worker case equal_highp_int_highp_int 3979*35238bceSAndroid Build Coastguard Worker version 300 es 3980*35238bceSAndroid Build Coastguard Worker values 3981*35238bceSAndroid Build Coastguard Worker { 3982*35238bceSAndroid Build Coastguard Worker output bool success = true; 3983*35238bceSAndroid Build Coastguard Worker } 3984*35238bceSAndroid Build Coastguard Worker 3985*35238bceSAndroid Build Coastguard Worker both "" 3986*35238bceSAndroid Build Coastguard Worker #version 300 es 3987*35238bceSAndroid Build Coastguard Worker precision highp float; 3988*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3989*35238bceSAndroid Build Coastguard Worker void main() 3990*35238bceSAndroid Build Coastguard Worker { 3991*35238bceSAndroid Build Coastguard Worker ${SETUP} 3992*35238bceSAndroid Build Coastguard Worker highp int x[3] = int[3](1, 2, 3); 3993*35238bceSAndroid Build Coastguard Worker highp int y[3] = x; 3994*35238bceSAndroid Build Coastguard Worker x = y; 3995*35238bceSAndroid Build Coastguard Worker success = (x == y); 3996*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3997*35238bceSAndroid Build Coastguard Worker } 3998*35238bceSAndroid Build Coastguard Worker "" 3999*35238bceSAndroid Build Coastguard Worker end 4000*35238bceSAndroid Build Coastguard Worker 4001*35238bceSAndroid Build Coastguard Worker case equal_highp_uint_highp_uint 4002*35238bceSAndroid Build Coastguard Worker version 300 es 4003*35238bceSAndroid Build Coastguard Worker values 4004*35238bceSAndroid Build Coastguard Worker { 4005*35238bceSAndroid Build Coastguard Worker output bool success = true; 4006*35238bceSAndroid Build Coastguard Worker } 4007*35238bceSAndroid Build Coastguard Worker 4008*35238bceSAndroid Build Coastguard Worker both "" 4009*35238bceSAndroid Build Coastguard Worker #version 300 es 4010*35238bceSAndroid Build Coastguard Worker precision highp float; 4011*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4012*35238bceSAndroid Build Coastguard Worker void main() 4013*35238bceSAndroid Build Coastguard Worker { 4014*35238bceSAndroid Build Coastguard Worker ${SETUP} 4015*35238bceSAndroid Build Coastguard Worker highp uint x[3] = uint[3](1u, 2u, 3u); 4016*35238bceSAndroid Build Coastguard Worker highp uint y[3] = x; 4017*35238bceSAndroid Build Coastguard Worker x = y; 4018*35238bceSAndroid Build Coastguard Worker success = (x == y); 4019*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4020*35238bceSAndroid Build Coastguard Worker } 4021*35238bceSAndroid Build Coastguard Worker "" 4022*35238bceSAndroid Build Coastguard Worker end 4023*35238bceSAndroid Build Coastguard Worker 4024*35238bceSAndroid Build Coastguard Worker case equal_highp_float_highp_float 4025*35238bceSAndroid Build Coastguard Worker version 300 es 4026*35238bceSAndroid Build Coastguard Worker values 4027*35238bceSAndroid Build Coastguard Worker { 4028*35238bceSAndroid Build Coastguard Worker output bool success = true; 4029*35238bceSAndroid Build Coastguard Worker } 4030*35238bceSAndroid Build Coastguard Worker 4031*35238bceSAndroid Build Coastguard Worker both "" 4032*35238bceSAndroid Build Coastguard Worker #version 300 es 4033*35238bceSAndroid Build Coastguard Worker precision highp float; 4034*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4035*35238bceSAndroid Build Coastguard Worker void main() 4036*35238bceSAndroid Build Coastguard Worker { 4037*35238bceSAndroid Build Coastguard Worker ${SETUP} 4038*35238bceSAndroid Build Coastguard Worker highp float x[3] = float[3](1.0, 2.0, 3.0); 4039*35238bceSAndroid Build Coastguard Worker highp float y[3] = x; 4040*35238bceSAndroid Build Coastguard Worker x = y; 4041*35238bceSAndroid Build Coastguard Worker success = (x == y); 4042*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4043*35238bceSAndroid Build Coastguard Worker } 4044*35238bceSAndroid Build Coastguard Worker "" 4045*35238bceSAndroid Build Coastguard Worker end 4046*35238bceSAndroid Build Coastguard Worker 4047*35238bceSAndroid Build Coastguard Worker case equal_highp_vec2_highp_vec2 4048*35238bceSAndroid Build Coastguard Worker version 300 es 4049*35238bceSAndroid Build Coastguard Worker values 4050*35238bceSAndroid Build Coastguard Worker { 4051*35238bceSAndroid Build Coastguard Worker output bool success = true; 4052*35238bceSAndroid Build Coastguard Worker } 4053*35238bceSAndroid Build Coastguard Worker 4054*35238bceSAndroid Build Coastguard Worker both "" 4055*35238bceSAndroid Build Coastguard Worker #version 300 es 4056*35238bceSAndroid Build Coastguard Worker precision highp float; 4057*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4058*35238bceSAndroid Build Coastguard Worker void main() 4059*35238bceSAndroid Build Coastguard Worker { 4060*35238bceSAndroid Build Coastguard Worker ${SETUP} 4061*35238bceSAndroid Build Coastguard Worker highp vec2 x[3] = vec2[3](vec2(1.0, 2.0), 4062*35238bceSAndroid Build Coastguard Worker vec2(3.0, 4.0), 4063*35238bceSAndroid Build Coastguard Worker vec2(5.0, 6.0)); 4064*35238bceSAndroid Build Coastguard Worker highp vec2 y[3] = x; 4065*35238bceSAndroid Build Coastguard Worker x = y; 4066*35238bceSAndroid Build Coastguard Worker success = (x == y); 4067*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4068*35238bceSAndroid Build Coastguard Worker } 4069*35238bceSAndroid Build Coastguard Worker "" 4070*35238bceSAndroid Build Coastguard Worker end 4071*35238bceSAndroid Build Coastguard Worker 4072*35238bceSAndroid Build Coastguard Worker case equal_highp_vec3_highp_vec3 4073*35238bceSAndroid Build Coastguard Worker version 300 es 4074*35238bceSAndroid Build Coastguard Worker values 4075*35238bceSAndroid Build Coastguard Worker { 4076*35238bceSAndroid Build Coastguard Worker output bool success = true; 4077*35238bceSAndroid Build Coastguard Worker } 4078*35238bceSAndroid Build Coastguard Worker 4079*35238bceSAndroid Build Coastguard Worker both "" 4080*35238bceSAndroid Build Coastguard Worker #version 300 es 4081*35238bceSAndroid Build Coastguard Worker precision highp float; 4082*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4083*35238bceSAndroid Build Coastguard Worker void main() 4084*35238bceSAndroid Build Coastguard Worker { 4085*35238bceSAndroid Build Coastguard Worker ${SETUP} 4086*35238bceSAndroid Build Coastguard Worker highp vec3 x[3] = vec3[3](vec3(1.0, 2.0, 3.0), 4087*35238bceSAndroid Build Coastguard Worker vec3(4.0, 5.0, 6.0), 4088*35238bceSAndroid Build Coastguard Worker vec3(7.0, 8.0, 9.0)); 4089*35238bceSAndroid Build Coastguard Worker highp vec3 y[3] = x; 4090*35238bceSAndroid Build Coastguard Worker x = y; 4091*35238bceSAndroid Build Coastguard Worker success = (x == y); 4092*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4093*35238bceSAndroid Build Coastguard Worker } 4094*35238bceSAndroid Build Coastguard Worker "" 4095*35238bceSAndroid Build Coastguard Worker end 4096*35238bceSAndroid Build Coastguard Worker 4097*35238bceSAndroid Build Coastguard Worker case equal_highp_vec4_highp_vec4 4098*35238bceSAndroid Build Coastguard Worker version 300 es 4099*35238bceSAndroid Build Coastguard Worker values 4100*35238bceSAndroid Build Coastguard Worker { 4101*35238bceSAndroid Build Coastguard Worker output bool success = true; 4102*35238bceSAndroid Build Coastguard Worker } 4103*35238bceSAndroid Build Coastguard Worker 4104*35238bceSAndroid Build Coastguard Worker both "" 4105*35238bceSAndroid Build Coastguard Worker #version 300 es 4106*35238bceSAndroid Build Coastguard Worker precision highp float; 4107*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4108*35238bceSAndroid Build Coastguard Worker void main() 4109*35238bceSAndroid Build Coastguard Worker { 4110*35238bceSAndroid Build Coastguard Worker ${SETUP} 4111*35238bceSAndroid Build Coastguard Worker highp vec4 x[3] = vec4[3](vec4(1.0, 2.0, 3.0, 4.0), 4112*35238bceSAndroid Build Coastguard Worker vec4(5.0, 6.0, 7.0, 8.0), 4113*35238bceSAndroid Build Coastguard Worker vec4(9.0, 10.0, 11.0, 12.0)); 4114*35238bceSAndroid Build Coastguard Worker highp vec4 y[3] = x; 4115*35238bceSAndroid Build Coastguard Worker x = y; 4116*35238bceSAndroid Build Coastguard Worker success = (x == y); 4117*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4118*35238bceSAndroid Build Coastguard Worker } 4119*35238bceSAndroid Build Coastguard Worker "" 4120*35238bceSAndroid Build Coastguard Worker end 4121*35238bceSAndroid Build Coastguard Worker 4122*35238bceSAndroid Build Coastguard Worker case equal_highp_ivec2_highp_ivec2 4123*35238bceSAndroid Build Coastguard Worker version 300 es 4124*35238bceSAndroid Build Coastguard Worker values 4125*35238bceSAndroid Build Coastguard Worker { 4126*35238bceSAndroid Build Coastguard Worker output bool success = true; 4127*35238bceSAndroid Build Coastguard Worker } 4128*35238bceSAndroid Build Coastguard Worker 4129*35238bceSAndroid Build Coastguard Worker both "" 4130*35238bceSAndroid Build Coastguard Worker #version 300 es 4131*35238bceSAndroid Build Coastguard Worker precision highp float; 4132*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4133*35238bceSAndroid Build Coastguard Worker void main() 4134*35238bceSAndroid Build Coastguard Worker { 4135*35238bceSAndroid Build Coastguard Worker ${SETUP} 4136*35238bceSAndroid Build Coastguard Worker highp ivec2 x[3] = ivec2[3](ivec2(1, 2), 4137*35238bceSAndroid Build Coastguard Worker ivec2(3, 4), 4138*35238bceSAndroid Build Coastguard Worker ivec2(5, 6)); 4139*35238bceSAndroid Build Coastguard Worker highp ivec2 y[3] = x; 4140*35238bceSAndroid Build Coastguard Worker x = y; 4141*35238bceSAndroid Build Coastguard Worker success = (x == y); 4142*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4143*35238bceSAndroid Build Coastguard Worker } 4144*35238bceSAndroid Build Coastguard Worker "" 4145*35238bceSAndroid Build Coastguard Worker end 4146*35238bceSAndroid Build Coastguard Worker 4147*35238bceSAndroid Build Coastguard Worker case equal_highp_ivec3_highp_ivec3 4148*35238bceSAndroid Build Coastguard Worker version 300 es 4149*35238bceSAndroid Build Coastguard Worker values 4150*35238bceSAndroid Build Coastguard Worker { 4151*35238bceSAndroid Build Coastguard Worker output bool success = true; 4152*35238bceSAndroid Build Coastguard Worker } 4153*35238bceSAndroid Build Coastguard Worker 4154*35238bceSAndroid Build Coastguard Worker both "" 4155*35238bceSAndroid Build Coastguard Worker #version 300 es 4156*35238bceSAndroid Build Coastguard Worker precision highp float; 4157*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4158*35238bceSAndroid Build Coastguard Worker void main() 4159*35238bceSAndroid Build Coastguard Worker { 4160*35238bceSAndroid Build Coastguard Worker ${SETUP} 4161*35238bceSAndroid Build Coastguard Worker highp ivec3 x[3] = ivec3[3](ivec3(1, 2, 3), 4162*35238bceSAndroid Build Coastguard Worker ivec3(4, 5, 6), 4163*35238bceSAndroid Build Coastguard Worker ivec3(7, 8, 9)); 4164*35238bceSAndroid Build Coastguard Worker highp ivec3 y[3] = x; 4165*35238bceSAndroid Build Coastguard Worker x = y; 4166*35238bceSAndroid Build Coastguard Worker success = (x == y); 4167*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4168*35238bceSAndroid Build Coastguard Worker } 4169*35238bceSAndroid Build Coastguard Worker "" 4170*35238bceSAndroid Build Coastguard Worker end 4171*35238bceSAndroid Build Coastguard Worker 4172*35238bceSAndroid Build Coastguard Worker case equal_highp_ivec4_highp_ivec4 4173*35238bceSAndroid Build Coastguard Worker version 300 es 4174*35238bceSAndroid Build Coastguard Worker values 4175*35238bceSAndroid Build Coastguard Worker { 4176*35238bceSAndroid Build Coastguard Worker output bool success = true; 4177*35238bceSAndroid Build Coastguard Worker } 4178*35238bceSAndroid Build Coastguard Worker 4179*35238bceSAndroid Build Coastguard Worker both "" 4180*35238bceSAndroid Build Coastguard Worker #version 300 es 4181*35238bceSAndroid Build Coastguard Worker precision highp float; 4182*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4183*35238bceSAndroid Build Coastguard Worker void main() 4184*35238bceSAndroid Build Coastguard Worker { 4185*35238bceSAndroid Build Coastguard Worker ${SETUP} 4186*35238bceSAndroid Build Coastguard Worker highp ivec4 x[3] = ivec4[3](ivec4(1, 2, 3, 4), 4187*35238bceSAndroid Build Coastguard Worker ivec4(5, 6, 7, 8), 4188*35238bceSAndroid Build Coastguard Worker ivec4(9, 10, 11, 12)); 4189*35238bceSAndroid Build Coastguard Worker highp ivec4 y[3] = x; 4190*35238bceSAndroid Build Coastguard Worker x = y; 4191*35238bceSAndroid Build Coastguard Worker success = (x == y); 4192*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4193*35238bceSAndroid Build Coastguard Worker } 4194*35238bceSAndroid Build Coastguard Worker "" 4195*35238bceSAndroid Build Coastguard Worker end 4196*35238bceSAndroid Build Coastguard Worker 4197*35238bceSAndroid Build Coastguard Worker case equal_highp_uvec2_highp_uvec2 4198*35238bceSAndroid Build Coastguard Worker version 300 es 4199*35238bceSAndroid Build Coastguard Worker values 4200*35238bceSAndroid Build Coastguard Worker { 4201*35238bceSAndroid Build Coastguard Worker output bool success = true; 4202*35238bceSAndroid Build Coastguard Worker } 4203*35238bceSAndroid Build Coastguard Worker 4204*35238bceSAndroid Build Coastguard Worker both "" 4205*35238bceSAndroid Build Coastguard Worker #version 300 es 4206*35238bceSAndroid Build Coastguard Worker precision highp float; 4207*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4208*35238bceSAndroid Build Coastguard Worker void main() 4209*35238bceSAndroid Build Coastguard Worker { 4210*35238bceSAndroid Build Coastguard Worker ${SETUP} 4211*35238bceSAndroid Build Coastguard Worker highp uvec2 x[3] = uvec2[3](uvec2(1u, 2u), 4212*35238bceSAndroid Build Coastguard Worker uvec2(3u, 4u), 4213*35238bceSAndroid Build Coastguard Worker uvec2(5u, 6u)); 4214*35238bceSAndroid Build Coastguard Worker highp uvec2 y[3] = x; 4215*35238bceSAndroid Build Coastguard Worker x = y; 4216*35238bceSAndroid Build Coastguard Worker success = (x == y); 4217*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4218*35238bceSAndroid Build Coastguard Worker } 4219*35238bceSAndroid Build Coastguard Worker "" 4220*35238bceSAndroid Build Coastguard Worker end 4221*35238bceSAndroid Build Coastguard Worker 4222*35238bceSAndroid Build Coastguard Worker case equal_highp_uvec3_highp_uvec3 4223*35238bceSAndroid Build Coastguard Worker version 300 es 4224*35238bceSAndroid Build Coastguard Worker values 4225*35238bceSAndroid Build Coastguard Worker { 4226*35238bceSAndroid Build Coastguard Worker output bool success = true; 4227*35238bceSAndroid Build Coastguard Worker } 4228*35238bceSAndroid Build Coastguard Worker 4229*35238bceSAndroid Build Coastguard Worker both "" 4230*35238bceSAndroid Build Coastguard Worker #version 300 es 4231*35238bceSAndroid Build Coastguard Worker precision highp float; 4232*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4233*35238bceSAndroid Build Coastguard Worker void main() 4234*35238bceSAndroid Build Coastguard Worker { 4235*35238bceSAndroid Build Coastguard Worker ${SETUP} 4236*35238bceSAndroid Build Coastguard Worker highp uvec3 x[3] = uvec3[3](uvec3(1u, 2u, 3u), 4237*35238bceSAndroid Build Coastguard Worker uvec3(4u, 5u, 6u), 4238*35238bceSAndroid Build Coastguard Worker uvec3(7u, 8u, 9u)); 4239*35238bceSAndroid Build Coastguard Worker highp uvec3 y[3] = x; 4240*35238bceSAndroid Build Coastguard Worker x = y; 4241*35238bceSAndroid Build Coastguard Worker success = (x == y); 4242*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4243*35238bceSAndroid Build Coastguard Worker } 4244*35238bceSAndroid Build Coastguard Worker "" 4245*35238bceSAndroid Build Coastguard Worker end 4246*35238bceSAndroid Build Coastguard Worker 4247*35238bceSAndroid Build Coastguard Worker case equal_highp_uvec4_highp_uvec4 4248*35238bceSAndroid Build Coastguard Worker version 300 es 4249*35238bceSAndroid Build Coastguard Worker values 4250*35238bceSAndroid Build Coastguard Worker { 4251*35238bceSAndroid Build Coastguard Worker output bool success = true; 4252*35238bceSAndroid Build Coastguard Worker } 4253*35238bceSAndroid Build Coastguard Worker 4254*35238bceSAndroid Build Coastguard Worker both "" 4255*35238bceSAndroid Build Coastguard Worker #version 300 es 4256*35238bceSAndroid Build Coastguard Worker precision highp float; 4257*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4258*35238bceSAndroid Build Coastguard Worker void main() 4259*35238bceSAndroid Build Coastguard Worker { 4260*35238bceSAndroid Build Coastguard Worker ${SETUP} 4261*35238bceSAndroid Build Coastguard Worker highp uvec4 x[3] = uvec4[3](uvec4(1u, 2u, 3u, 4u), 4262*35238bceSAndroid Build Coastguard Worker uvec4(5u, 6u, 7u, 8u), 4263*35238bceSAndroid Build Coastguard Worker uvec4(9u, 10u, 11u, 12u)); 4264*35238bceSAndroid Build Coastguard Worker highp uvec4 y[3] = x; 4265*35238bceSAndroid Build Coastguard Worker x = y; 4266*35238bceSAndroid Build Coastguard Worker success = (x == y); 4267*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4268*35238bceSAndroid Build Coastguard Worker } 4269*35238bceSAndroid Build Coastguard Worker "" 4270*35238bceSAndroid Build Coastguard Worker end 4271*35238bceSAndroid Build Coastguard Worker 4272*35238bceSAndroid Build Coastguard Worker case equal_highp_mat2_highp_mat2 4273*35238bceSAndroid Build Coastguard Worker version 300 es 4274*35238bceSAndroid Build Coastguard Worker values 4275*35238bceSAndroid Build Coastguard Worker { 4276*35238bceSAndroid Build Coastguard Worker output bool success = true; 4277*35238bceSAndroid Build Coastguard Worker } 4278*35238bceSAndroid Build Coastguard Worker 4279*35238bceSAndroid Build Coastguard Worker both "" 4280*35238bceSAndroid Build Coastguard Worker #version 300 es 4281*35238bceSAndroid Build Coastguard Worker precision highp float; 4282*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4283*35238bceSAndroid Build Coastguard Worker void main() 4284*35238bceSAndroid Build Coastguard Worker { 4285*35238bceSAndroid Build Coastguard Worker ${SETUP} 4286*35238bceSAndroid Build Coastguard Worker highp mat2 x[3] = mat2[3](mat2(1.0, 2.0, 3.0, 4.0), 4287*35238bceSAndroid Build Coastguard Worker mat2(5.0, 6.0, 7.0, 8.0), 4288*35238bceSAndroid Build Coastguard Worker mat2(9.0, 10.0, 11.0, 12.0)); 4289*35238bceSAndroid Build Coastguard Worker highp mat2 y[3] = x; 4290*35238bceSAndroid Build Coastguard Worker x = y; 4291*35238bceSAndroid Build Coastguard Worker success = (x == y); 4292*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4293*35238bceSAndroid Build Coastguard Worker } 4294*35238bceSAndroid Build Coastguard Worker "" 4295*35238bceSAndroid Build Coastguard Worker end 4296*35238bceSAndroid Build Coastguard Worker 4297*35238bceSAndroid Build Coastguard Worker case equal_highp_mat3_highp_mat3 4298*35238bceSAndroid Build Coastguard Worker version 300 es 4299*35238bceSAndroid Build Coastguard Worker values 4300*35238bceSAndroid Build Coastguard Worker { 4301*35238bceSAndroid Build Coastguard Worker output bool success = true; 4302*35238bceSAndroid Build Coastguard Worker } 4303*35238bceSAndroid Build Coastguard Worker 4304*35238bceSAndroid Build Coastguard Worker both "" 4305*35238bceSAndroid Build Coastguard Worker #version 300 es 4306*35238bceSAndroid Build Coastguard Worker precision highp float; 4307*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4308*35238bceSAndroid Build Coastguard Worker void main() 4309*35238bceSAndroid Build Coastguard Worker { 4310*35238bceSAndroid Build Coastguard Worker ${SETUP} 4311*35238bceSAndroid Build Coastguard Worker highp mat3 x[3] = mat3[3](mat3(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0), 4312*35238bceSAndroid Build Coastguard Worker mat3(10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0), 4313*35238bceSAndroid Build Coastguard Worker mat3(19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0)); 4314*35238bceSAndroid Build Coastguard Worker highp mat3 y[3] = x; 4315*35238bceSAndroid Build Coastguard Worker x = y; 4316*35238bceSAndroid Build Coastguard Worker success = (x == y); 4317*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4318*35238bceSAndroid Build Coastguard Worker } 4319*35238bceSAndroid Build Coastguard Worker "" 4320*35238bceSAndroid Build Coastguard Worker end 4321*35238bceSAndroid Build Coastguard Worker 4322*35238bceSAndroid Build Coastguard Worker case equal_highp_mat4_highp_mat4 4323*35238bceSAndroid Build Coastguard Worker version 300 es 4324*35238bceSAndroid Build Coastguard Worker values 4325*35238bceSAndroid Build Coastguard Worker { 4326*35238bceSAndroid Build Coastguard Worker output bool success = true; 4327*35238bceSAndroid Build Coastguard Worker } 4328*35238bceSAndroid Build Coastguard Worker 4329*35238bceSAndroid Build Coastguard Worker both "" 4330*35238bceSAndroid Build Coastguard Worker #version 300 es 4331*35238bceSAndroid Build Coastguard Worker precision highp float; 4332*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4333*35238bceSAndroid Build Coastguard Worker void main() 4334*35238bceSAndroid Build Coastguard Worker { 4335*35238bceSAndroid Build Coastguard Worker ${SETUP} 4336*35238bceSAndroid Build Coastguard Worker highp mat4 x[3] = mat4[3](mat4(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0), 4337*35238bceSAndroid Build Coastguard Worker mat4(17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0), 4338*35238bceSAndroid Build Coastguard Worker mat4(33.0, 34.0, 35.0, 36.0, 37.0, 38.0, 39.0, 40.0, 41.0, 42.0, 43.0, 44.0, 45.0, 46.0, 47.0, 48.0)); 4339*35238bceSAndroid Build Coastguard Worker highp mat4 y[3] = x; 4340*35238bceSAndroid Build Coastguard Worker x = y; 4341*35238bceSAndroid Build Coastguard Worker success = (x == y); 4342*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4343*35238bceSAndroid Build Coastguard Worker } 4344*35238bceSAndroid Build Coastguard Worker "" 4345*35238bceSAndroid Build Coastguard Worker end 4346*35238bceSAndroid Build Coastguard Worker 4347*35238bceSAndroid Build Coastguard Workerend # compare 4348