1e5c31af7Sopenharmony_ci# WARNING: This file is auto-generated. Do NOT modify it manually, but rather 2e5c31af7Sopenharmony_ci# modify the generating script file. Otherwise changes will be lost! 3e5c31af7Sopenharmony_ci 4e5c31af7Sopenharmony_cigroup variables "Order of qualification in variable declarations." 5e5c31af7Sopenharmony_ci 6e5c31af7Sopenharmony_ci group valid "Valid orderings." 7e5c31af7Sopenharmony_ci 8e5c31af7Sopenharmony_ci case invariant_interp_storage_precision 9e5c31af7Sopenharmony_ci expect pass 10e5c31af7Sopenharmony_ci values {} 11e5c31af7Sopenharmony_ci 12e5c31af7Sopenharmony_ci vertex "" 13e5c31af7Sopenharmony_ci #version 300 es 14e5c31af7Sopenharmony_ci precision mediump float; 15e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 16e5c31af7Sopenharmony_ci 17e5c31af7Sopenharmony_ci invariant smooth centroid out lowp float x0; 18e5c31af7Sopenharmony_ci 19e5c31af7Sopenharmony_ci flat out mediump float x1; 20e5c31af7Sopenharmony_ci 21e5c31af7Sopenharmony_ci uniform highp float x2; 22e5c31af7Sopenharmony_ci 23e5c31af7Sopenharmony_ci void main() 24e5c31af7Sopenharmony_ci { 25e5c31af7Sopenharmony_ci x0 = 1.0; 26e5c31af7Sopenharmony_ci x1 = 2.0; 27e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 28e5c31af7Sopenharmony_ci } 29e5c31af7Sopenharmony_ci "" 30e5c31af7Sopenharmony_ci 31e5c31af7Sopenharmony_ci fragment "" 32e5c31af7Sopenharmony_ci #version 300 es 33e5c31af7Sopenharmony_ci precision mediump float; 34e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 35e5c31af7Sopenharmony_ci 36e5c31af7Sopenharmony_ci smooth centroid in lowp float x0; 37e5c31af7Sopenharmony_ci 38e5c31af7Sopenharmony_ci flat in mediump float x1; 39e5c31af7Sopenharmony_ci 40e5c31af7Sopenharmony_ci uniform highp float x2; 41e5c31af7Sopenharmony_ci 42e5c31af7Sopenharmony_ci void main() 43e5c31af7Sopenharmony_ci { 44e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 45e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 46e5c31af7Sopenharmony_ci } 47e5c31af7Sopenharmony_ci "" 48e5c31af7Sopenharmony_ci end 49e5c31af7Sopenharmony_ci case interp_storage_precision 50e5c31af7Sopenharmony_ci expect pass 51e5c31af7Sopenharmony_ci values {} 52e5c31af7Sopenharmony_ci 53e5c31af7Sopenharmony_ci vertex "" 54e5c31af7Sopenharmony_ci #version 300 es 55e5c31af7Sopenharmony_ci precision mediump float; 56e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 57e5c31af7Sopenharmony_ci 58e5c31af7Sopenharmony_ci smooth centroid out lowp float x0; 59e5c31af7Sopenharmony_ci 60e5c31af7Sopenharmony_ci flat out mediump float x1; 61e5c31af7Sopenharmony_ci 62e5c31af7Sopenharmony_ci uniform highp float x2; 63e5c31af7Sopenharmony_ci 64e5c31af7Sopenharmony_ci void main() 65e5c31af7Sopenharmony_ci { 66e5c31af7Sopenharmony_ci x0 = 1.0; 67e5c31af7Sopenharmony_ci x1 = 2.0; 68e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 69e5c31af7Sopenharmony_ci } 70e5c31af7Sopenharmony_ci "" 71e5c31af7Sopenharmony_ci 72e5c31af7Sopenharmony_ci fragment "" 73e5c31af7Sopenharmony_ci #version 300 es 74e5c31af7Sopenharmony_ci precision mediump float; 75e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 76e5c31af7Sopenharmony_ci 77e5c31af7Sopenharmony_ci smooth centroid in lowp float x0; 78e5c31af7Sopenharmony_ci 79e5c31af7Sopenharmony_ci flat in mediump float x1; 80e5c31af7Sopenharmony_ci 81e5c31af7Sopenharmony_ci uniform highp float x2; 82e5c31af7Sopenharmony_ci 83e5c31af7Sopenharmony_ci void main() 84e5c31af7Sopenharmony_ci { 85e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 86e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 87e5c31af7Sopenharmony_ci } 88e5c31af7Sopenharmony_ci "" 89e5c31af7Sopenharmony_ci end 90e5c31af7Sopenharmony_ci case invariant_interp_storage 91e5c31af7Sopenharmony_ci expect pass 92e5c31af7Sopenharmony_ci values {} 93e5c31af7Sopenharmony_ci 94e5c31af7Sopenharmony_ci vertex "" 95e5c31af7Sopenharmony_ci #version 300 es 96e5c31af7Sopenharmony_ci precision mediump float; 97e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 98e5c31af7Sopenharmony_ci 99e5c31af7Sopenharmony_ci invariant smooth centroid out float x0; 100e5c31af7Sopenharmony_ci 101e5c31af7Sopenharmony_ci flat out float x1; 102e5c31af7Sopenharmony_ci 103e5c31af7Sopenharmony_ci uniform float x2; 104e5c31af7Sopenharmony_ci 105e5c31af7Sopenharmony_ci void main() 106e5c31af7Sopenharmony_ci { 107e5c31af7Sopenharmony_ci x0 = 1.0; 108e5c31af7Sopenharmony_ci x1 = 2.0; 109e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 110e5c31af7Sopenharmony_ci } 111e5c31af7Sopenharmony_ci "" 112e5c31af7Sopenharmony_ci 113e5c31af7Sopenharmony_ci fragment "" 114e5c31af7Sopenharmony_ci #version 300 es 115e5c31af7Sopenharmony_ci precision mediump float; 116e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 117e5c31af7Sopenharmony_ci 118e5c31af7Sopenharmony_ci smooth centroid in float x0; 119e5c31af7Sopenharmony_ci 120e5c31af7Sopenharmony_ci flat in float x1; 121e5c31af7Sopenharmony_ci 122e5c31af7Sopenharmony_ci uniform float x2; 123e5c31af7Sopenharmony_ci 124e5c31af7Sopenharmony_ci void main() 125e5c31af7Sopenharmony_ci { 126e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 127e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 128e5c31af7Sopenharmony_ci } 129e5c31af7Sopenharmony_ci "" 130e5c31af7Sopenharmony_ci end 131e5c31af7Sopenharmony_ci case invariant_storage_precision 132e5c31af7Sopenharmony_ci expect pass 133e5c31af7Sopenharmony_ci values {} 134e5c31af7Sopenharmony_ci 135e5c31af7Sopenharmony_ci vertex "" 136e5c31af7Sopenharmony_ci #version 300 es 137e5c31af7Sopenharmony_ci precision mediump float; 138e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 139e5c31af7Sopenharmony_ci 140e5c31af7Sopenharmony_ci invariant centroid out lowp float x0; 141e5c31af7Sopenharmony_ci 142e5c31af7Sopenharmony_ci out mediump float x1; 143e5c31af7Sopenharmony_ci 144e5c31af7Sopenharmony_ci uniform highp float x2; 145e5c31af7Sopenharmony_ci 146e5c31af7Sopenharmony_ci void main() 147e5c31af7Sopenharmony_ci { 148e5c31af7Sopenharmony_ci x0 = 1.0; 149e5c31af7Sopenharmony_ci x1 = 2.0; 150e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 151e5c31af7Sopenharmony_ci } 152e5c31af7Sopenharmony_ci "" 153e5c31af7Sopenharmony_ci 154e5c31af7Sopenharmony_ci fragment "" 155e5c31af7Sopenharmony_ci #version 300 es 156e5c31af7Sopenharmony_ci precision mediump float; 157e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 158e5c31af7Sopenharmony_ci 159e5c31af7Sopenharmony_ci centroid in lowp float x0; 160e5c31af7Sopenharmony_ci 161e5c31af7Sopenharmony_ci in mediump float x1; 162e5c31af7Sopenharmony_ci 163e5c31af7Sopenharmony_ci uniform highp float x2; 164e5c31af7Sopenharmony_ci 165e5c31af7Sopenharmony_ci void main() 166e5c31af7Sopenharmony_ci { 167e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 168e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 169e5c31af7Sopenharmony_ci } 170e5c31af7Sopenharmony_ci "" 171e5c31af7Sopenharmony_ci end 172e5c31af7Sopenharmony_ci case storage_precision 173e5c31af7Sopenharmony_ci expect pass 174e5c31af7Sopenharmony_ci values {} 175e5c31af7Sopenharmony_ci 176e5c31af7Sopenharmony_ci vertex "" 177e5c31af7Sopenharmony_ci #version 300 es 178e5c31af7Sopenharmony_ci precision mediump float; 179e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 180e5c31af7Sopenharmony_ci 181e5c31af7Sopenharmony_ci centroid out lowp float x0; 182e5c31af7Sopenharmony_ci 183e5c31af7Sopenharmony_ci out mediump float x1; 184e5c31af7Sopenharmony_ci 185e5c31af7Sopenharmony_ci uniform highp float x2; 186e5c31af7Sopenharmony_ci 187e5c31af7Sopenharmony_ci void main() 188e5c31af7Sopenharmony_ci { 189e5c31af7Sopenharmony_ci x0 = 1.0; 190e5c31af7Sopenharmony_ci x1 = 2.0; 191e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 192e5c31af7Sopenharmony_ci } 193e5c31af7Sopenharmony_ci "" 194e5c31af7Sopenharmony_ci 195e5c31af7Sopenharmony_ci fragment "" 196e5c31af7Sopenharmony_ci #version 300 es 197e5c31af7Sopenharmony_ci precision mediump float; 198e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 199e5c31af7Sopenharmony_ci 200e5c31af7Sopenharmony_ci centroid in lowp float x0; 201e5c31af7Sopenharmony_ci 202e5c31af7Sopenharmony_ci in mediump float x1; 203e5c31af7Sopenharmony_ci 204e5c31af7Sopenharmony_ci uniform highp float x2; 205e5c31af7Sopenharmony_ci 206e5c31af7Sopenharmony_ci void main() 207e5c31af7Sopenharmony_ci { 208e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 209e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 210e5c31af7Sopenharmony_ci } 211e5c31af7Sopenharmony_ci "" 212e5c31af7Sopenharmony_ci end 213e5c31af7Sopenharmony_ci case interp_storage 214e5c31af7Sopenharmony_ci expect pass 215e5c31af7Sopenharmony_ci values {} 216e5c31af7Sopenharmony_ci 217e5c31af7Sopenharmony_ci vertex "" 218e5c31af7Sopenharmony_ci #version 300 es 219e5c31af7Sopenharmony_ci precision mediump float; 220e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 221e5c31af7Sopenharmony_ci 222e5c31af7Sopenharmony_ci smooth centroid out float x0; 223e5c31af7Sopenharmony_ci 224e5c31af7Sopenharmony_ci flat out float x1; 225e5c31af7Sopenharmony_ci 226e5c31af7Sopenharmony_ci uniform float x2; 227e5c31af7Sopenharmony_ci 228e5c31af7Sopenharmony_ci void main() 229e5c31af7Sopenharmony_ci { 230e5c31af7Sopenharmony_ci x0 = 1.0; 231e5c31af7Sopenharmony_ci x1 = 2.0; 232e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 233e5c31af7Sopenharmony_ci } 234e5c31af7Sopenharmony_ci "" 235e5c31af7Sopenharmony_ci 236e5c31af7Sopenharmony_ci fragment "" 237e5c31af7Sopenharmony_ci #version 300 es 238e5c31af7Sopenharmony_ci precision mediump float; 239e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 240e5c31af7Sopenharmony_ci 241e5c31af7Sopenharmony_ci smooth centroid in float x0; 242e5c31af7Sopenharmony_ci 243e5c31af7Sopenharmony_ci flat in float x1; 244e5c31af7Sopenharmony_ci 245e5c31af7Sopenharmony_ci uniform float x2; 246e5c31af7Sopenharmony_ci 247e5c31af7Sopenharmony_ci void main() 248e5c31af7Sopenharmony_ci { 249e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 250e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 251e5c31af7Sopenharmony_ci } 252e5c31af7Sopenharmony_ci "" 253e5c31af7Sopenharmony_ci end 254e5c31af7Sopenharmony_ci case invariant_storage 255e5c31af7Sopenharmony_ci expect pass 256e5c31af7Sopenharmony_ci values {} 257e5c31af7Sopenharmony_ci 258e5c31af7Sopenharmony_ci vertex "" 259e5c31af7Sopenharmony_ci #version 300 es 260e5c31af7Sopenharmony_ci precision mediump float; 261e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 262e5c31af7Sopenharmony_ci 263e5c31af7Sopenharmony_ci invariant centroid out float x0; 264e5c31af7Sopenharmony_ci 265e5c31af7Sopenharmony_ci out float x1; 266e5c31af7Sopenharmony_ci 267e5c31af7Sopenharmony_ci uniform float x2; 268e5c31af7Sopenharmony_ci 269e5c31af7Sopenharmony_ci void main() 270e5c31af7Sopenharmony_ci { 271e5c31af7Sopenharmony_ci x0 = 1.0; 272e5c31af7Sopenharmony_ci x1 = 2.0; 273e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 274e5c31af7Sopenharmony_ci } 275e5c31af7Sopenharmony_ci "" 276e5c31af7Sopenharmony_ci 277e5c31af7Sopenharmony_ci fragment "" 278e5c31af7Sopenharmony_ci #version 300 es 279e5c31af7Sopenharmony_ci precision mediump float; 280e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 281e5c31af7Sopenharmony_ci 282e5c31af7Sopenharmony_ci centroid in float x0; 283e5c31af7Sopenharmony_ci 284e5c31af7Sopenharmony_ci in float x1; 285e5c31af7Sopenharmony_ci 286e5c31af7Sopenharmony_ci uniform float x2; 287e5c31af7Sopenharmony_ci 288e5c31af7Sopenharmony_ci void main() 289e5c31af7Sopenharmony_ci { 290e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 291e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 292e5c31af7Sopenharmony_ci } 293e5c31af7Sopenharmony_ci "" 294e5c31af7Sopenharmony_ci end 295e5c31af7Sopenharmony_ci 296e5c31af7Sopenharmony_ci end # valid 297e5c31af7Sopenharmony_ci group invalid "Invalid orderings." 298e5c31af7Sopenharmony_ci 299e5c31af7Sopenharmony_ci case invariant_interp_precision_storage 300e5c31af7Sopenharmony_ci expect compile_fail 301e5c31af7Sopenharmony_ci values {} 302e5c31af7Sopenharmony_ci 303e5c31af7Sopenharmony_ci vertex "" 304e5c31af7Sopenharmony_ci #version 300 es 305e5c31af7Sopenharmony_ci precision mediump float; 306e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 307e5c31af7Sopenharmony_ci 308e5c31af7Sopenharmony_ci invariant smooth lowp centroid out float x0; 309e5c31af7Sopenharmony_ci 310e5c31af7Sopenharmony_ci flat mediump out float x1; 311e5c31af7Sopenharmony_ci 312e5c31af7Sopenharmony_ci highp uniform float x2; 313e5c31af7Sopenharmony_ci 314e5c31af7Sopenharmony_ci void main() 315e5c31af7Sopenharmony_ci { 316e5c31af7Sopenharmony_ci x0 = 1.0; 317e5c31af7Sopenharmony_ci x1 = 2.0; 318e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 319e5c31af7Sopenharmony_ci } 320e5c31af7Sopenharmony_ci "" 321e5c31af7Sopenharmony_ci 322e5c31af7Sopenharmony_ci fragment "" 323e5c31af7Sopenharmony_ci #version 300 es 324e5c31af7Sopenharmony_ci precision mediump float; 325e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 326e5c31af7Sopenharmony_ci 327e5c31af7Sopenharmony_ci smooth lowp centroid in float x0; 328e5c31af7Sopenharmony_ci 329e5c31af7Sopenharmony_ci flat mediump in float x1; 330e5c31af7Sopenharmony_ci 331e5c31af7Sopenharmony_ci highp uniform float x2; 332e5c31af7Sopenharmony_ci 333e5c31af7Sopenharmony_ci void main() 334e5c31af7Sopenharmony_ci { 335e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 336e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 337e5c31af7Sopenharmony_ci } 338e5c31af7Sopenharmony_ci "" 339e5c31af7Sopenharmony_ci end 340e5c31af7Sopenharmony_ci case invariant_storage_interp_precision 341e5c31af7Sopenharmony_ci expect compile_fail 342e5c31af7Sopenharmony_ci values {} 343e5c31af7Sopenharmony_ci 344e5c31af7Sopenharmony_ci vertex "" 345e5c31af7Sopenharmony_ci #version 300 es 346e5c31af7Sopenharmony_ci precision mediump float; 347e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 348e5c31af7Sopenharmony_ci 349e5c31af7Sopenharmony_ci invariant centroid out smooth lowp float x0; 350e5c31af7Sopenharmony_ci 351e5c31af7Sopenharmony_ci out flat mediump float x1; 352e5c31af7Sopenharmony_ci 353e5c31af7Sopenharmony_ci uniform highp float x2; 354e5c31af7Sopenharmony_ci 355e5c31af7Sopenharmony_ci void main() 356e5c31af7Sopenharmony_ci { 357e5c31af7Sopenharmony_ci x0 = 1.0; 358e5c31af7Sopenharmony_ci x1 = 2.0; 359e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 360e5c31af7Sopenharmony_ci } 361e5c31af7Sopenharmony_ci "" 362e5c31af7Sopenharmony_ci 363e5c31af7Sopenharmony_ci fragment "" 364e5c31af7Sopenharmony_ci #version 300 es 365e5c31af7Sopenharmony_ci precision mediump float; 366e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 367e5c31af7Sopenharmony_ci 368e5c31af7Sopenharmony_ci centroid in smooth lowp float x0; 369e5c31af7Sopenharmony_ci 370e5c31af7Sopenharmony_ci in flat mediump float x1; 371e5c31af7Sopenharmony_ci 372e5c31af7Sopenharmony_ci uniform highp float x2; 373e5c31af7Sopenharmony_ci 374e5c31af7Sopenharmony_ci void main() 375e5c31af7Sopenharmony_ci { 376e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 377e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 378e5c31af7Sopenharmony_ci } 379e5c31af7Sopenharmony_ci "" 380e5c31af7Sopenharmony_ci end 381e5c31af7Sopenharmony_ci case invariant_storage_precision_interp 382e5c31af7Sopenharmony_ci expect compile_fail 383e5c31af7Sopenharmony_ci values {} 384e5c31af7Sopenharmony_ci 385e5c31af7Sopenharmony_ci vertex "" 386e5c31af7Sopenharmony_ci #version 300 es 387e5c31af7Sopenharmony_ci precision mediump float; 388e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 389e5c31af7Sopenharmony_ci 390e5c31af7Sopenharmony_ci invariant centroid out lowp smooth float x0; 391e5c31af7Sopenharmony_ci 392e5c31af7Sopenharmony_ci out mediump flat float x1; 393e5c31af7Sopenharmony_ci 394e5c31af7Sopenharmony_ci uniform highp float x2; 395e5c31af7Sopenharmony_ci 396e5c31af7Sopenharmony_ci void main() 397e5c31af7Sopenharmony_ci { 398e5c31af7Sopenharmony_ci x0 = 1.0; 399e5c31af7Sopenharmony_ci x1 = 2.0; 400e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 401e5c31af7Sopenharmony_ci } 402e5c31af7Sopenharmony_ci "" 403e5c31af7Sopenharmony_ci 404e5c31af7Sopenharmony_ci fragment "" 405e5c31af7Sopenharmony_ci #version 300 es 406e5c31af7Sopenharmony_ci precision mediump float; 407e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 408e5c31af7Sopenharmony_ci 409e5c31af7Sopenharmony_ci centroid in lowp smooth float x0; 410e5c31af7Sopenharmony_ci 411e5c31af7Sopenharmony_ci in mediump flat float x1; 412e5c31af7Sopenharmony_ci 413e5c31af7Sopenharmony_ci uniform highp float x2; 414e5c31af7Sopenharmony_ci 415e5c31af7Sopenharmony_ci void main() 416e5c31af7Sopenharmony_ci { 417e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 418e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 419e5c31af7Sopenharmony_ci } 420e5c31af7Sopenharmony_ci "" 421e5c31af7Sopenharmony_ci end 422e5c31af7Sopenharmony_ci case invariant_precision_interp_storage 423e5c31af7Sopenharmony_ci expect compile_fail 424e5c31af7Sopenharmony_ci values {} 425e5c31af7Sopenharmony_ci 426e5c31af7Sopenharmony_ci vertex "" 427e5c31af7Sopenharmony_ci #version 300 es 428e5c31af7Sopenharmony_ci precision mediump float; 429e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 430e5c31af7Sopenharmony_ci 431e5c31af7Sopenharmony_ci invariant lowp smooth centroid out float x0; 432e5c31af7Sopenharmony_ci 433e5c31af7Sopenharmony_ci mediump flat out float x1; 434e5c31af7Sopenharmony_ci 435e5c31af7Sopenharmony_ci highp uniform float x2; 436e5c31af7Sopenharmony_ci 437e5c31af7Sopenharmony_ci void main() 438e5c31af7Sopenharmony_ci { 439e5c31af7Sopenharmony_ci x0 = 1.0; 440e5c31af7Sopenharmony_ci x1 = 2.0; 441e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 442e5c31af7Sopenharmony_ci } 443e5c31af7Sopenharmony_ci "" 444e5c31af7Sopenharmony_ci 445e5c31af7Sopenharmony_ci fragment "" 446e5c31af7Sopenharmony_ci #version 300 es 447e5c31af7Sopenharmony_ci precision mediump float; 448e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 449e5c31af7Sopenharmony_ci 450e5c31af7Sopenharmony_ci lowp smooth centroid in float x0; 451e5c31af7Sopenharmony_ci 452e5c31af7Sopenharmony_ci mediump flat in float x1; 453e5c31af7Sopenharmony_ci 454e5c31af7Sopenharmony_ci highp uniform float x2; 455e5c31af7Sopenharmony_ci 456e5c31af7Sopenharmony_ci void main() 457e5c31af7Sopenharmony_ci { 458e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 459e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 460e5c31af7Sopenharmony_ci } 461e5c31af7Sopenharmony_ci "" 462e5c31af7Sopenharmony_ci end 463e5c31af7Sopenharmony_ci case invariant_precision_storage_interp 464e5c31af7Sopenharmony_ci expect compile_fail 465e5c31af7Sopenharmony_ci values {} 466e5c31af7Sopenharmony_ci 467e5c31af7Sopenharmony_ci vertex "" 468e5c31af7Sopenharmony_ci #version 300 es 469e5c31af7Sopenharmony_ci precision mediump float; 470e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 471e5c31af7Sopenharmony_ci 472e5c31af7Sopenharmony_ci invariant lowp centroid out smooth float x0; 473e5c31af7Sopenharmony_ci 474e5c31af7Sopenharmony_ci mediump out flat float x1; 475e5c31af7Sopenharmony_ci 476e5c31af7Sopenharmony_ci highp uniform float x2; 477e5c31af7Sopenharmony_ci 478e5c31af7Sopenharmony_ci void main() 479e5c31af7Sopenharmony_ci { 480e5c31af7Sopenharmony_ci x0 = 1.0; 481e5c31af7Sopenharmony_ci x1 = 2.0; 482e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 483e5c31af7Sopenharmony_ci } 484e5c31af7Sopenharmony_ci "" 485e5c31af7Sopenharmony_ci 486e5c31af7Sopenharmony_ci fragment "" 487e5c31af7Sopenharmony_ci #version 300 es 488e5c31af7Sopenharmony_ci precision mediump float; 489e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 490e5c31af7Sopenharmony_ci 491e5c31af7Sopenharmony_ci lowp centroid in smooth float x0; 492e5c31af7Sopenharmony_ci 493e5c31af7Sopenharmony_ci mediump in flat float x1; 494e5c31af7Sopenharmony_ci 495e5c31af7Sopenharmony_ci highp uniform float x2; 496e5c31af7Sopenharmony_ci 497e5c31af7Sopenharmony_ci void main() 498e5c31af7Sopenharmony_ci { 499e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 500e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 501e5c31af7Sopenharmony_ci } 502e5c31af7Sopenharmony_ci "" 503e5c31af7Sopenharmony_ci end 504e5c31af7Sopenharmony_ci case interp_invariant_storage_precision 505e5c31af7Sopenharmony_ci expect compile_fail 506e5c31af7Sopenharmony_ci values {} 507e5c31af7Sopenharmony_ci 508e5c31af7Sopenharmony_ci vertex "" 509e5c31af7Sopenharmony_ci #version 300 es 510e5c31af7Sopenharmony_ci precision mediump float; 511e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 512e5c31af7Sopenharmony_ci 513e5c31af7Sopenharmony_ci smooth invariant centroid out lowp float x0; 514e5c31af7Sopenharmony_ci 515e5c31af7Sopenharmony_ci flat out mediump float x1; 516e5c31af7Sopenharmony_ci 517e5c31af7Sopenharmony_ci uniform highp float x2; 518e5c31af7Sopenharmony_ci 519e5c31af7Sopenharmony_ci void main() 520e5c31af7Sopenharmony_ci { 521e5c31af7Sopenharmony_ci x0 = 1.0; 522e5c31af7Sopenharmony_ci x1 = 2.0; 523e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 524e5c31af7Sopenharmony_ci } 525e5c31af7Sopenharmony_ci "" 526e5c31af7Sopenharmony_ci 527e5c31af7Sopenharmony_ci fragment "" 528e5c31af7Sopenharmony_ci #version 300 es 529e5c31af7Sopenharmony_ci precision mediump float; 530e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 531e5c31af7Sopenharmony_ci 532e5c31af7Sopenharmony_ci smooth centroid in lowp float x0; 533e5c31af7Sopenharmony_ci 534e5c31af7Sopenharmony_ci flat in mediump float x1; 535e5c31af7Sopenharmony_ci 536e5c31af7Sopenharmony_ci uniform highp float x2; 537e5c31af7Sopenharmony_ci 538e5c31af7Sopenharmony_ci void main() 539e5c31af7Sopenharmony_ci { 540e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 541e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 542e5c31af7Sopenharmony_ci } 543e5c31af7Sopenharmony_ci "" 544e5c31af7Sopenharmony_ci end 545e5c31af7Sopenharmony_ci case interp_invariant_precision_storage 546e5c31af7Sopenharmony_ci expect compile_fail 547e5c31af7Sopenharmony_ci values {} 548e5c31af7Sopenharmony_ci 549e5c31af7Sopenharmony_ci vertex "" 550e5c31af7Sopenharmony_ci #version 300 es 551e5c31af7Sopenharmony_ci precision mediump float; 552e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 553e5c31af7Sopenharmony_ci 554e5c31af7Sopenharmony_ci smooth invariant lowp centroid out float x0; 555e5c31af7Sopenharmony_ci 556e5c31af7Sopenharmony_ci flat mediump out float x1; 557e5c31af7Sopenharmony_ci 558e5c31af7Sopenharmony_ci highp uniform float x2; 559e5c31af7Sopenharmony_ci 560e5c31af7Sopenharmony_ci void main() 561e5c31af7Sopenharmony_ci { 562e5c31af7Sopenharmony_ci x0 = 1.0; 563e5c31af7Sopenharmony_ci x1 = 2.0; 564e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 565e5c31af7Sopenharmony_ci } 566e5c31af7Sopenharmony_ci "" 567e5c31af7Sopenharmony_ci 568e5c31af7Sopenharmony_ci fragment "" 569e5c31af7Sopenharmony_ci #version 300 es 570e5c31af7Sopenharmony_ci precision mediump float; 571e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 572e5c31af7Sopenharmony_ci 573e5c31af7Sopenharmony_ci smooth lowp centroid in float x0; 574e5c31af7Sopenharmony_ci 575e5c31af7Sopenharmony_ci flat mediump in float x1; 576e5c31af7Sopenharmony_ci 577e5c31af7Sopenharmony_ci highp uniform float x2; 578e5c31af7Sopenharmony_ci 579e5c31af7Sopenharmony_ci void main() 580e5c31af7Sopenharmony_ci { 581e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 582e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 583e5c31af7Sopenharmony_ci } 584e5c31af7Sopenharmony_ci "" 585e5c31af7Sopenharmony_ci end 586e5c31af7Sopenharmony_ci case interp_storage_invariant_precision 587e5c31af7Sopenharmony_ci expect compile_fail 588e5c31af7Sopenharmony_ci values {} 589e5c31af7Sopenharmony_ci 590e5c31af7Sopenharmony_ci vertex "" 591e5c31af7Sopenharmony_ci #version 300 es 592e5c31af7Sopenharmony_ci precision mediump float; 593e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 594e5c31af7Sopenharmony_ci 595e5c31af7Sopenharmony_ci smooth centroid out invariant lowp float x0; 596e5c31af7Sopenharmony_ci 597e5c31af7Sopenharmony_ci flat out mediump float x1; 598e5c31af7Sopenharmony_ci 599e5c31af7Sopenharmony_ci uniform highp float x2; 600e5c31af7Sopenharmony_ci 601e5c31af7Sopenharmony_ci void main() 602e5c31af7Sopenharmony_ci { 603e5c31af7Sopenharmony_ci x0 = 1.0; 604e5c31af7Sopenharmony_ci x1 = 2.0; 605e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 606e5c31af7Sopenharmony_ci } 607e5c31af7Sopenharmony_ci "" 608e5c31af7Sopenharmony_ci 609e5c31af7Sopenharmony_ci fragment "" 610e5c31af7Sopenharmony_ci #version 300 es 611e5c31af7Sopenharmony_ci precision mediump float; 612e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 613e5c31af7Sopenharmony_ci 614e5c31af7Sopenharmony_ci smooth centroid in lowp float x0; 615e5c31af7Sopenharmony_ci 616e5c31af7Sopenharmony_ci flat in mediump float x1; 617e5c31af7Sopenharmony_ci 618e5c31af7Sopenharmony_ci uniform highp float x2; 619e5c31af7Sopenharmony_ci 620e5c31af7Sopenharmony_ci void main() 621e5c31af7Sopenharmony_ci { 622e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 623e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 624e5c31af7Sopenharmony_ci } 625e5c31af7Sopenharmony_ci "" 626e5c31af7Sopenharmony_ci end 627e5c31af7Sopenharmony_ci case interp_storage_precision_invariant 628e5c31af7Sopenharmony_ci expect compile_fail 629e5c31af7Sopenharmony_ci values {} 630e5c31af7Sopenharmony_ci 631e5c31af7Sopenharmony_ci vertex "" 632e5c31af7Sopenharmony_ci #version 300 es 633e5c31af7Sopenharmony_ci precision mediump float; 634e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 635e5c31af7Sopenharmony_ci 636e5c31af7Sopenharmony_ci smooth centroid out lowp invariant float x0; 637e5c31af7Sopenharmony_ci 638e5c31af7Sopenharmony_ci flat out mediump float x1; 639e5c31af7Sopenharmony_ci 640e5c31af7Sopenharmony_ci uniform highp float x2; 641e5c31af7Sopenharmony_ci 642e5c31af7Sopenharmony_ci void main() 643e5c31af7Sopenharmony_ci { 644e5c31af7Sopenharmony_ci x0 = 1.0; 645e5c31af7Sopenharmony_ci x1 = 2.0; 646e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 647e5c31af7Sopenharmony_ci } 648e5c31af7Sopenharmony_ci "" 649e5c31af7Sopenharmony_ci 650e5c31af7Sopenharmony_ci fragment "" 651e5c31af7Sopenharmony_ci #version 300 es 652e5c31af7Sopenharmony_ci precision mediump float; 653e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 654e5c31af7Sopenharmony_ci 655e5c31af7Sopenharmony_ci smooth centroid in lowp float x0; 656e5c31af7Sopenharmony_ci 657e5c31af7Sopenharmony_ci flat in mediump float x1; 658e5c31af7Sopenharmony_ci 659e5c31af7Sopenharmony_ci uniform highp float x2; 660e5c31af7Sopenharmony_ci 661e5c31af7Sopenharmony_ci void main() 662e5c31af7Sopenharmony_ci { 663e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 664e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 665e5c31af7Sopenharmony_ci } 666e5c31af7Sopenharmony_ci "" 667e5c31af7Sopenharmony_ci end 668e5c31af7Sopenharmony_ci case interp_precision_invariant_storage 669e5c31af7Sopenharmony_ci expect compile_fail 670e5c31af7Sopenharmony_ci values {} 671e5c31af7Sopenharmony_ci 672e5c31af7Sopenharmony_ci vertex "" 673e5c31af7Sopenharmony_ci #version 300 es 674e5c31af7Sopenharmony_ci precision mediump float; 675e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 676e5c31af7Sopenharmony_ci 677e5c31af7Sopenharmony_ci smooth lowp invariant centroid out float x0; 678e5c31af7Sopenharmony_ci 679e5c31af7Sopenharmony_ci flat mediump out float x1; 680e5c31af7Sopenharmony_ci 681e5c31af7Sopenharmony_ci highp uniform float x2; 682e5c31af7Sopenharmony_ci 683e5c31af7Sopenharmony_ci void main() 684e5c31af7Sopenharmony_ci { 685e5c31af7Sopenharmony_ci x0 = 1.0; 686e5c31af7Sopenharmony_ci x1 = 2.0; 687e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 688e5c31af7Sopenharmony_ci } 689e5c31af7Sopenharmony_ci "" 690e5c31af7Sopenharmony_ci 691e5c31af7Sopenharmony_ci fragment "" 692e5c31af7Sopenharmony_ci #version 300 es 693e5c31af7Sopenharmony_ci precision mediump float; 694e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 695e5c31af7Sopenharmony_ci 696e5c31af7Sopenharmony_ci smooth lowp centroid in float x0; 697e5c31af7Sopenharmony_ci 698e5c31af7Sopenharmony_ci flat mediump in float x1; 699e5c31af7Sopenharmony_ci 700e5c31af7Sopenharmony_ci highp uniform float x2; 701e5c31af7Sopenharmony_ci 702e5c31af7Sopenharmony_ci void main() 703e5c31af7Sopenharmony_ci { 704e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 705e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 706e5c31af7Sopenharmony_ci } 707e5c31af7Sopenharmony_ci "" 708e5c31af7Sopenharmony_ci end 709e5c31af7Sopenharmony_ci case interp_precision_storage_invariant 710e5c31af7Sopenharmony_ci expect compile_fail 711e5c31af7Sopenharmony_ci values {} 712e5c31af7Sopenharmony_ci 713e5c31af7Sopenharmony_ci vertex "" 714e5c31af7Sopenharmony_ci #version 300 es 715e5c31af7Sopenharmony_ci precision mediump float; 716e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 717e5c31af7Sopenharmony_ci 718e5c31af7Sopenharmony_ci smooth lowp centroid out invariant float x0; 719e5c31af7Sopenharmony_ci 720e5c31af7Sopenharmony_ci flat mediump out float x1; 721e5c31af7Sopenharmony_ci 722e5c31af7Sopenharmony_ci highp uniform float x2; 723e5c31af7Sopenharmony_ci 724e5c31af7Sopenharmony_ci void main() 725e5c31af7Sopenharmony_ci { 726e5c31af7Sopenharmony_ci x0 = 1.0; 727e5c31af7Sopenharmony_ci x1 = 2.0; 728e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 729e5c31af7Sopenharmony_ci } 730e5c31af7Sopenharmony_ci "" 731e5c31af7Sopenharmony_ci 732e5c31af7Sopenharmony_ci fragment "" 733e5c31af7Sopenharmony_ci #version 300 es 734e5c31af7Sopenharmony_ci precision mediump float; 735e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 736e5c31af7Sopenharmony_ci 737e5c31af7Sopenharmony_ci smooth lowp centroid in float x0; 738e5c31af7Sopenharmony_ci 739e5c31af7Sopenharmony_ci flat mediump in float x1; 740e5c31af7Sopenharmony_ci 741e5c31af7Sopenharmony_ci highp uniform float x2; 742e5c31af7Sopenharmony_ci 743e5c31af7Sopenharmony_ci void main() 744e5c31af7Sopenharmony_ci { 745e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 746e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 747e5c31af7Sopenharmony_ci } 748e5c31af7Sopenharmony_ci "" 749e5c31af7Sopenharmony_ci end 750e5c31af7Sopenharmony_ci case storage_invariant_interp_precision 751e5c31af7Sopenharmony_ci expect compile_fail 752e5c31af7Sopenharmony_ci values {} 753e5c31af7Sopenharmony_ci 754e5c31af7Sopenharmony_ci vertex "" 755e5c31af7Sopenharmony_ci #version 300 es 756e5c31af7Sopenharmony_ci precision mediump float; 757e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 758e5c31af7Sopenharmony_ci 759e5c31af7Sopenharmony_ci centroid out invariant smooth lowp float x0; 760e5c31af7Sopenharmony_ci 761e5c31af7Sopenharmony_ci out flat mediump float x1; 762e5c31af7Sopenharmony_ci 763e5c31af7Sopenharmony_ci uniform highp float x2; 764e5c31af7Sopenharmony_ci 765e5c31af7Sopenharmony_ci void main() 766e5c31af7Sopenharmony_ci { 767e5c31af7Sopenharmony_ci x0 = 1.0; 768e5c31af7Sopenharmony_ci x1 = 2.0; 769e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 770e5c31af7Sopenharmony_ci } 771e5c31af7Sopenharmony_ci "" 772e5c31af7Sopenharmony_ci 773e5c31af7Sopenharmony_ci fragment "" 774e5c31af7Sopenharmony_ci #version 300 es 775e5c31af7Sopenharmony_ci precision mediump float; 776e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 777e5c31af7Sopenharmony_ci 778e5c31af7Sopenharmony_ci centroid in smooth lowp float x0; 779e5c31af7Sopenharmony_ci 780e5c31af7Sopenharmony_ci in flat mediump float x1; 781e5c31af7Sopenharmony_ci 782e5c31af7Sopenharmony_ci uniform highp float x2; 783e5c31af7Sopenharmony_ci 784e5c31af7Sopenharmony_ci void main() 785e5c31af7Sopenharmony_ci { 786e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 787e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 788e5c31af7Sopenharmony_ci } 789e5c31af7Sopenharmony_ci "" 790e5c31af7Sopenharmony_ci end 791e5c31af7Sopenharmony_ci case storage_invariant_precision_interp 792e5c31af7Sopenharmony_ci expect compile_fail 793e5c31af7Sopenharmony_ci values {} 794e5c31af7Sopenharmony_ci 795e5c31af7Sopenharmony_ci vertex "" 796e5c31af7Sopenharmony_ci #version 300 es 797e5c31af7Sopenharmony_ci precision mediump float; 798e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 799e5c31af7Sopenharmony_ci 800e5c31af7Sopenharmony_ci centroid out invariant lowp smooth float x0; 801e5c31af7Sopenharmony_ci 802e5c31af7Sopenharmony_ci out mediump flat float x1; 803e5c31af7Sopenharmony_ci 804e5c31af7Sopenharmony_ci uniform highp float x2; 805e5c31af7Sopenharmony_ci 806e5c31af7Sopenharmony_ci void main() 807e5c31af7Sopenharmony_ci { 808e5c31af7Sopenharmony_ci x0 = 1.0; 809e5c31af7Sopenharmony_ci x1 = 2.0; 810e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 811e5c31af7Sopenharmony_ci } 812e5c31af7Sopenharmony_ci "" 813e5c31af7Sopenharmony_ci 814e5c31af7Sopenharmony_ci fragment "" 815e5c31af7Sopenharmony_ci #version 300 es 816e5c31af7Sopenharmony_ci precision mediump float; 817e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 818e5c31af7Sopenharmony_ci 819e5c31af7Sopenharmony_ci centroid in lowp smooth float x0; 820e5c31af7Sopenharmony_ci 821e5c31af7Sopenharmony_ci in mediump flat float x1; 822e5c31af7Sopenharmony_ci 823e5c31af7Sopenharmony_ci uniform highp float x2; 824e5c31af7Sopenharmony_ci 825e5c31af7Sopenharmony_ci void main() 826e5c31af7Sopenharmony_ci { 827e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 828e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 829e5c31af7Sopenharmony_ci } 830e5c31af7Sopenharmony_ci "" 831e5c31af7Sopenharmony_ci end 832e5c31af7Sopenharmony_ci case storage_interp_invariant_precision 833e5c31af7Sopenharmony_ci expect compile_fail 834e5c31af7Sopenharmony_ci values {} 835e5c31af7Sopenharmony_ci 836e5c31af7Sopenharmony_ci vertex "" 837e5c31af7Sopenharmony_ci #version 300 es 838e5c31af7Sopenharmony_ci precision mediump float; 839e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 840e5c31af7Sopenharmony_ci 841e5c31af7Sopenharmony_ci centroid out smooth invariant lowp float x0; 842e5c31af7Sopenharmony_ci 843e5c31af7Sopenharmony_ci out flat mediump float x1; 844e5c31af7Sopenharmony_ci 845e5c31af7Sopenharmony_ci uniform highp float x2; 846e5c31af7Sopenharmony_ci 847e5c31af7Sopenharmony_ci void main() 848e5c31af7Sopenharmony_ci { 849e5c31af7Sopenharmony_ci x0 = 1.0; 850e5c31af7Sopenharmony_ci x1 = 2.0; 851e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 852e5c31af7Sopenharmony_ci } 853e5c31af7Sopenharmony_ci "" 854e5c31af7Sopenharmony_ci 855e5c31af7Sopenharmony_ci fragment "" 856e5c31af7Sopenharmony_ci #version 300 es 857e5c31af7Sopenharmony_ci precision mediump float; 858e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 859e5c31af7Sopenharmony_ci 860e5c31af7Sopenharmony_ci centroid in smooth lowp float x0; 861e5c31af7Sopenharmony_ci 862e5c31af7Sopenharmony_ci in flat mediump float x1; 863e5c31af7Sopenharmony_ci 864e5c31af7Sopenharmony_ci uniform highp float x2; 865e5c31af7Sopenharmony_ci 866e5c31af7Sopenharmony_ci void main() 867e5c31af7Sopenharmony_ci { 868e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 869e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 870e5c31af7Sopenharmony_ci } 871e5c31af7Sopenharmony_ci "" 872e5c31af7Sopenharmony_ci end 873e5c31af7Sopenharmony_ci case storage_interp_precision_invariant 874e5c31af7Sopenharmony_ci expect compile_fail 875e5c31af7Sopenharmony_ci values {} 876e5c31af7Sopenharmony_ci 877e5c31af7Sopenharmony_ci vertex "" 878e5c31af7Sopenharmony_ci #version 300 es 879e5c31af7Sopenharmony_ci precision mediump float; 880e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 881e5c31af7Sopenharmony_ci 882e5c31af7Sopenharmony_ci centroid out smooth lowp invariant float x0; 883e5c31af7Sopenharmony_ci 884e5c31af7Sopenharmony_ci out flat mediump float x1; 885e5c31af7Sopenharmony_ci 886e5c31af7Sopenharmony_ci uniform highp float x2; 887e5c31af7Sopenharmony_ci 888e5c31af7Sopenharmony_ci void main() 889e5c31af7Sopenharmony_ci { 890e5c31af7Sopenharmony_ci x0 = 1.0; 891e5c31af7Sopenharmony_ci x1 = 2.0; 892e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 893e5c31af7Sopenharmony_ci } 894e5c31af7Sopenharmony_ci "" 895e5c31af7Sopenharmony_ci 896e5c31af7Sopenharmony_ci fragment "" 897e5c31af7Sopenharmony_ci #version 300 es 898e5c31af7Sopenharmony_ci precision mediump float; 899e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 900e5c31af7Sopenharmony_ci 901e5c31af7Sopenharmony_ci centroid in smooth lowp float x0; 902e5c31af7Sopenharmony_ci 903e5c31af7Sopenharmony_ci in flat mediump float x1; 904e5c31af7Sopenharmony_ci 905e5c31af7Sopenharmony_ci uniform highp float x2; 906e5c31af7Sopenharmony_ci 907e5c31af7Sopenharmony_ci void main() 908e5c31af7Sopenharmony_ci { 909e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 910e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 911e5c31af7Sopenharmony_ci } 912e5c31af7Sopenharmony_ci "" 913e5c31af7Sopenharmony_ci end 914e5c31af7Sopenharmony_ci case storage_precision_invariant_interp 915e5c31af7Sopenharmony_ci expect compile_fail 916e5c31af7Sopenharmony_ci values {} 917e5c31af7Sopenharmony_ci 918e5c31af7Sopenharmony_ci vertex "" 919e5c31af7Sopenharmony_ci #version 300 es 920e5c31af7Sopenharmony_ci precision mediump float; 921e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 922e5c31af7Sopenharmony_ci 923e5c31af7Sopenharmony_ci centroid out lowp invariant smooth float x0; 924e5c31af7Sopenharmony_ci 925e5c31af7Sopenharmony_ci out mediump flat float x1; 926e5c31af7Sopenharmony_ci 927e5c31af7Sopenharmony_ci uniform highp float x2; 928e5c31af7Sopenharmony_ci 929e5c31af7Sopenharmony_ci void main() 930e5c31af7Sopenharmony_ci { 931e5c31af7Sopenharmony_ci x0 = 1.0; 932e5c31af7Sopenharmony_ci x1 = 2.0; 933e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 934e5c31af7Sopenharmony_ci } 935e5c31af7Sopenharmony_ci "" 936e5c31af7Sopenharmony_ci 937e5c31af7Sopenharmony_ci fragment "" 938e5c31af7Sopenharmony_ci #version 300 es 939e5c31af7Sopenharmony_ci precision mediump float; 940e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 941e5c31af7Sopenharmony_ci 942e5c31af7Sopenharmony_ci centroid in lowp smooth float x0; 943e5c31af7Sopenharmony_ci 944e5c31af7Sopenharmony_ci in mediump flat float x1; 945e5c31af7Sopenharmony_ci 946e5c31af7Sopenharmony_ci uniform highp float x2; 947e5c31af7Sopenharmony_ci 948e5c31af7Sopenharmony_ci void main() 949e5c31af7Sopenharmony_ci { 950e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 951e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 952e5c31af7Sopenharmony_ci } 953e5c31af7Sopenharmony_ci "" 954e5c31af7Sopenharmony_ci end 955e5c31af7Sopenharmony_ci case storage_precision_interp_invariant 956e5c31af7Sopenharmony_ci expect compile_fail 957e5c31af7Sopenharmony_ci values {} 958e5c31af7Sopenharmony_ci 959e5c31af7Sopenharmony_ci vertex "" 960e5c31af7Sopenharmony_ci #version 300 es 961e5c31af7Sopenharmony_ci precision mediump float; 962e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 963e5c31af7Sopenharmony_ci 964e5c31af7Sopenharmony_ci centroid out lowp smooth invariant float x0; 965e5c31af7Sopenharmony_ci 966e5c31af7Sopenharmony_ci out mediump flat float x1; 967e5c31af7Sopenharmony_ci 968e5c31af7Sopenharmony_ci uniform highp float x2; 969e5c31af7Sopenharmony_ci 970e5c31af7Sopenharmony_ci void main() 971e5c31af7Sopenharmony_ci { 972e5c31af7Sopenharmony_ci x0 = 1.0; 973e5c31af7Sopenharmony_ci x1 = 2.0; 974e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 975e5c31af7Sopenharmony_ci } 976e5c31af7Sopenharmony_ci "" 977e5c31af7Sopenharmony_ci 978e5c31af7Sopenharmony_ci fragment "" 979e5c31af7Sopenharmony_ci #version 300 es 980e5c31af7Sopenharmony_ci precision mediump float; 981e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 982e5c31af7Sopenharmony_ci 983e5c31af7Sopenharmony_ci centroid in lowp smooth float x0; 984e5c31af7Sopenharmony_ci 985e5c31af7Sopenharmony_ci in mediump flat float x1; 986e5c31af7Sopenharmony_ci 987e5c31af7Sopenharmony_ci uniform highp float x2; 988e5c31af7Sopenharmony_ci 989e5c31af7Sopenharmony_ci void main() 990e5c31af7Sopenharmony_ci { 991e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 992e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 993e5c31af7Sopenharmony_ci } 994e5c31af7Sopenharmony_ci "" 995e5c31af7Sopenharmony_ci end 996e5c31af7Sopenharmony_ci case precision_invariant_interp_storage 997e5c31af7Sopenharmony_ci expect compile_fail 998e5c31af7Sopenharmony_ci values {} 999e5c31af7Sopenharmony_ci 1000e5c31af7Sopenharmony_ci vertex "" 1001e5c31af7Sopenharmony_ci #version 300 es 1002e5c31af7Sopenharmony_ci precision mediump float; 1003e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 1004e5c31af7Sopenharmony_ci 1005e5c31af7Sopenharmony_ci lowp invariant smooth centroid out float x0; 1006e5c31af7Sopenharmony_ci 1007e5c31af7Sopenharmony_ci mediump flat out float x1; 1008e5c31af7Sopenharmony_ci 1009e5c31af7Sopenharmony_ci highp uniform float x2; 1010e5c31af7Sopenharmony_ci 1011e5c31af7Sopenharmony_ci void main() 1012e5c31af7Sopenharmony_ci { 1013e5c31af7Sopenharmony_ci x0 = 1.0; 1014e5c31af7Sopenharmony_ci x1 = 2.0; 1015e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 1016e5c31af7Sopenharmony_ci } 1017e5c31af7Sopenharmony_ci "" 1018e5c31af7Sopenharmony_ci 1019e5c31af7Sopenharmony_ci fragment "" 1020e5c31af7Sopenharmony_ci #version 300 es 1021e5c31af7Sopenharmony_ci precision mediump float; 1022e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 1023e5c31af7Sopenharmony_ci 1024e5c31af7Sopenharmony_ci lowp smooth centroid in float x0; 1025e5c31af7Sopenharmony_ci 1026e5c31af7Sopenharmony_ci mediump flat in float x1; 1027e5c31af7Sopenharmony_ci 1028e5c31af7Sopenharmony_ci highp uniform float x2; 1029e5c31af7Sopenharmony_ci 1030e5c31af7Sopenharmony_ci void main() 1031e5c31af7Sopenharmony_ci { 1032e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 1033e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 1034e5c31af7Sopenharmony_ci } 1035e5c31af7Sopenharmony_ci "" 1036e5c31af7Sopenharmony_ci end 1037e5c31af7Sopenharmony_ci case precision_invariant_storage_interp 1038e5c31af7Sopenharmony_ci expect compile_fail 1039e5c31af7Sopenharmony_ci values {} 1040e5c31af7Sopenharmony_ci 1041e5c31af7Sopenharmony_ci vertex "" 1042e5c31af7Sopenharmony_ci #version 300 es 1043e5c31af7Sopenharmony_ci precision mediump float; 1044e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 1045e5c31af7Sopenharmony_ci 1046e5c31af7Sopenharmony_ci lowp invariant centroid out smooth float x0; 1047e5c31af7Sopenharmony_ci 1048e5c31af7Sopenharmony_ci mediump out flat float x1; 1049e5c31af7Sopenharmony_ci 1050e5c31af7Sopenharmony_ci highp uniform float x2; 1051e5c31af7Sopenharmony_ci 1052e5c31af7Sopenharmony_ci void main() 1053e5c31af7Sopenharmony_ci { 1054e5c31af7Sopenharmony_ci x0 = 1.0; 1055e5c31af7Sopenharmony_ci x1 = 2.0; 1056e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 1057e5c31af7Sopenharmony_ci } 1058e5c31af7Sopenharmony_ci "" 1059e5c31af7Sopenharmony_ci 1060e5c31af7Sopenharmony_ci fragment "" 1061e5c31af7Sopenharmony_ci #version 300 es 1062e5c31af7Sopenharmony_ci precision mediump float; 1063e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 1064e5c31af7Sopenharmony_ci 1065e5c31af7Sopenharmony_ci lowp centroid in smooth float x0; 1066e5c31af7Sopenharmony_ci 1067e5c31af7Sopenharmony_ci mediump in flat float x1; 1068e5c31af7Sopenharmony_ci 1069e5c31af7Sopenharmony_ci highp uniform float x2; 1070e5c31af7Sopenharmony_ci 1071e5c31af7Sopenharmony_ci void main() 1072e5c31af7Sopenharmony_ci { 1073e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 1074e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 1075e5c31af7Sopenharmony_ci } 1076e5c31af7Sopenharmony_ci "" 1077e5c31af7Sopenharmony_ci end 1078e5c31af7Sopenharmony_ci case precision_interp_invariant_storage 1079e5c31af7Sopenharmony_ci expect compile_fail 1080e5c31af7Sopenharmony_ci values {} 1081e5c31af7Sopenharmony_ci 1082e5c31af7Sopenharmony_ci vertex "" 1083e5c31af7Sopenharmony_ci #version 300 es 1084e5c31af7Sopenharmony_ci precision mediump float; 1085e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 1086e5c31af7Sopenharmony_ci 1087e5c31af7Sopenharmony_ci lowp smooth invariant centroid out float x0; 1088e5c31af7Sopenharmony_ci 1089e5c31af7Sopenharmony_ci mediump flat out float x1; 1090e5c31af7Sopenharmony_ci 1091e5c31af7Sopenharmony_ci highp uniform float x2; 1092e5c31af7Sopenharmony_ci 1093e5c31af7Sopenharmony_ci void main() 1094e5c31af7Sopenharmony_ci { 1095e5c31af7Sopenharmony_ci x0 = 1.0; 1096e5c31af7Sopenharmony_ci x1 = 2.0; 1097e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 1098e5c31af7Sopenharmony_ci } 1099e5c31af7Sopenharmony_ci "" 1100e5c31af7Sopenharmony_ci 1101e5c31af7Sopenharmony_ci fragment "" 1102e5c31af7Sopenharmony_ci #version 300 es 1103e5c31af7Sopenharmony_ci precision mediump float; 1104e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 1105e5c31af7Sopenharmony_ci 1106e5c31af7Sopenharmony_ci lowp smooth centroid in float x0; 1107e5c31af7Sopenharmony_ci 1108e5c31af7Sopenharmony_ci mediump flat in float x1; 1109e5c31af7Sopenharmony_ci 1110e5c31af7Sopenharmony_ci highp uniform float x2; 1111e5c31af7Sopenharmony_ci 1112e5c31af7Sopenharmony_ci void main() 1113e5c31af7Sopenharmony_ci { 1114e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 1115e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 1116e5c31af7Sopenharmony_ci } 1117e5c31af7Sopenharmony_ci "" 1118e5c31af7Sopenharmony_ci end 1119e5c31af7Sopenharmony_ci case precision_interp_storage_invariant 1120e5c31af7Sopenharmony_ci expect compile_fail 1121e5c31af7Sopenharmony_ci values {} 1122e5c31af7Sopenharmony_ci 1123e5c31af7Sopenharmony_ci vertex "" 1124e5c31af7Sopenharmony_ci #version 300 es 1125e5c31af7Sopenharmony_ci precision mediump float; 1126e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 1127e5c31af7Sopenharmony_ci 1128e5c31af7Sopenharmony_ci lowp smooth centroid out invariant float x0; 1129e5c31af7Sopenharmony_ci 1130e5c31af7Sopenharmony_ci mediump flat out float x1; 1131e5c31af7Sopenharmony_ci 1132e5c31af7Sopenharmony_ci highp uniform float x2; 1133e5c31af7Sopenharmony_ci 1134e5c31af7Sopenharmony_ci void main() 1135e5c31af7Sopenharmony_ci { 1136e5c31af7Sopenharmony_ci x0 = 1.0; 1137e5c31af7Sopenharmony_ci x1 = 2.0; 1138e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 1139e5c31af7Sopenharmony_ci } 1140e5c31af7Sopenharmony_ci "" 1141e5c31af7Sopenharmony_ci 1142e5c31af7Sopenharmony_ci fragment "" 1143e5c31af7Sopenharmony_ci #version 300 es 1144e5c31af7Sopenharmony_ci precision mediump float; 1145e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 1146e5c31af7Sopenharmony_ci 1147e5c31af7Sopenharmony_ci lowp smooth centroid in float x0; 1148e5c31af7Sopenharmony_ci 1149e5c31af7Sopenharmony_ci mediump flat in float x1; 1150e5c31af7Sopenharmony_ci 1151e5c31af7Sopenharmony_ci highp uniform float x2; 1152e5c31af7Sopenharmony_ci 1153e5c31af7Sopenharmony_ci void main() 1154e5c31af7Sopenharmony_ci { 1155e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 1156e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 1157e5c31af7Sopenharmony_ci } 1158e5c31af7Sopenharmony_ci "" 1159e5c31af7Sopenharmony_ci end 1160e5c31af7Sopenharmony_ci case precision_storage_invariant_interp 1161e5c31af7Sopenharmony_ci expect compile_fail 1162e5c31af7Sopenharmony_ci values {} 1163e5c31af7Sopenharmony_ci 1164e5c31af7Sopenharmony_ci vertex "" 1165e5c31af7Sopenharmony_ci #version 300 es 1166e5c31af7Sopenharmony_ci precision mediump float; 1167e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 1168e5c31af7Sopenharmony_ci 1169e5c31af7Sopenharmony_ci lowp centroid out invariant smooth float x0; 1170e5c31af7Sopenharmony_ci 1171e5c31af7Sopenharmony_ci mediump out flat float x1; 1172e5c31af7Sopenharmony_ci 1173e5c31af7Sopenharmony_ci highp uniform float x2; 1174e5c31af7Sopenharmony_ci 1175e5c31af7Sopenharmony_ci void main() 1176e5c31af7Sopenharmony_ci { 1177e5c31af7Sopenharmony_ci x0 = 1.0; 1178e5c31af7Sopenharmony_ci x1 = 2.0; 1179e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 1180e5c31af7Sopenharmony_ci } 1181e5c31af7Sopenharmony_ci "" 1182e5c31af7Sopenharmony_ci 1183e5c31af7Sopenharmony_ci fragment "" 1184e5c31af7Sopenharmony_ci #version 300 es 1185e5c31af7Sopenharmony_ci precision mediump float; 1186e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 1187e5c31af7Sopenharmony_ci 1188e5c31af7Sopenharmony_ci lowp centroid in smooth float x0; 1189e5c31af7Sopenharmony_ci 1190e5c31af7Sopenharmony_ci mediump in flat float x1; 1191e5c31af7Sopenharmony_ci 1192e5c31af7Sopenharmony_ci highp uniform float x2; 1193e5c31af7Sopenharmony_ci 1194e5c31af7Sopenharmony_ci void main() 1195e5c31af7Sopenharmony_ci { 1196e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 1197e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 1198e5c31af7Sopenharmony_ci } 1199e5c31af7Sopenharmony_ci "" 1200e5c31af7Sopenharmony_ci end 1201e5c31af7Sopenharmony_ci case precision_storage_interp_invariant 1202e5c31af7Sopenharmony_ci expect compile_fail 1203e5c31af7Sopenharmony_ci values {} 1204e5c31af7Sopenharmony_ci 1205e5c31af7Sopenharmony_ci vertex "" 1206e5c31af7Sopenharmony_ci #version 300 es 1207e5c31af7Sopenharmony_ci precision mediump float; 1208e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 1209e5c31af7Sopenharmony_ci 1210e5c31af7Sopenharmony_ci lowp centroid out smooth invariant float x0; 1211e5c31af7Sopenharmony_ci 1212e5c31af7Sopenharmony_ci mediump out flat float x1; 1213e5c31af7Sopenharmony_ci 1214e5c31af7Sopenharmony_ci highp uniform float x2; 1215e5c31af7Sopenharmony_ci 1216e5c31af7Sopenharmony_ci void main() 1217e5c31af7Sopenharmony_ci { 1218e5c31af7Sopenharmony_ci x0 = 1.0; 1219e5c31af7Sopenharmony_ci x1 = 2.0; 1220e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 1221e5c31af7Sopenharmony_ci } 1222e5c31af7Sopenharmony_ci "" 1223e5c31af7Sopenharmony_ci 1224e5c31af7Sopenharmony_ci fragment "" 1225e5c31af7Sopenharmony_ci #version 300 es 1226e5c31af7Sopenharmony_ci precision mediump float; 1227e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 1228e5c31af7Sopenharmony_ci 1229e5c31af7Sopenharmony_ci lowp centroid in smooth float x0; 1230e5c31af7Sopenharmony_ci 1231e5c31af7Sopenharmony_ci mediump in flat float x1; 1232e5c31af7Sopenharmony_ci 1233e5c31af7Sopenharmony_ci highp uniform float x2; 1234e5c31af7Sopenharmony_ci 1235e5c31af7Sopenharmony_ci void main() 1236e5c31af7Sopenharmony_ci { 1237e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 1238e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 1239e5c31af7Sopenharmony_ci } 1240e5c31af7Sopenharmony_ci "" 1241e5c31af7Sopenharmony_ci end 1242e5c31af7Sopenharmony_ci case interp_precision_storage 1243e5c31af7Sopenharmony_ci expect compile_fail 1244e5c31af7Sopenharmony_ci values {} 1245e5c31af7Sopenharmony_ci 1246e5c31af7Sopenharmony_ci vertex "" 1247e5c31af7Sopenharmony_ci #version 300 es 1248e5c31af7Sopenharmony_ci precision mediump float; 1249e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 1250e5c31af7Sopenharmony_ci 1251e5c31af7Sopenharmony_ci smooth lowp centroid out float x0; 1252e5c31af7Sopenharmony_ci 1253e5c31af7Sopenharmony_ci flat mediump out float x1; 1254e5c31af7Sopenharmony_ci 1255e5c31af7Sopenharmony_ci highp uniform float x2; 1256e5c31af7Sopenharmony_ci 1257e5c31af7Sopenharmony_ci void main() 1258e5c31af7Sopenharmony_ci { 1259e5c31af7Sopenharmony_ci x0 = 1.0; 1260e5c31af7Sopenharmony_ci x1 = 2.0; 1261e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 1262e5c31af7Sopenharmony_ci } 1263e5c31af7Sopenharmony_ci "" 1264e5c31af7Sopenharmony_ci 1265e5c31af7Sopenharmony_ci fragment "" 1266e5c31af7Sopenharmony_ci #version 300 es 1267e5c31af7Sopenharmony_ci precision mediump float; 1268e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 1269e5c31af7Sopenharmony_ci 1270e5c31af7Sopenharmony_ci smooth lowp centroid in float x0; 1271e5c31af7Sopenharmony_ci 1272e5c31af7Sopenharmony_ci flat mediump in float x1; 1273e5c31af7Sopenharmony_ci 1274e5c31af7Sopenharmony_ci highp uniform float x2; 1275e5c31af7Sopenharmony_ci 1276e5c31af7Sopenharmony_ci void main() 1277e5c31af7Sopenharmony_ci { 1278e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 1279e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 1280e5c31af7Sopenharmony_ci } 1281e5c31af7Sopenharmony_ci "" 1282e5c31af7Sopenharmony_ci end 1283e5c31af7Sopenharmony_ci case storage_interp_precision 1284e5c31af7Sopenharmony_ci expect compile_fail 1285e5c31af7Sopenharmony_ci values {} 1286e5c31af7Sopenharmony_ci 1287e5c31af7Sopenharmony_ci vertex "" 1288e5c31af7Sopenharmony_ci #version 300 es 1289e5c31af7Sopenharmony_ci precision mediump float; 1290e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 1291e5c31af7Sopenharmony_ci 1292e5c31af7Sopenharmony_ci centroid out smooth lowp float x0; 1293e5c31af7Sopenharmony_ci 1294e5c31af7Sopenharmony_ci out flat mediump float x1; 1295e5c31af7Sopenharmony_ci 1296e5c31af7Sopenharmony_ci uniform highp float x2; 1297e5c31af7Sopenharmony_ci 1298e5c31af7Sopenharmony_ci void main() 1299e5c31af7Sopenharmony_ci { 1300e5c31af7Sopenharmony_ci x0 = 1.0; 1301e5c31af7Sopenharmony_ci x1 = 2.0; 1302e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 1303e5c31af7Sopenharmony_ci } 1304e5c31af7Sopenharmony_ci "" 1305e5c31af7Sopenharmony_ci 1306e5c31af7Sopenharmony_ci fragment "" 1307e5c31af7Sopenharmony_ci #version 300 es 1308e5c31af7Sopenharmony_ci precision mediump float; 1309e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 1310e5c31af7Sopenharmony_ci 1311e5c31af7Sopenharmony_ci centroid in smooth lowp float x0; 1312e5c31af7Sopenharmony_ci 1313e5c31af7Sopenharmony_ci in flat mediump float x1; 1314e5c31af7Sopenharmony_ci 1315e5c31af7Sopenharmony_ci uniform highp float x2; 1316e5c31af7Sopenharmony_ci 1317e5c31af7Sopenharmony_ci void main() 1318e5c31af7Sopenharmony_ci { 1319e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 1320e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 1321e5c31af7Sopenharmony_ci } 1322e5c31af7Sopenharmony_ci "" 1323e5c31af7Sopenharmony_ci end 1324e5c31af7Sopenharmony_ci case storage_precision_interp 1325e5c31af7Sopenharmony_ci expect compile_fail 1326e5c31af7Sopenharmony_ci values {} 1327e5c31af7Sopenharmony_ci 1328e5c31af7Sopenharmony_ci vertex "" 1329e5c31af7Sopenharmony_ci #version 300 es 1330e5c31af7Sopenharmony_ci precision mediump float; 1331e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 1332e5c31af7Sopenharmony_ci 1333e5c31af7Sopenharmony_ci centroid out lowp smooth float x0; 1334e5c31af7Sopenharmony_ci 1335e5c31af7Sopenharmony_ci out mediump flat float x1; 1336e5c31af7Sopenharmony_ci 1337e5c31af7Sopenharmony_ci uniform highp float x2; 1338e5c31af7Sopenharmony_ci 1339e5c31af7Sopenharmony_ci void main() 1340e5c31af7Sopenharmony_ci { 1341e5c31af7Sopenharmony_ci x0 = 1.0; 1342e5c31af7Sopenharmony_ci x1 = 2.0; 1343e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 1344e5c31af7Sopenharmony_ci } 1345e5c31af7Sopenharmony_ci "" 1346e5c31af7Sopenharmony_ci 1347e5c31af7Sopenharmony_ci fragment "" 1348e5c31af7Sopenharmony_ci #version 300 es 1349e5c31af7Sopenharmony_ci precision mediump float; 1350e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 1351e5c31af7Sopenharmony_ci 1352e5c31af7Sopenharmony_ci centroid in lowp smooth float x0; 1353e5c31af7Sopenharmony_ci 1354e5c31af7Sopenharmony_ci in mediump flat float x1; 1355e5c31af7Sopenharmony_ci 1356e5c31af7Sopenharmony_ci uniform highp float x2; 1357e5c31af7Sopenharmony_ci 1358e5c31af7Sopenharmony_ci void main() 1359e5c31af7Sopenharmony_ci { 1360e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 1361e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 1362e5c31af7Sopenharmony_ci } 1363e5c31af7Sopenharmony_ci "" 1364e5c31af7Sopenharmony_ci end 1365e5c31af7Sopenharmony_ci case precision_interp_storage 1366e5c31af7Sopenharmony_ci expect compile_fail 1367e5c31af7Sopenharmony_ci values {} 1368e5c31af7Sopenharmony_ci 1369e5c31af7Sopenharmony_ci vertex "" 1370e5c31af7Sopenharmony_ci #version 300 es 1371e5c31af7Sopenharmony_ci precision mediump float; 1372e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 1373e5c31af7Sopenharmony_ci 1374e5c31af7Sopenharmony_ci lowp smooth centroid out float x0; 1375e5c31af7Sopenharmony_ci 1376e5c31af7Sopenharmony_ci mediump flat out float x1; 1377e5c31af7Sopenharmony_ci 1378e5c31af7Sopenharmony_ci highp uniform float x2; 1379e5c31af7Sopenharmony_ci 1380e5c31af7Sopenharmony_ci void main() 1381e5c31af7Sopenharmony_ci { 1382e5c31af7Sopenharmony_ci x0 = 1.0; 1383e5c31af7Sopenharmony_ci x1 = 2.0; 1384e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 1385e5c31af7Sopenharmony_ci } 1386e5c31af7Sopenharmony_ci "" 1387e5c31af7Sopenharmony_ci 1388e5c31af7Sopenharmony_ci fragment "" 1389e5c31af7Sopenharmony_ci #version 300 es 1390e5c31af7Sopenharmony_ci precision mediump float; 1391e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 1392e5c31af7Sopenharmony_ci 1393e5c31af7Sopenharmony_ci lowp smooth centroid in float x0; 1394e5c31af7Sopenharmony_ci 1395e5c31af7Sopenharmony_ci mediump flat in float x1; 1396e5c31af7Sopenharmony_ci 1397e5c31af7Sopenharmony_ci highp uniform float x2; 1398e5c31af7Sopenharmony_ci 1399e5c31af7Sopenharmony_ci void main() 1400e5c31af7Sopenharmony_ci { 1401e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 1402e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 1403e5c31af7Sopenharmony_ci } 1404e5c31af7Sopenharmony_ci "" 1405e5c31af7Sopenharmony_ci end 1406e5c31af7Sopenharmony_ci case precision_storage_interp 1407e5c31af7Sopenharmony_ci expect compile_fail 1408e5c31af7Sopenharmony_ci values {} 1409e5c31af7Sopenharmony_ci 1410e5c31af7Sopenharmony_ci vertex "" 1411e5c31af7Sopenharmony_ci #version 300 es 1412e5c31af7Sopenharmony_ci precision mediump float; 1413e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 1414e5c31af7Sopenharmony_ci 1415e5c31af7Sopenharmony_ci lowp centroid out smooth float x0; 1416e5c31af7Sopenharmony_ci 1417e5c31af7Sopenharmony_ci mediump out flat float x1; 1418e5c31af7Sopenharmony_ci 1419e5c31af7Sopenharmony_ci highp uniform float x2; 1420e5c31af7Sopenharmony_ci 1421e5c31af7Sopenharmony_ci void main() 1422e5c31af7Sopenharmony_ci { 1423e5c31af7Sopenharmony_ci x0 = 1.0; 1424e5c31af7Sopenharmony_ci x1 = 2.0; 1425e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 1426e5c31af7Sopenharmony_ci } 1427e5c31af7Sopenharmony_ci "" 1428e5c31af7Sopenharmony_ci 1429e5c31af7Sopenharmony_ci fragment "" 1430e5c31af7Sopenharmony_ci #version 300 es 1431e5c31af7Sopenharmony_ci precision mediump float; 1432e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 1433e5c31af7Sopenharmony_ci 1434e5c31af7Sopenharmony_ci lowp centroid in smooth float x0; 1435e5c31af7Sopenharmony_ci 1436e5c31af7Sopenharmony_ci mediump in flat float x1; 1437e5c31af7Sopenharmony_ci 1438e5c31af7Sopenharmony_ci highp uniform float x2; 1439e5c31af7Sopenharmony_ci 1440e5c31af7Sopenharmony_ci void main() 1441e5c31af7Sopenharmony_ci { 1442e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 1443e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 1444e5c31af7Sopenharmony_ci } 1445e5c31af7Sopenharmony_ci "" 1446e5c31af7Sopenharmony_ci end 1447e5c31af7Sopenharmony_ci case invariant_storage_interp 1448e5c31af7Sopenharmony_ci expect compile_fail 1449e5c31af7Sopenharmony_ci values {} 1450e5c31af7Sopenharmony_ci 1451e5c31af7Sopenharmony_ci vertex "" 1452e5c31af7Sopenharmony_ci #version 300 es 1453e5c31af7Sopenharmony_ci precision mediump float; 1454e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 1455e5c31af7Sopenharmony_ci 1456e5c31af7Sopenharmony_ci invariant centroid out smooth float x0; 1457e5c31af7Sopenharmony_ci 1458e5c31af7Sopenharmony_ci out flat float x1; 1459e5c31af7Sopenharmony_ci 1460e5c31af7Sopenharmony_ci uniform float x2; 1461e5c31af7Sopenharmony_ci 1462e5c31af7Sopenharmony_ci void main() 1463e5c31af7Sopenharmony_ci { 1464e5c31af7Sopenharmony_ci x0 = 1.0; 1465e5c31af7Sopenharmony_ci x1 = 2.0; 1466e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 1467e5c31af7Sopenharmony_ci } 1468e5c31af7Sopenharmony_ci "" 1469e5c31af7Sopenharmony_ci 1470e5c31af7Sopenharmony_ci fragment "" 1471e5c31af7Sopenharmony_ci #version 300 es 1472e5c31af7Sopenharmony_ci precision mediump float; 1473e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 1474e5c31af7Sopenharmony_ci 1475e5c31af7Sopenharmony_ci centroid in smooth float x0; 1476e5c31af7Sopenharmony_ci 1477e5c31af7Sopenharmony_ci in flat float x1; 1478e5c31af7Sopenharmony_ci 1479e5c31af7Sopenharmony_ci uniform float x2; 1480e5c31af7Sopenharmony_ci 1481e5c31af7Sopenharmony_ci void main() 1482e5c31af7Sopenharmony_ci { 1483e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 1484e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 1485e5c31af7Sopenharmony_ci } 1486e5c31af7Sopenharmony_ci "" 1487e5c31af7Sopenharmony_ci end 1488e5c31af7Sopenharmony_ci case interp_invariant_storage 1489e5c31af7Sopenharmony_ci expect compile_fail 1490e5c31af7Sopenharmony_ci values {} 1491e5c31af7Sopenharmony_ci 1492e5c31af7Sopenharmony_ci vertex "" 1493e5c31af7Sopenharmony_ci #version 300 es 1494e5c31af7Sopenharmony_ci precision mediump float; 1495e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 1496e5c31af7Sopenharmony_ci 1497e5c31af7Sopenharmony_ci smooth invariant centroid out float x0; 1498e5c31af7Sopenharmony_ci 1499e5c31af7Sopenharmony_ci flat out float x1; 1500e5c31af7Sopenharmony_ci 1501e5c31af7Sopenharmony_ci uniform float x2; 1502e5c31af7Sopenharmony_ci 1503e5c31af7Sopenharmony_ci void main() 1504e5c31af7Sopenharmony_ci { 1505e5c31af7Sopenharmony_ci x0 = 1.0; 1506e5c31af7Sopenharmony_ci x1 = 2.0; 1507e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 1508e5c31af7Sopenharmony_ci } 1509e5c31af7Sopenharmony_ci "" 1510e5c31af7Sopenharmony_ci 1511e5c31af7Sopenharmony_ci fragment "" 1512e5c31af7Sopenharmony_ci #version 300 es 1513e5c31af7Sopenharmony_ci precision mediump float; 1514e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 1515e5c31af7Sopenharmony_ci 1516e5c31af7Sopenharmony_ci smooth centroid in float x0; 1517e5c31af7Sopenharmony_ci 1518e5c31af7Sopenharmony_ci flat in float x1; 1519e5c31af7Sopenharmony_ci 1520e5c31af7Sopenharmony_ci uniform float x2; 1521e5c31af7Sopenharmony_ci 1522e5c31af7Sopenharmony_ci void main() 1523e5c31af7Sopenharmony_ci { 1524e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 1525e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 1526e5c31af7Sopenharmony_ci } 1527e5c31af7Sopenharmony_ci "" 1528e5c31af7Sopenharmony_ci end 1529e5c31af7Sopenharmony_ci case interp_storage_invariant 1530e5c31af7Sopenharmony_ci expect compile_fail 1531e5c31af7Sopenharmony_ci values {} 1532e5c31af7Sopenharmony_ci 1533e5c31af7Sopenharmony_ci vertex "" 1534e5c31af7Sopenharmony_ci #version 300 es 1535e5c31af7Sopenharmony_ci precision mediump float; 1536e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 1537e5c31af7Sopenharmony_ci 1538e5c31af7Sopenharmony_ci smooth centroid out invariant float x0; 1539e5c31af7Sopenharmony_ci 1540e5c31af7Sopenharmony_ci flat out float x1; 1541e5c31af7Sopenharmony_ci 1542e5c31af7Sopenharmony_ci uniform float x2; 1543e5c31af7Sopenharmony_ci 1544e5c31af7Sopenharmony_ci void main() 1545e5c31af7Sopenharmony_ci { 1546e5c31af7Sopenharmony_ci x0 = 1.0; 1547e5c31af7Sopenharmony_ci x1 = 2.0; 1548e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 1549e5c31af7Sopenharmony_ci } 1550e5c31af7Sopenharmony_ci "" 1551e5c31af7Sopenharmony_ci 1552e5c31af7Sopenharmony_ci fragment "" 1553e5c31af7Sopenharmony_ci #version 300 es 1554e5c31af7Sopenharmony_ci precision mediump float; 1555e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 1556e5c31af7Sopenharmony_ci 1557e5c31af7Sopenharmony_ci smooth centroid in float x0; 1558e5c31af7Sopenharmony_ci 1559e5c31af7Sopenharmony_ci flat in float x1; 1560e5c31af7Sopenharmony_ci 1561e5c31af7Sopenharmony_ci uniform float x2; 1562e5c31af7Sopenharmony_ci 1563e5c31af7Sopenharmony_ci void main() 1564e5c31af7Sopenharmony_ci { 1565e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 1566e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 1567e5c31af7Sopenharmony_ci } 1568e5c31af7Sopenharmony_ci "" 1569e5c31af7Sopenharmony_ci end 1570e5c31af7Sopenharmony_ci case storage_invariant_interp 1571e5c31af7Sopenharmony_ci expect compile_fail 1572e5c31af7Sopenharmony_ci values {} 1573e5c31af7Sopenharmony_ci 1574e5c31af7Sopenharmony_ci vertex "" 1575e5c31af7Sopenharmony_ci #version 300 es 1576e5c31af7Sopenharmony_ci precision mediump float; 1577e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 1578e5c31af7Sopenharmony_ci 1579e5c31af7Sopenharmony_ci centroid out invariant smooth float x0; 1580e5c31af7Sopenharmony_ci 1581e5c31af7Sopenharmony_ci out flat float x1; 1582e5c31af7Sopenharmony_ci 1583e5c31af7Sopenharmony_ci uniform float x2; 1584e5c31af7Sopenharmony_ci 1585e5c31af7Sopenharmony_ci void main() 1586e5c31af7Sopenharmony_ci { 1587e5c31af7Sopenharmony_ci x0 = 1.0; 1588e5c31af7Sopenharmony_ci x1 = 2.0; 1589e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 1590e5c31af7Sopenharmony_ci } 1591e5c31af7Sopenharmony_ci "" 1592e5c31af7Sopenharmony_ci 1593e5c31af7Sopenharmony_ci fragment "" 1594e5c31af7Sopenharmony_ci #version 300 es 1595e5c31af7Sopenharmony_ci precision mediump float; 1596e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 1597e5c31af7Sopenharmony_ci 1598e5c31af7Sopenharmony_ci centroid in smooth float x0; 1599e5c31af7Sopenharmony_ci 1600e5c31af7Sopenharmony_ci in flat float x1; 1601e5c31af7Sopenharmony_ci 1602e5c31af7Sopenharmony_ci uniform float x2; 1603e5c31af7Sopenharmony_ci 1604e5c31af7Sopenharmony_ci void main() 1605e5c31af7Sopenharmony_ci { 1606e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 1607e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 1608e5c31af7Sopenharmony_ci } 1609e5c31af7Sopenharmony_ci "" 1610e5c31af7Sopenharmony_ci end 1611e5c31af7Sopenharmony_ci case storage_interp_invariant 1612e5c31af7Sopenharmony_ci expect compile_fail 1613e5c31af7Sopenharmony_ci values {} 1614e5c31af7Sopenharmony_ci 1615e5c31af7Sopenharmony_ci vertex "" 1616e5c31af7Sopenharmony_ci #version 300 es 1617e5c31af7Sopenharmony_ci precision mediump float; 1618e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 1619e5c31af7Sopenharmony_ci 1620e5c31af7Sopenharmony_ci centroid out smooth invariant float x0; 1621e5c31af7Sopenharmony_ci 1622e5c31af7Sopenharmony_ci out flat float x1; 1623e5c31af7Sopenharmony_ci 1624e5c31af7Sopenharmony_ci uniform float x2; 1625e5c31af7Sopenharmony_ci 1626e5c31af7Sopenharmony_ci void main() 1627e5c31af7Sopenharmony_ci { 1628e5c31af7Sopenharmony_ci x0 = 1.0; 1629e5c31af7Sopenharmony_ci x1 = 2.0; 1630e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 1631e5c31af7Sopenharmony_ci } 1632e5c31af7Sopenharmony_ci "" 1633e5c31af7Sopenharmony_ci 1634e5c31af7Sopenharmony_ci fragment "" 1635e5c31af7Sopenharmony_ci #version 300 es 1636e5c31af7Sopenharmony_ci precision mediump float; 1637e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 1638e5c31af7Sopenharmony_ci 1639e5c31af7Sopenharmony_ci centroid in smooth float x0; 1640e5c31af7Sopenharmony_ci 1641e5c31af7Sopenharmony_ci in flat float x1; 1642e5c31af7Sopenharmony_ci 1643e5c31af7Sopenharmony_ci uniform float x2; 1644e5c31af7Sopenharmony_ci 1645e5c31af7Sopenharmony_ci void main() 1646e5c31af7Sopenharmony_ci { 1647e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 1648e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 1649e5c31af7Sopenharmony_ci } 1650e5c31af7Sopenharmony_ci "" 1651e5c31af7Sopenharmony_ci end 1652e5c31af7Sopenharmony_ci case invariant_precision_storage 1653e5c31af7Sopenharmony_ci expect compile_fail 1654e5c31af7Sopenharmony_ci values {} 1655e5c31af7Sopenharmony_ci 1656e5c31af7Sopenharmony_ci vertex "" 1657e5c31af7Sopenharmony_ci #version 300 es 1658e5c31af7Sopenharmony_ci precision mediump float; 1659e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 1660e5c31af7Sopenharmony_ci 1661e5c31af7Sopenharmony_ci invariant lowp centroid out float x0; 1662e5c31af7Sopenharmony_ci 1663e5c31af7Sopenharmony_ci mediump out float x1; 1664e5c31af7Sopenharmony_ci 1665e5c31af7Sopenharmony_ci highp uniform float x2; 1666e5c31af7Sopenharmony_ci 1667e5c31af7Sopenharmony_ci void main() 1668e5c31af7Sopenharmony_ci { 1669e5c31af7Sopenharmony_ci x0 = 1.0; 1670e5c31af7Sopenharmony_ci x1 = 2.0; 1671e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 1672e5c31af7Sopenharmony_ci } 1673e5c31af7Sopenharmony_ci "" 1674e5c31af7Sopenharmony_ci 1675e5c31af7Sopenharmony_ci fragment "" 1676e5c31af7Sopenharmony_ci #version 300 es 1677e5c31af7Sopenharmony_ci precision mediump float; 1678e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 1679e5c31af7Sopenharmony_ci 1680e5c31af7Sopenharmony_ci lowp centroid in float x0; 1681e5c31af7Sopenharmony_ci 1682e5c31af7Sopenharmony_ci mediump in float x1; 1683e5c31af7Sopenharmony_ci 1684e5c31af7Sopenharmony_ci highp uniform float x2; 1685e5c31af7Sopenharmony_ci 1686e5c31af7Sopenharmony_ci void main() 1687e5c31af7Sopenharmony_ci { 1688e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 1689e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 1690e5c31af7Sopenharmony_ci } 1691e5c31af7Sopenharmony_ci "" 1692e5c31af7Sopenharmony_ci end 1693e5c31af7Sopenharmony_ci case storage_invariant_precision 1694e5c31af7Sopenharmony_ci expect compile_fail 1695e5c31af7Sopenharmony_ci values {} 1696e5c31af7Sopenharmony_ci 1697e5c31af7Sopenharmony_ci vertex "" 1698e5c31af7Sopenharmony_ci #version 300 es 1699e5c31af7Sopenharmony_ci precision mediump float; 1700e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 1701e5c31af7Sopenharmony_ci 1702e5c31af7Sopenharmony_ci centroid out invariant lowp float x0; 1703e5c31af7Sopenharmony_ci 1704e5c31af7Sopenharmony_ci out mediump float x1; 1705e5c31af7Sopenharmony_ci 1706e5c31af7Sopenharmony_ci uniform highp float x2; 1707e5c31af7Sopenharmony_ci 1708e5c31af7Sopenharmony_ci void main() 1709e5c31af7Sopenharmony_ci { 1710e5c31af7Sopenharmony_ci x0 = 1.0; 1711e5c31af7Sopenharmony_ci x1 = 2.0; 1712e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 1713e5c31af7Sopenharmony_ci } 1714e5c31af7Sopenharmony_ci "" 1715e5c31af7Sopenharmony_ci 1716e5c31af7Sopenharmony_ci fragment "" 1717e5c31af7Sopenharmony_ci #version 300 es 1718e5c31af7Sopenharmony_ci precision mediump float; 1719e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 1720e5c31af7Sopenharmony_ci 1721e5c31af7Sopenharmony_ci centroid in lowp float x0; 1722e5c31af7Sopenharmony_ci 1723e5c31af7Sopenharmony_ci in mediump float x1; 1724e5c31af7Sopenharmony_ci 1725e5c31af7Sopenharmony_ci uniform highp float x2; 1726e5c31af7Sopenharmony_ci 1727e5c31af7Sopenharmony_ci void main() 1728e5c31af7Sopenharmony_ci { 1729e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 1730e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 1731e5c31af7Sopenharmony_ci } 1732e5c31af7Sopenharmony_ci "" 1733e5c31af7Sopenharmony_ci end 1734e5c31af7Sopenharmony_ci case storage_precision_invariant 1735e5c31af7Sopenharmony_ci expect compile_fail 1736e5c31af7Sopenharmony_ci values {} 1737e5c31af7Sopenharmony_ci 1738e5c31af7Sopenharmony_ci vertex "" 1739e5c31af7Sopenharmony_ci #version 300 es 1740e5c31af7Sopenharmony_ci precision mediump float; 1741e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 1742e5c31af7Sopenharmony_ci 1743e5c31af7Sopenharmony_ci centroid out lowp invariant float x0; 1744e5c31af7Sopenharmony_ci 1745e5c31af7Sopenharmony_ci out mediump float x1; 1746e5c31af7Sopenharmony_ci 1747e5c31af7Sopenharmony_ci uniform highp float x2; 1748e5c31af7Sopenharmony_ci 1749e5c31af7Sopenharmony_ci void main() 1750e5c31af7Sopenharmony_ci { 1751e5c31af7Sopenharmony_ci x0 = 1.0; 1752e5c31af7Sopenharmony_ci x1 = 2.0; 1753e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 1754e5c31af7Sopenharmony_ci } 1755e5c31af7Sopenharmony_ci "" 1756e5c31af7Sopenharmony_ci 1757e5c31af7Sopenharmony_ci fragment "" 1758e5c31af7Sopenharmony_ci #version 300 es 1759e5c31af7Sopenharmony_ci precision mediump float; 1760e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 1761e5c31af7Sopenharmony_ci 1762e5c31af7Sopenharmony_ci centroid in lowp float x0; 1763e5c31af7Sopenharmony_ci 1764e5c31af7Sopenharmony_ci in mediump float x1; 1765e5c31af7Sopenharmony_ci 1766e5c31af7Sopenharmony_ci uniform highp float x2; 1767e5c31af7Sopenharmony_ci 1768e5c31af7Sopenharmony_ci void main() 1769e5c31af7Sopenharmony_ci { 1770e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 1771e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 1772e5c31af7Sopenharmony_ci } 1773e5c31af7Sopenharmony_ci "" 1774e5c31af7Sopenharmony_ci end 1775e5c31af7Sopenharmony_ci case precision_invariant_storage 1776e5c31af7Sopenharmony_ci expect compile_fail 1777e5c31af7Sopenharmony_ci values {} 1778e5c31af7Sopenharmony_ci 1779e5c31af7Sopenharmony_ci vertex "" 1780e5c31af7Sopenharmony_ci #version 300 es 1781e5c31af7Sopenharmony_ci precision mediump float; 1782e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 1783e5c31af7Sopenharmony_ci 1784e5c31af7Sopenharmony_ci lowp invariant centroid out float x0; 1785e5c31af7Sopenharmony_ci 1786e5c31af7Sopenharmony_ci mediump out float x1; 1787e5c31af7Sopenharmony_ci 1788e5c31af7Sopenharmony_ci highp uniform float x2; 1789e5c31af7Sopenharmony_ci 1790e5c31af7Sopenharmony_ci void main() 1791e5c31af7Sopenharmony_ci { 1792e5c31af7Sopenharmony_ci x0 = 1.0; 1793e5c31af7Sopenharmony_ci x1 = 2.0; 1794e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 1795e5c31af7Sopenharmony_ci } 1796e5c31af7Sopenharmony_ci "" 1797e5c31af7Sopenharmony_ci 1798e5c31af7Sopenharmony_ci fragment "" 1799e5c31af7Sopenharmony_ci #version 300 es 1800e5c31af7Sopenharmony_ci precision mediump float; 1801e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 1802e5c31af7Sopenharmony_ci 1803e5c31af7Sopenharmony_ci lowp centroid in float x0; 1804e5c31af7Sopenharmony_ci 1805e5c31af7Sopenharmony_ci mediump in float x1; 1806e5c31af7Sopenharmony_ci 1807e5c31af7Sopenharmony_ci highp uniform float x2; 1808e5c31af7Sopenharmony_ci 1809e5c31af7Sopenharmony_ci void main() 1810e5c31af7Sopenharmony_ci { 1811e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 1812e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 1813e5c31af7Sopenharmony_ci } 1814e5c31af7Sopenharmony_ci "" 1815e5c31af7Sopenharmony_ci end 1816e5c31af7Sopenharmony_ci case precision_storage_invariant 1817e5c31af7Sopenharmony_ci expect compile_fail 1818e5c31af7Sopenharmony_ci values {} 1819e5c31af7Sopenharmony_ci 1820e5c31af7Sopenharmony_ci vertex "" 1821e5c31af7Sopenharmony_ci #version 300 es 1822e5c31af7Sopenharmony_ci precision mediump float; 1823e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 1824e5c31af7Sopenharmony_ci 1825e5c31af7Sopenharmony_ci lowp centroid out invariant float x0; 1826e5c31af7Sopenharmony_ci 1827e5c31af7Sopenharmony_ci mediump out float x1; 1828e5c31af7Sopenharmony_ci 1829e5c31af7Sopenharmony_ci highp uniform float x2; 1830e5c31af7Sopenharmony_ci 1831e5c31af7Sopenharmony_ci void main() 1832e5c31af7Sopenharmony_ci { 1833e5c31af7Sopenharmony_ci x0 = 1.0; 1834e5c31af7Sopenharmony_ci x1 = 2.0; 1835e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 1836e5c31af7Sopenharmony_ci } 1837e5c31af7Sopenharmony_ci "" 1838e5c31af7Sopenharmony_ci 1839e5c31af7Sopenharmony_ci fragment "" 1840e5c31af7Sopenharmony_ci #version 300 es 1841e5c31af7Sopenharmony_ci precision mediump float; 1842e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 1843e5c31af7Sopenharmony_ci 1844e5c31af7Sopenharmony_ci lowp centroid in float x0; 1845e5c31af7Sopenharmony_ci 1846e5c31af7Sopenharmony_ci mediump in float x1; 1847e5c31af7Sopenharmony_ci 1848e5c31af7Sopenharmony_ci highp uniform float x2; 1849e5c31af7Sopenharmony_ci 1850e5c31af7Sopenharmony_ci void main() 1851e5c31af7Sopenharmony_ci { 1852e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 1853e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 1854e5c31af7Sopenharmony_ci } 1855e5c31af7Sopenharmony_ci "" 1856e5c31af7Sopenharmony_ci end 1857e5c31af7Sopenharmony_ci case precision_storage 1858e5c31af7Sopenharmony_ci expect compile_fail 1859e5c31af7Sopenharmony_ci values {} 1860e5c31af7Sopenharmony_ci 1861e5c31af7Sopenharmony_ci vertex "" 1862e5c31af7Sopenharmony_ci #version 300 es 1863e5c31af7Sopenharmony_ci precision mediump float; 1864e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 1865e5c31af7Sopenharmony_ci 1866e5c31af7Sopenharmony_ci lowp centroid out float x0; 1867e5c31af7Sopenharmony_ci 1868e5c31af7Sopenharmony_ci mediump out float x1; 1869e5c31af7Sopenharmony_ci 1870e5c31af7Sopenharmony_ci highp uniform float x2; 1871e5c31af7Sopenharmony_ci 1872e5c31af7Sopenharmony_ci void main() 1873e5c31af7Sopenharmony_ci { 1874e5c31af7Sopenharmony_ci x0 = 1.0; 1875e5c31af7Sopenharmony_ci x1 = 2.0; 1876e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 1877e5c31af7Sopenharmony_ci } 1878e5c31af7Sopenharmony_ci "" 1879e5c31af7Sopenharmony_ci 1880e5c31af7Sopenharmony_ci fragment "" 1881e5c31af7Sopenharmony_ci #version 300 es 1882e5c31af7Sopenharmony_ci precision mediump float; 1883e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 1884e5c31af7Sopenharmony_ci 1885e5c31af7Sopenharmony_ci lowp centroid in float x0; 1886e5c31af7Sopenharmony_ci 1887e5c31af7Sopenharmony_ci mediump in float x1; 1888e5c31af7Sopenharmony_ci 1889e5c31af7Sopenharmony_ci highp uniform float x2; 1890e5c31af7Sopenharmony_ci 1891e5c31af7Sopenharmony_ci void main() 1892e5c31af7Sopenharmony_ci { 1893e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 1894e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 1895e5c31af7Sopenharmony_ci } 1896e5c31af7Sopenharmony_ci "" 1897e5c31af7Sopenharmony_ci end 1898e5c31af7Sopenharmony_ci case storage_interp 1899e5c31af7Sopenharmony_ci expect compile_fail 1900e5c31af7Sopenharmony_ci values {} 1901e5c31af7Sopenharmony_ci 1902e5c31af7Sopenharmony_ci vertex "" 1903e5c31af7Sopenharmony_ci #version 300 es 1904e5c31af7Sopenharmony_ci precision mediump float; 1905e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 1906e5c31af7Sopenharmony_ci 1907e5c31af7Sopenharmony_ci centroid out smooth float x0; 1908e5c31af7Sopenharmony_ci 1909e5c31af7Sopenharmony_ci out flat float x1; 1910e5c31af7Sopenharmony_ci 1911e5c31af7Sopenharmony_ci uniform float x2; 1912e5c31af7Sopenharmony_ci 1913e5c31af7Sopenharmony_ci void main() 1914e5c31af7Sopenharmony_ci { 1915e5c31af7Sopenharmony_ci x0 = 1.0; 1916e5c31af7Sopenharmony_ci x1 = 2.0; 1917e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 1918e5c31af7Sopenharmony_ci } 1919e5c31af7Sopenharmony_ci "" 1920e5c31af7Sopenharmony_ci 1921e5c31af7Sopenharmony_ci fragment "" 1922e5c31af7Sopenharmony_ci #version 300 es 1923e5c31af7Sopenharmony_ci precision mediump float; 1924e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 1925e5c31af7Sopenharmony_ci 1926e5c31af7Sopenharmony_ci centroid in smooth float x0; 1927e5c31af7Sopenharmony_ci 1928e5c31af7Sopenharmony_ci in flat float x1; 1929e5c31af7Sopenharmony_ci 1930e5c31af7Sopenharmony_ci uniform float x2; 1931e5c31af7Sopenharmony_ci 1932e5c31af7Sopenharmony_ci void main() 1933e5c31af7Sopenharmony_ci { 1934e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 1935e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 1936e5c31af7Sopenharmony_ci } 1937e5c31af7Sopenharmony_ci "" 1938e5c31af7Sopenharmony_ci end 1939e5c31af7Sopenharmony_ci case storage_invariant 1940e5c31af7Sopenharmony_ci expect compile_fail 1941e5c31af7Sopenharmony_ci values {} 1942e5c31af7Sopenharmony_ci 1943e5c31af7Sopenharmony_ci vertex "" 1944e5c31af7Sopenharmony_ci #version 300 es 1945e5c31af7Sopenharmony_ci precision mediump float; 1946e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 1947e5c31af7Sopenharmony_ci 1948e5c31af7Sopenharmony_ci centroid out invariant float x0; 1949e5c31af7Sopenharmony_ci 1950e5c31af7Sopenharmony_ci out float x1; 1951e5c31af7Sopenharmony_ci 1952e5c31af7Sopenharmony_ci uniform float x2; 1953e5c31af7Sopenharmony_ci 1954e5c31af7Sopenharmony_ci void main() 1955e5c31af7Sopenharmony_ci { 1956e5c31af7Sopenharmony_ci x0 = 1.0; 1957e5c31af7Sopenharmony_ci x1 = 2.0; 1958e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 1959e5c31af7Sopenharmony_ci } 1960e5c31af7Sopenharmony_ci "" 1961e5c31af7Sopenharmony_ci 1962e5c31af7Sopenharmony_ci fragment "" 1963e5c31af7Sopenharmony_ci #version 300 es 1964e5c31af7Sopenharmony_ci precision mediump float; 1965e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 1966e5c31af7Sopenharmony_ci 1967e5c31af7Sopenharmony_ci centroid in float x0; 1968e5c31af7Sopenharmony_ci 1969e5c31af7Sopenharmony_ci in float x1; 1970e5c31af7Sopenharmony_ci 1971e5c31af7Sopenharmony_ci uniform float x2; 1972e5c31af7Sopenharmony_ci 1973e5c31af7Sopenharmony_ci void main() 1974e5c31af7Sopenharmony_ci { 1975e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 1976e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 1977e5c31af7Sopenharmony_ci } 1978e5c31af7Sopenharmony_ci "" 1979e5c31af7Sopenharmony_ci end 1980e5c31af7Sopenharmony_ci case invariant_interp_storage_precision_invariant_input 1981e5c31af7Sopenharmony_ci expect compile_fail 1982e5c31af7Sopenharmony_ci values {} 1983e5c31af7Sopenharmony_ci 1984e5c31af7Sopenharmony_ci vertex "" 1985e5c31af7Sopenharmony_ci #version 300 es 1986e5c31af7Sopenharmony_ci precision mediump float; 1987e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 1988e5c31af7Sopenharmony_ci 1989e5c31af7Sopenharmony_ci invariant smooth centroid out lowp float x0; 1990e5c31af7Sopenharmony_ci 1991e5c31af7Sopenharmony_ci flat out mediump float x1; 1992e5c31af7Sopenharmony_ci 1993e5c31af7Sopenharmony_ci uniform highp float x2; 1994e5c31af7Sopenharmony_ci 1995e5c31af7Sopenharmony_ci void main() 1996e5c31af7Sopenharmony_ci { 1997e5c31af7Sopenharmony_ci x0 = 1.0; 1998e5c31af7Sopenharmony_ci x1 = 2.0; 1999e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 2000e5c31af7Sopenharmony_ci } 2001e5c31af7Sopenharmony_ci "" 2002e5c31af7Sopenharmony_ci 2003e5c31af7Sopenharmony_ci fragment "" 2004e5c31af7Sopenharmony_ci #version 300 es 2005e5c31af7Sopenharmony_ci precision mediump float; 2006e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 2007e5c31af7Sopenharmony_ci 2008e5c31af7Sopenharmony_ci invariant smooth centroid in lowp float x0; 2009e5c31af7Sopenharmony_ci 2010e5c31af7Sopenharmony_ci flat in mediump float x1; 2011e5c31af7Sopenharmony_ci 2012e5c31af7Sopenharmony_ci uniform highp float x2; 2013e5c31af7Sopenharmony_ci 2014e5c31af7Sopenharmony_ci void main() 2015e5c31af7Sopenharmony_ci { 2016e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 2017e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 2018e5c31af7Sopenharmony_ci } 2019e5c31af7Sopenharmony_ci "" 2020e5c31af7Sopenharmony_ci end 2021e5c31af7Sopenharmony_ci case interp_storage_precision_invariant_input 2022e5c31af7Sopenharmony_ci expect compile_fail 2023e5c31af7Sopenharmony_ci values {} 2024e5c31af7Sopenharmony_ci 2025e5c31af7Sopenharmony_ci vertex "" 2026e5c31af7Sopenharmony_ci #version 300 es 2027e5c31af7Sopenharmony_ci precision mediump float; 2028e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 2029e5c31af7Sopenharmony_ci 2030e5c31af7Sopenharmony_ci smooth centroid out lowp float x0; 2031e5c31af7Sopenharmony_ci 2032e5c31af7Sopenharmony_ci flat out mediump float x1; 2033e5c31af7Sopenharmony_ci 2034e5c31af7Sopenharmony_ci uniform highp float x2; 2035e5c31af7Sopenharmony_ci 2036e5c31af7Sopenharmony_ci void main() 2037e5c31af7Sopenharmony_ci { 2038e5c31af7Sopenharmony_ci x0 = 1.0; 2039e5c31af7Sopenharmony_ci x1 = 2.0; 2040e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 2041e5c31af7Sopenharmony_ci } 2042e5c31af7Sopenharmony_ci "" 2043e5c31af7Sopenharmony_ci 2044e5c31af7Sopenharmony_ci fragment "" 2045e5c31af7Sopenharmony_ci #version 300 es 2046e5c31af7Sopenharmony_ci precision mediump float; 2047e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 2048e5c31af7Sopenharmony_ci 2049e5c31af7Sopenharmony_ci invariant smooth centroid in lowp float x0; 2050e5c31af7Sopenharmony_ci 2051e5c31af7Sopenharmony_ci flat in mediump float x1; 2052e5c31af7Sopenharmony_ci 2053e5c31af7Sopenharmony_ci uniform highp float x2; 2054e5c31af7Sopenharmony_ci 2055e5c31af7Sopenharmony_ci void main() 2056e5c31af7Sopenharmony_ci { 2057e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 2058e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 2059e5c31af7Sopenharmony_ci } 2060e5c31af7Sopenharmony_ci "" 2061e5c31af7Sopenharmony_ci end 2062e5c31af7Sopenharmony_ci case invariant_interp_storage_invariant_input 2063e5c31af7Sopenharmony_ci expect compile_fail 2064e5c31af7Sopenharmony_ci values {} 2065e5c31af7Sopenharmony_ci 2066e5c31af7Sopenharmony_ci vertex "" 2067e5c31af7Sopenharmony_ci #version 300 es 2068e5c31af7Sopenharmony_ci precision mediump float; 2069e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 2070e5c31af7Sopenharmony_ci 2071e5c31af7Sopenharmony_ci invariant smooth centroid out float x0; 2072e5c31af7Sopenharmony_ci 2073e5c31af7Sopenharmony_ci flat out float x1; 2074e5c31af7Sopenharmony_ci 2075e5c31af7Sopenharmony_ci uniform float x2; 2076e5c31af7Sopenharmony_ci 2077e5c31af7Sopenharmony_ci void main() 2078e5c31af7Sopenharmony_ci { 2079e5c31af7Sopenharmony_ci x0 = 1.0; 2080e5c31af7Sopenharmony_ci x1 = 2.0; 2081e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 2082e5c31af7Sopenharmony_ci } 2083e5c31af7Sopenharmony_ci "" 2084e5c31af7Sopenharmony_ci 2085e5c31af7Sopenharmony_ci fragment "" 2086e5c31af7Sopenharmony_ci #version 300 es 2087e5c31af7Sopenharmony_ci precision mediump float; 2088e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 2089e5c31af7Sopenharmony_ci 2090e5c31af7Sopenharmony_ci invariant smooth centroid in float x0; 2091e5c31af7Sopenharmony_ci 2092e5c31af7Sopenharmony_ci flat in float x1; 2093e5c31af7Sopenharmony_ci 2094e5c31af7Sopenharmony_ci uniform float x2; 2095e5c31af7Sopenharmony_ci 2096e5c31af7Sopenharmony_ci void main() 2097e5c31af7Sopenharmony_ci { 2098e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 2099e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 2100e5c31af7Sopenharmony_ci } 2101e5c31af7Sopenharmony_ci "" 2102e5c31af7Sopenharmony_ci end 2103e5c31af7Sopenharmony_ci case invariant_storage_precision_invariant_input 2104e5c31af7Sopenharmony_ci expect compile_fail 2105e5c31af7Sopenharmony_ci values {} 2106e5c31af7Sopenharmony_ci 2107e5c31af7Sopenharmony_ci vertex "" 2108e5c31af7Sopenharmony_ci #version 300 es 2109e5c31af7Sopenharmony_ci precision mediump float; 2110e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 2111e5c31af7Sopenharmony_ci 2112e5c31af7Sopenharmony_ci invariant centroid out lowp float x0; 2113e5c31af7Sopenharmony_ci 2114e5c31af7Sopenharmony_ci out mediump float x1; 2115e5c31af7Sopenharmony_ci 2116e5c31af7Sopenharmony_ci uniform highp float x2; 2117e5c31af7Sopenharmony_ci 2118e5c31af7Sopenharmony_ci void main() 2119e5c31af7Sopenharmony_ci { 2120e5c31af7Sopenharmony_ci x0 = 1.0; 2121e5c31af7Sopenharmony_ci x1 = 2.0; 2122e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 2123e5c31af7Sopenharmony_ci } 2124e5c31af7Sopenharmony_ci "" 2125e5c31af7Sopenharmony_ci 2126e5c31af7Sopenharmony_ci fragment "" 2127e5c31af7Sopenharmony_ci #version 300 es 2128e5c31af7Sopenharmony_ci precision mediump float; 2129e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 2130e5c31af7Sopenharmony_ci 2131e5c31af7Sopenharmony_ci invariant centroid in lowp float x0; 2132e5c31af7Sopenharmony_ci 2133e5c31af7Sopenharmony_ci in mediump float x1; 2134e5c31af7Sopenharmony_ci 2135e5c31af7Sopenharmony_ci uniform highp float x2; 2136e5c31af7Sopenharmony_ci 2137e5c31af7Sopenharmony_ci void main() 2138e5c31af7Sopenharmony_ci { 2139e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 2140e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 2141e5c31af7Sopenharmony_ci } 2142e5c31af7Sopenharmony_ci "" 2143e5c31af7Sopenharmony_ci end 2144e5c31af7Sopenharmony_ci case storage_precision_invariant_input 2145e5c31af7Sopenharmony_ci expect compile_fail 2146e5c31af7Sopenharmony_ci values {} 2147e5c31af7Sopenharmony_ci 2148e5c31af7Sopenharmony_ci vertex "" 2149e5c31af7Sopenharmony_ci #version 300 es 2150e5c31af7Sopenharmony_ci precision mediump float; 2151e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 2152e5c31af7Sopenharmony_ci 2153e5c31af7Sopenharmony_ci centroid out lowp float x0; 2154e5c31af7Sopenharmony_ci 2155e5c31af7Sopenharmony_ci out mediump float x1; 2156e5c31af7Sopenharmony_ci 2157e5c31af7Sopenharmony_ci uniform highp float x2; 2158e5c31af7Sopenharmony_ci 2159e5c31af7Sopenharmony_ci void main() 2160e5c31af7Sopenharmony_ci { 2161e5c31af7Sopenharmony_ci x0 = 1.0; 2162e5c31af7Sopenharmony_ci x1 = 2.0; 2163e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 2164e5c31af7Sopenharmony_ci } 2165e5c31af7Sopenharmony_ci "" 2166e5c31af7Sopenharmony_ci 2167e5c31af7Sopenharmony_ci fragment "" 2168e5c31af7Sopenharmony_ci #version 300 es 2169e5c31af7Sopenharmony_ci precision mediump float; 2170e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 2171e5c31af7Sopenharmony_ci 2172e5c31af7Sopenharmony_ci invariant centroid in lowp float x0; 2173e5c31af7Sopenharmony_ci 2174e5c31af7Sopenharmony_ci in mediump float x1; 2175e5c31af7Sopenharmony_ci 2176e5c31af7Sopenharmony_ci uniform highp float x2; 2177e5c31af7Sopenharmony_ci 2178e5c31af7Sopenharmony_ci void main() 2179e5c31af7Sopenharmony_ci { 2180e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 2181e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 2182e5c31af7Sopenharmony_ci } 2183e5c31af7Sopenharmony_ci "" 2184e5c31af7Sopenharmony_ci end 2185e5c31af7Sopenharmony_ci case interp_storage_invariant_input 2186e5c31af7Sopenharmony_ci expect compile_fail 2187e5c31af7Sopenharmony_ci values {} 2188e5c31af7Sopenharmony_ci 2189e5c31af7Sopenharmony_ci vertex "" 2190e5c31af7Sopenharmony_ci #version 300 es 2191e5c31af7Sopenharmony_ci precision mediump float; 2192e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 2193e5c31af7Sopenharmony_ci 2194e5c31af7Sopenharmony_ci smooth centroid out float x0; 2195e5c31af7Sopenharmony_ci 2196e5c31af7Sopenharmony_ci flat out float x1; 2197e5c31af7Sopenharmony_ci 2198e5c31af7Sopenharmony_ci uniform float x2; 2199e5c31af7Sopenharmony_ci 2200e5c31af7Sopenharmony_ci void main() 2201e5c31af7Sopenharmony_ci { 2202e5c31af7Sopenharmony_ci x0 = 1.0; 2203e5c31af7Sopenharmony_ci x1 = 2.0; 2204e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 2205e5c31af7Sopenharmony_ci } 2206e5c31af7Sopenharmony_ci "" 2207e5c31af7Sopenharmony_ci 2208e5c31af7Sopenharmony_ci fragment "" 2209e5c31af7Sopenharmony_ci #version 300 es 2210e5c31af7Sopenharmony_ci precision mediump float; 2211e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 2212e5c31af7Sopenharmony_ci 2213e5c31af7Sopenharmony_ci invariant smooth centroid in float x0; 2214e5c31af7Sopenharmony_ci 2215e5c31af7Sopenharmony_ci flat in float x1; 2216e5c31af7Sopenharmony_ci 2217e5c31af7Sopenharmony_ci uniform float x2; 2218e5c31af7Sopenharmony_ci 2219e5c31af7Sopenharmony_ci void main() 2220e5c31af7Sopenharmony_ci { 2221e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 2222e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 2223e5c31af7Sopenharmony_ci } 2224e5c31af7Sopenharmony_ci "" 2225e5c31af7Sopenharmony_ci end 2226e5c31af7Sopenharmony_ci case invariant_storage_invariant_input 2227e5c31af7Sopenharmony_ci expect compile_fail 2228e5c31af7Sopenharmony_ci values {} 2229e5c31af7Sopenharmony_ci 2230e5c31af7Sopenharmony_ci vertex "" 2231e5c31af7Sopenharmony_ci #version 300 es 2232e5c31af7Sopenharmony_ci precision mediump float; 2233e5c31af7Sopenharmony_ci in highp vec4 dEQP_Position; 2234e5c31af7Sopenharmony_ci 2235e5c31af7Sopenharmony_ci invariant centroid out float x0; 2236e5c31af7Sopenharmony_ci 2237e5c31af7Sopenharmony_ci out float x1; 2238e5c31af7Sopenharmony_ci 2239e5c31af7Sopenharmony_ci uniform float x2; 2240e5c31af7Sopenharmony_ci 2241e5c31af7Sopenharmony_ci void main() 2242e5c31af7Sopenharmony_ci { 2243e5c31af7Sopenharmony_ci x0 = 1.0; 2244e5c31af7Sopenharmony_ci x1 = 2.0; 2245e5c31af7Sopenharmony_ci gl_Position = dEQP_Position; 2246e5c31af7Sopenharmony_ci } 2247e5c31af7Sopenharmony_ci "" 2248e5c31af7Sopenharmony_ci 2249e5c31af7Sopenharmony_ci fragment "" 2250e5c31af7Sopenharmony_ci #version 300 es 2251e5c31af7Sopenharmony_ci precision mediump float; 2252e5c31af7Sopenharmony_ci layout(location = 0) out mediump vec4 dEQP_FragColor; 2253e5c31af7Sopenharmony_ci 2254e5c31af7Sopenharmony_ci invariant centroid in float x0; 2255e5c31af7Sopenharmony_ci 2256e5c31af7Sopenharmony_ci in float x1; 2257e5c31af7Sopenharmony_ci 2258e5c31af7Sopenharmony_ci uniform float x2; 2259e5c31af7Sopenharmony_ci 2260e5c31af7Sopenharmony_ci void main() 2261e5c31af7Sopenharmony_ci { 2262e5c31af7Sopenharmony_ci float result = (x0 + x1 + x2) / 3.0; 2263e5c31af7Sopenharmony_ci dEQP_FragColor = vec4(result, result, result, 1.0); 2264e5c31af7Sopenharmony_ci } 2265e5c31af7Sopenharmony_ci "" 2266e5c31af7Sopenharmony_ci end 2267e5c31af7Sopenharmony_ci 2268e5c31af7Sopenharmony_ci end # invalid 2269e5c31af7Sopenharmony_ci 2270e5c31af7Sopenharmony_ciend # variables 2271e5c31af7Sopenharmony_cigroup parameters "Order of qualification in function parameters." 2272e5c31af7Sopenharmony_ci 2273e5c31af7Sopenharmony_ci group valid "Valid orderings." 2274e5c31af7Sopenharmony_ci 2275e5c31af7Sopenharmony_ci case storage_parameter_precision 2276e5c31af7Sopenharmony_ci expect pass 2277e5c31af7Sopenharmony_ci version 300 es 2278e5c31af7Sopenharmony_ci values {} 2279e5c31af7Sopenharmony_ci 2280e5c31af7Sopenharmony_ci both "" 2281e5c31af7Sopenharmony_ci #version 300 es 2282e5c31af7Sopenharmony_ci precision mediump float; 2283e5c31af7Sopenharmony_ci ${DECLARATIONS} 2284e5c31af7Sopenharmony_ci 2285e5c31af7Sopenharmony_ci float foo0 (const in lowp float x) 2286e5c31af7Sopenharmony_ci { 2287e5c31af7Sopenharmony_ci return x + 1.0; 2288e5c31af7Sopenharmony_ci } 2289e5c31af7Sopenharmony_ci 2290e5c31af7Sopenharmony_ci void foo1 ( out mediump float x) 2291e5c31af7Sopenharmony_ci { 2292e5c31af7Sopenharmony_ci x = 1.0; 2293e5c31af7Sopenharmony_ci } 2294e5c31af7Sopenharmony_ci 2295e5c31af7Sopenharmony_ci float foo2 ( inout highp float x) 2296e5c31af7Sopenharmony_ci { 2297e5c31af7Sopenharmony_ci return x + 1.0; 2298e5c31af7Sopenharmony_ci } 2299e5c31af7Sopenharmony_ci 2300e5c31af7Sopenharmony_ci void main() 2301e5c31af7Sopenharmony_ci { 2302e5c31af7Sopenharmony_ci ${SETUP} 2303e5c31af7Sopenharmony_ci float result; 2304e5c31af7Sopenharmony_ci foo1(result); 2305e5c31af7Sopenharmony_ci float x0 = foo0(1.0); 2306e5c31af7Sopenharmony_ci foo2(result); 2307e5c31af7Sopenharmony_ci ${OUTPUT} 2308e5c31af7Sopenharmony_ci } 2309e5c31af7Sopenharmony_ci "" 2310e5c31af7Sopenharmony_ci end 2311e5c31af7Sopenharmony_ci case storage_parameter 2312e5c31af7Sopenharmony_ci expect pass 2313e5c31af7Sopenharmony_ci version 300 es 2314e5c31af7Sopenharmony_ci values {} 2315e5c31af7Sopenharmony_ci 2316e5c31af7Sopenharmony_ci both "" 2317e5c31af7Sopenharmony_ci #version 300 es 2318e5c31af7Sopenharmony_ci precision mediump float; 2319e5c31af7Sopenharmony_ci ${DECLARATIONS} 2320e5c31af7Sopenharmony_ci 2321e5c31af7Sopenharmony_ci float foo0 (const in float x) 2322e5c31af7Sopenharmony_ci { 2323e5c31af7Sopenharmony_ci return x + 1.0; 2324e5c31af7Sopenharmony_ci } 2325e5c31af7Sopenharmony_ci 2326e5c31af7Sopenharmony_ci void foo1 ( out float x) 2327e5c31af7Sopenharmony_ci { 2328e5c31af7Sopenharmony_ci x = 1.0; 2329e5c31af7Sopenharmony_ci } 2330e5c31af7Sopenharmony_ci 2331e5c31af7Sopenharmony_ci float foo2 ( inout float x) 2332e5c31af7Sopenharmony_ci { 2333e5c31af7Sopenharmony_ci return x + 1.0; 2334e5c31af7Sopenharmony_ci } 2335e5c31af7Sopenharmony_ci 2336e5c31af7Sopenharmony_ci void main() 2337e5c31af7Sopenharmony_ci { 2338e5c31af7Sopenharmony_ci ${SETUP} 2339e5c31af7Sopenharmony_ci float result; 2340e5c31af7Sopenharmony_ci foo1(result); 2341e5c31af7Sopenharmony_ci float x0 = foo0(1.0); 2342e5c31af7Sopenharmony_ci foo2(result); 2343e5c31af7Sopenharmony_ci ${OUTPUT} 2344e5c31af7Sopenharmony_ci } 2345e5c31af7Sopenharmony_ci "" 2346e5c31af7Sopenharmony_ci end 2347e5c31af7Sopenharmony_ci case storage_precision 2348e5c31af7Sopenharmony_ci expect pass 2349e5c31af7Sopenharmony_ci version 300 es 2350e5c31af7Sopenharmony_ci values {} 2351e5c31af7Sopenharmony_ci 2352e5c31af7Sopenharmony_ci both "" 2353e5c31af7Sopenharmony_ci #version 300 es 2354e5c31af7Sopenharmony_ci precision mediump float; 2355e5c31af7Sopenharmony_ci ${DECLARATIONS} 2356e5c31af7Sopenharmony_ci 2357e5c31af7Sopenharmony_ci float foo0 (const lowp float x) 2358e5c31af7Sopenharmony_ci { 2359e5c31af7Sopenharmony_ci return x + 1.0; 2360e5c31af7Sopenharmony_ci } 2361e5c31af7Sopenharmony_ci 2362e5c31af7Sopenharmony_ci void foo1 ( mediump float x) 2363e5c31af7Sopenharmony_ci { 2364e5c31af7Sopenharmony_ci x = 1.0; 2365e5c31af7Sopenharmony_ci } 2366e5c31af7Sopenharmony_ci 2367e5c31af7Sopenharmony_ci float foo2 ( highp float x) 2368e5c31af7Sopenharmony_ci { 2369e5c31af7Sopenharmony_ci return x + 1.0; 2370e5c31af7Sopenharmony_ci } 2371e5c31af7Sopenharmony_ci 2372e5c31af7Sopenharmony_ci void main() 2373e5c31af7Sopenharmony_ci { 2374e5c31af7Sopenharmony_ci ${SETUP} 2375e5c31af7Sopenharmony_ci float result; 2376e5c31af7Sopenharmony_ci foo1(result); 2377e5c31af7Sopenharmony_ci float x0 = foo0(1.0); 2378e5c31af7Sopenharmony_ci foo2(result); 2379e5c31af7Sopenharmony_ci ${OUTPUT} 2380e5c31af7Sopenharmony_ci } 2381e5c31af7Sopenharmony_ci "" 2382e5c31af7Sopenharmony_ci end 2383e5c31af7Sopenharmony_ci case parameter_precision 2384e5c31af7Sopenharmony_ci expect pass 2385e5c31af7Sopenharmony_ci version 300 es 2386e5c31af7Sopenharmony_ci values {} 2387e5c31af7Sopenharmony_ci 2388e5c31af7Sopenharmony_ci both "" 2389e5c31af7Sopenharmony_ci #version 300 es 2390e5c31af7Sopenharmony_ci precision mediump float; 2391e5c31af7Sopenharmony_ci ${DECLARATIONS} 2392e5c31af7Sopenharmony_ci 2393e5c31af7Sopenharmony_ci float foo0 (in lowp float x) 2394e5c31af7Sopenharmony_ci { 2395e5c31af7Sopenharmony_ci return x + 1.0; 2396e5c31af7Sopenharmony_ci } 2397e5c31af7Sopenharmony_ci 2398e5c31af7Sopenharmony_ci void foo1 (out mediump float x) 2399e5c31af7Sopenharmony_ci { 2400e5c31af7Sopenharmony_ci x = 1.0; 2401e5c31af7Sopenharmony_ci } 2402e5c31af7Sopenharmony_ci 2403e5c31af7Sopenharmony_ci float foo2 (inout highp float x) 2404e5c31af7Sopenharmony_ci { 2405e5c31af7Sopenharmony_ci return x + 1.0; 2406e5c31af7Sopenharmony_ci } 2407e5c31af7Sopenharmony_ci 2408e5c31af7Sopenharmony_ci void main() 2409e5c31af7Sopenharmony_ci { 2410e5c31af7Sopenharmony_ci ${SETUP} 2411e5c31af7Sopenharmony_ci float result; 2412e5c31af7Sopenharmony_ci foo1(result); 2413e5c31af7Sopenharmony_ci float x0 = foo0(1.0); 2414e5c31af7Sopenharmony_ci foo2(result); 2415e5c31af7Sopenharmony_ci ${OUTPUT} 2416e5c31af7Sopenharmony_ci } 2417e5c31af7Sopenharmony_ci "" 2418e5c31af7Sopenharmony_ci end 2419e5c31af7Sopenharmony_ci 2420e5c31af7Sopenharmony_ci end # valid 2421e5c31af7Sopenharmony_ci group invalid "Invalid orderings." 2422e5c31af7Sopenharmony_ci 2423e5c31af7Sopenharmony_ci case storage_precision_parameter 2424e5c31af7Sopenharmony_ci expect compile_fail 2425e5c31af7Sopenharmony_ci version 300 es 2426e5c31af7Sopenharmony_ci values {} 2427e5c31af7Sopenharmony_ci 2428e5c31af7Sopenharmony_ci both "" 2429e5c31af7Sopenharmony_ci #version 300 es 2430e5c31af7Sopenharmony_ci precision mediump float; 2431e5c31af7Sopenharmony_ci ${DECLARATIONS} 2432e5c31af7Sopenharmony_ci 2433e5c31af7Sopenharmony_ci float foo0 (const lowp in float x) 2434e5c31af7Sopenharmony_ci { 2435e5c31af7Sopenharmony_ci return x + 1.0; 2436e5c31af7Sopenharmony_ci } 2437e5c31af7Sopenharmony_ci 2438e5c31af7Sopenharmony_ci void foo1 ( mediump out float x) 2439e5c31af7Sopenharmony_ci { 2440e5c31af7Sopenharmony_ci x = 1.0; 2441e5c31af7Sopenharmony_ci } 2442e5c31af7Sopenharmony_ci 2443e5c31af7Sopenharmony_ci float foo2 ( highp inout float x) 2444e5c31af7Sopenharmony_ci { 2445e5c31af7Sopenharmony_ci return x + 1.0; 2446e5c31af7Sopenharmony_ci } 2447e5c31af7Sopenharmony_ci 2448e5c31af7Sopenharmony_ci void main() 2449e5c31af7Sopenharmony_ci { 2450e5c31af7Sopenharmony_ci ${SETUP} 2451e5c31af7Sopenharmony_ci float result; 2452e5c31af7Sopenharmony_ci foo1(result); 2453e5c31af7Sopenharmony_ci float x0 = foo0(1.0); 2454e5c31af7Sopenharmony_ci foo2(result); 2455e5c31af7Sopenharmony_ci ${OUTPUT} 2456e5c31af7Sopenharmony_ci } 2457e5c31af7Sopenharmony_ci "" 2458e5c31af7Sopenharmony_ci end 2459e5c31af7Sopenharmony_ci case parameter_storage_precision 2460e5c31af7Sopenharmony_ci expect compile_fail 2461e5c31af7Sopenharmony_ci version 300 es 2462e5c31af7Sopenharmony_ci values {} 2463e5c31af7Sopenharmony_ci 2464e5c31af7Sopenharmony_ci both "" 2465e5c31af7Sopenharmony_ci #version 300 es 2466e5c31af7Sopenharmony_ci precision mediump float; 2467e5c31af7Sopenharmony_ci ${DECLARATIONS} 2468e5c31af7Sopenharmony_ci 2469e5c31af7Sopenharmony_ci float foo0 (in const lowp float x) 2470e5c31af7Sopenharmony_ci { 2471e5c31af7Sopenharmony_ci return x + 1.0; 2472e5c31af7Sopenharmony_ci } 2473e5c31af7Sopenharmony_ci 2474e5c31af7Sopenharmony_ci void foo1 (out mediump float x) 2475e5c31af7Sopenharmony_ci { 2476e5c31af7Sopenharmony_ci x = 1.0; 2477e5c31af7Sopenharmony_ci } 2478e5c31af7Sopenharmony_ci 2479e5c31af7Sopenharmony_ci float foo2 (inout highp float x) 2480e5c31af7Sopenharmony_ci { 2481e5c31af7Sopenharmony_ci return x + 1.0; 2482e5c31af7Sopenharmony_ci } 2483e5c31af7Sopenharmony_ci 2484e5c31af7Sopenharmony_ci void main() 2485e5c31af7Sopenharmony_ci { 2486e5c31af7Sopenharmony_ci ${SETUP} 2487e5c31af7Sopenharmony_ci float result; 2488e5c31af7Sopenharmony_ci foo1(result); 2489e5c31af7Sopenharmony_ci float x0 = foo0(1.0); 2490e5c31af7Sopenharmony_ci foo2(result); 2491e5c31af7Sopenharmony_ci ${OUTPUT} 2492e5c31af7Sopenharmony_ci } 2493e5c31af7Sopenharmony_ci "" 2494e5c31af7Sopenharmony_ci end 2495e5c31af7Sopenharmony_ci case parameter_precision_storage 2496e5c31af7Sopenharmony_ci expect compile_fail 2497e5c31af7Sopenharmony_ci version 300 es 2498e5c31af7Sopenharmony_ci values {} 2499e5c31af7Sopenharmony_ci 2500e5c31af7Sopenharmony_ci both "" 2501e5c31af7Sopenharmony_ci #version 300 es 2502e5c31af7Sopenharmony_ci precision mediump float; 2503e5c31af7Sopenharmony_ci ${DECLARATIONS} 2504e5c31af7Sopenharmony_ci 2505e5c31af7Sopenharmony_ci float foo0 (in lowp const float x) 2506e5c31af7Sopenharmony_ci { 2507e5c31af7Sopenharmony_ci return x + 1.0; 2508e5c31af7Sopenharmony_ci } 2509e5c31af7Sopenharmony_ci 2510e5c31af7Sopenharmony_ci void foo1 (out mediump float x) 2511e5c31af7Sopenharmony_ci { 2512e5c31af7Sopenharmony_ci x = 1.0; 2513e5c31af7Sopenharmony_ci } 2514e5c31af7Sopenharmony_ci 2515e5c31af7Sopenharmony_ci float foo2 (inout highp float x) 2516e5c31af7Sopenharmony_ci { 2517e5c31af7Sopenharmony_ci return x + 1.0; 2518e5c31af7Sopenharmony_ci } 2519e5c31af7Sopenharmony_ci 2520e5c31af7Sopenharmony_ci void main() 2521e5c31af7Sopenharmony_ci { 2522e5c31af7Sopenharmony_ci ${SETUP} 2523e5c31af7Sopenharmony_ci float result; 2524e5c31af7Sopenharmony_ci foo1(result); 2525e5c31af7Sopenharmony_ci float x0 = foo0(1.0); 2526e5c31af7Sopenharmony_ci foo2(result); 2527e5c31af7Sopenharmony_ci ${OUTPUT} 2528e5c31af7Sopenharmony_ci } 2529e5c31af7Sopenharmony_ci "" 2530e5c31af7Sopenharmony_ci end 2531e5c31af7Sopenharmony_ci case precision_storage_parameter 2532e5c31af7Sopenharmony_ci expect compile_fail 2533e5c31af7Sopenharmony_ci version 300 es 2534e5c31af7Sopenharmony_ci values {} 2535e5c31af7Sopenharmony_ci 2536e5c31af7Sopenharmony_ci both "" 2537e5c31af7Sopenharmony_ci #version 300 es 2538e5c31af7Sopenharmony_ci precision mediump float; 2539e5c31af7Sopenharmony_ci ${DECLARATIONS} 2540e5c31af7Sopenharmony_ci 2541e5c31af7Sopenharmony_ci float foo0 (lowp const in float x) 2542e5c31af7Sopenharmony_ci { 2543e5c31af7Sopenharmony_ci return x + 1.0; 2544e5c31af7Sopenharmony_ci } 2545e5c31af7Sopenharmony_ci 2546e5c31af7Sopenharmony_ci void foo1 (mediump out float x) 2547e5c31af7Sopenharmony_ci { 2548e5c31af7Sopenharmony_ci x = 1.0; 2549e5c31af7Sopenharmony_ci } 2550e5c31af7Sopenharmony_ci 2551e5c31af7Sopenharmony_ci float foo2 (highp inout float x) 2552e5c31af7Sopenharmony_ci { 2553e5c31af7Sopenharmony_ci return x + 1.0; 2554e5c31af7Sopenharmony_ci } 2555e5c31af7Sopenharmony_ci 2556e5c31af7Sopenharmony_ci void main() 2557e5c31af7Sopenharmony_ci { 2558e5c31af7Sopenharmony_ci ${SETUP} 2559e5c31af7Sopenharmony_ci float result; 2560e5c31af7Sopenharmony_ci foo1(result); 2561e5c31af7Sopenharmony_ci float x0 = foo0(1.0); 2562e5c31af7Sopenharmony_ci foo2(result); 2563e5c31af7Sopenharmony_ci ${OUTPUT} 2564e5c31af7Sopenharmony_ci } 2565e5c31af7Sopenharmony_ci "" 2566e5c31af7Sopenharmony_ci end 2567e5c31af7Sopenharmony_ci case precision_parameter_storage 2568e5c31af7Sopenharmony_ci expect compile_fail 2569e5c31af7Sopenharmony_ci version 300 es 2570e5c31af7Sopenharmony_ci values {} 2571e5c31af7Sopenharmony_ci 2572e5c31af7Sopenharmony_ci both "" 2573e5c31af7Sopenharmony_ci #version 300 es 2574e5c31af7Sopenharmony_ci precision mediump float; 2575e5c31af7Sopenharmony_ci ${DECLARATIONS} 2576e5c31af7Sopenharmony_ci 2577e5c31af7Sopenharmony_ci float foo0 (lowp in const float x) 2578e5c31af7Sopenharmony_ci { 2579e5c31af7Sopenharmony_ci return x + 1.0; 2580e5c31af7Sopenharmony_ci } 2581e5c31af7Sopenharmony_ci 2582e5c31af7Sopenharmony_ci void foo1 (mediump out float x) 2583e5c31af7Sopenharmony_ci { 2584e5c31af7Sopenharmony_ci x = 1.0; 2585e5c31af7Sopenharmony_ci } 2586e5c31af7Sopenharmony_ci 2587e5c31af7Sopenharmony_ci float foo2 (highp inout float x) 2588e5c31af7Sopenharmony_ci { 2589e5c31af7Sopenharmony_ci return x + 1.0; 2590e5c31af7Sopenharmony_ci } 2591e5c31af7Sopenharmony_ci 2592e5c31af7Sopenharmony_ci void main() 2593e5c31af7Sopenharmony_ci { 2594e5c31af7Sopenharmony_ci ${SETUP} 2595e5c31af7Sopenharmony_ci float result; 2596e5c31af7Sopenharmony_ci foo1(result); 2597e5c31af7Sopenharmony_ci float x0 = foo0(1.0); 2598e5c31af7Sopenharmony_ci foo2(result); 2599e5c31af7Sopenharmony_ci ${OUTPUT} 2600e5c31af7Sopenharmony_ci } 2601e5c31af7Sopenharmony_ci "" 2602e5c31af7Sopenharmony_ci end 2603e5c31af7Sopenharmony_ci case parameter_storage 2604e5c31af7Sopenharmony_ci expect compile_fail 2605e5c31af7Sopenharmony_ci version 300 es 2606e5c31af7Sopenharmony_ci values {} 2607e5c31af7Sopenharmony_ci 2608e5c31af7Sopenharmony_ci both "" 2609e5c31af7Sopenharmony_ci #version 300 es 2610e5c31af7Sopenharmony_ci precision mediump float; 2611e5c31af7Sopenharmony_ci ${DECLARATIONS} 2612e5c31af7Sopenharmony_ci 2613e5c31af7Sopenharmony_ci float foo0 (in const float x) 2614e5c31af7Sopenharmony_ci { 2615e5c31af7Sopenharmony_ci return x + 1.0; 2616e5c31af7Sopenharmony_ci } 2617e5c31af7Sopenharmony_ci 2618e5c31af7Sopenharmony_ci void foo1 (out float x) 2619e5c31af7Sopenharmony_ci { 2620e5c31af7Sopenharmony_ci x = 1.0; 2621e5c31af7Sopenharmony_ci } 2622e5c31af7Sopenharmony_ci 2623e5c31af7Sopenharmony_ci float foo2 (inout float x) 2624e5c31af7Sopenharmony_ci { 2625e5c31af7Sopenharmony_ci return x + 1.0; 2626e5c31af7Sopenharmony_ci } 2627e5c31af7Sopenharmony_ci 2628e5c31af7Sopenharmony_ci void main() 2629e5c31af7Sopenharmony_ci { 2630e5c31af7Sopenharmony_ci ${SETUP} 2631e5c31af7Sopenharmony_ci float result; 2632e5c31af7Sopenharmony_ci foo1(result); 2633e5c31af7Sopenharmony_ci float x0 = foo0(1.0); 2634e5c31af7Sopenharmony_ci foo2(result); 2635e5c31af7Sopenharmony_ci ${OUTPUT} 2636e5c31af7Sopenharmony_ci } 2637e5c31af7Sopenharmony_ci "" 2638e5c31af7Sopenharmony_ci end 2639e5c31af7Sopenharmony_ci case precision_storage 2640e5c31af7Sopenharmony_ci expect compile_fail 2641e5c31af7Sopenharmony_ci version 300 es 2642e5c31af7Sopenharmony_ci values {} 2643e5c31af7Sopenharmony_ci 2644e5c31af7Sopenharmony_ci both "" 2645e5c31af7Sopenharmony_ci #version 300 es 2646e5c31af7Sopenharmony_ci precision mediump float; 2647e5c31af7Sopenharmony_ci ${DECLARATIONS} 2648e5c31af7Sopenharmony_ci 2649e5c31af7Sopenharmony_ci float foo0 (lowp const float x) 2650e5c31af7Sopenharmony_ci { 2651e5c31af7Sopenharmony_ci return x + 1.0; 2652e5c31af7Sopenharmony_ci } 2653e5c31af7Sopenharmony_ci 2654e5c31af7Sopenharmony_ci void foo1 (mediump float x) 2655e5c31af7Sopenharmony_ci { 2656e5c31af7Sopenharmony_ci x = 1.0; 2657e5c31af7Sopenharmony_ci } 2658e5c31af7Sopenharmony_ci 2659e5c31af7Sopenharmony_ci float foo2 (highp float x) 2660e5c31af7Sopenharmony_ci { 2661e5c31af7Sopenharmony_ci return x + 1.0; 2662e5c31af7Sopenharmony_ci } 2663e5c31af7Sopenharmony_ci 2664e5c31af7Sopenharmony_ci void main() 2665e5c31af7Sopenharmony_ci { 2666e5c31af7Sopenharmony_ci ${SETUP} 2667e5c31af7Sopenharmony_ci float result; 2668e5c31af7Sopenharmony_ci foo1(result); 2669e5c31af7Sopenharmony_ci float x0 = foo0(1.0); 2670e5c31af7Sopenharmony_ci foo2(result); 2671e5c31af7Sopenharmony_ci ${OUTPUT} 2672e5c31af7Sopenharmony_ci } 2673e5c31af7Sopenharmony_ci "" 2674e5c31af7Sopenharmony_ci end 2675e5c31af7Sopenharmony_ci case precision_parameter 2676e5c31af7Sopenharmony_ci expect compile_fail 2677e5c31af7Sopenharmony_ci version 300 es 2678e5c31af7Sopenharmony_ci values {} 2679e5c31af7Sopenharmony_ci 2680e5c31af7Sopenharmony_ci both "" 2681e5c31af7Sopenharmony_ci #version 300 es 2682e5c31af7Sopenharmony_ci precision mediump float; 2683e5c31af7Sopenharmony_ci ${DECLARATIONS} 2684e5c31af7Sopenharmony_ci 2685e5c31af7Sopenharmony_ci float foo0 (lowp in float x) 2686e5c31af7Sopenharmony_ci { 2687e5c31af7Sopenharmony_ci return x + 1.0; 2688e5c31af7Sopenharmony_ci } 2689e5c31af7Sopenharmony_ci 2690e5c31af7Sopenharmony_ci void foo1 (mediump out float x) 2691e5c31af7Sopenharmony_ci { 2692e5c31af7Sopenharmony_ci x = 1.0; 2693e5c31af7Sopenharmony_ci } 2694e5c31af7Sopenharmony_ci 2695e5c31af7Sopenharmony_ci float foo2 (highp inout float x) 2696e5c31af7Sopenharmony_ci { 2697e5c31af7Sopenharmony_ci return x + 1.0; 2698e5c31af7Sopenharmony_ci } 2699e5c31af7Sopenharmony_ci 2700e5c31af7Sopenharmony_ci void main() 2701e5c31af7Sopenharmony_ci { 2702e5c31af7Sopenharmony_ci ${SETUP} 2703e5c31af7Sopenharmony_ci float result; 2704e5c31af7Sopenharmony_ci foo1(result); 2705e5c31af7Sopenharmony_ci float x0 = foo0(1.0); 2706e5c31af7Sopenharmony_ci foo2(result); 2707e5c31af7Sopenharmony_ci ${OUTPUT} 2708e5c31af7Sopenharmony_ci } 2709e5c31af7Sopenharmony_ci "" 2710e5c31af7Sopenharmony_ci end 2711e5c31af7Sopenharmony_ci 2712e5c31af7Sopenharmony_ci end # invalid 2713e5c31af7Sopenharmony_ci 2714e5c31af7Sopenharmony_ciend # parameters 2715