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 arithmetic "Arithmetic operations" 5e5c31af7Sopenharmony_ci 6e5c31af7Sopenharmony_ci group input_before_literal "Input before literal" 7e5c31af7Sopenharmony_ci 8e5c31af7Sopenharmony_ci group add "Addition" 9e5c31af7Sopenharmony_ci 10e5c31af7Sopenharmony_ci case int_to_float 11e5c31af7Sopenharmony_ci version 310 es 12e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 13e5c31af7Sopenharmony_ci values 14e5c31af7Sopenharmony_ci { 15e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 16e5c31af7Sopenharmony_ci output float out0 = [ 4.0 | 3.0 | 3.0 | 5.0 | 7.0 ]; 17e5c31af7Sopenharmony_ci } 18e5c31af7Sopenharmony_ci 19e5c31af7Sopenharmony_ci both "" 20e5c31af7Sopenharmony_ci #version 310 es 21e5c31af7Sopenharmony_ci precision highp float; 22e5c31af7Sopenharmony_ci ${DECLARATIONS} 23e5c31af7Sopenharmony_ci 24e5c31af7Sopenharmony_ci void main() 25e5c31af7Sopenharmony_ci { 26e5c31af7Sopenharmony_ci ${SETUP} 27e5c31af7Sopenharmony_ci out0 = in0 + 2.0; 28e5c31af7Sopenharmony_ci ${OUTPUT} 29e5c31af7Sopenharmony_ci } 30e5c31af7Sopenharmony_ci "" 31e5c31af7Sopenharmony_ci end 32e5c31af7Sopenharmony_ci case int_to_uint 33e5c31af7Sopenharmony_ci version 310 es 34e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 35e5c31af7Sopenharmony_ci values 36e5c31af7Sopenharmony_ci { 37e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 38e5c31af7Sopenharmony_ci output uint out0 = [ 4 | 3 | 3 | 5 | 7 ]; 39e5c31af7Sopenharmony_ci } 40e5c31af7Sopenharmony_ci 41e5c31af7Sopenharmony_ci both "" 42e5c31af7Sopenharmony_ci #version 310 es 43e5c31af7Sopenharmony_ci precision highp float; 44e5c31af7Sopenharmony_ci ${DECLARATIONS} 45e5c31af7Sopenharmony_ci 46e5c31af7Sopenharmony_ci void main() 47e5c31af7Sopenharmony_ci { 48e5c31af7Sopenharmony_ci ${SETUP} 49e5c31af7Sopenharmony_ci out0 = in0 + 2; 50e5c31af7Sopenharmony_ci ${OUTPUT} 51e5c31af7Sopenharmony_ci } 52e5c31af7Sopenharmony_ci "" 53e5c31af7Sopenharmony_ci end 54e5c31af7Sopenharmony_ci case int_to_vec2 55e5c31af7Sopenharmony_ci version 310 es 56e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 57e5c31af7Sopenharmony_ci values 58e5c31af7Sopenharmony_ci { 59e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 60e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(3.0, 4.0) | vec2(2.0, 3.0) | vec2(2.0, 3.0) | vec2(4.0, 5.0) | vec2(6.0, 7.0) ]; 61e5c31af7Sopenharmony_ci } 62e5c31af7Sopenharmony_ci 63e5c31af7Sopenharmony_ci both "" 64e5c31af7Sopenharmony_ci #version 310 es 65e5c31af7Sopenharmony_ci precision highp float; 66e5c31af7Sopenharmony_ci ${DECLARATIONS} 67e5c31af7Sopenharmony_ci 68e5c31af7Sopenharmony_ci void main() 69e5c31af7Sopenharmony_ci { 70e5c31af7Sopenharmony_ci ${SETUP} 71e5c31af7Sopenharmony_ci out0 = in0 + vec2(1.0, 2.0); 72e5c31af7Sopenharmony_ci ${OUTPUT} 73e5c31af7Sopenharmony_ci } 74e5c31af7Sopenharmony_ci "" 75e5c31af7Sopenharmony_ci end 76e5c31af7Sopenharmony_ci case int_to_vec3 77e5c31af7Sopenharmony_ci version 310 es 78e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 79e5c31af7Sopenharmony_ci values 80e5c31af7Sopenharmony_ci { 81e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 82e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(3.0, 4.0, 5.0) | vec3(2.0, 3.0, 4.0) | vec3(2.0, 3.0, 4.0) | vec3(4.0, 5.0, 6.0) | vec3(6.0, 7.0, 8.0) ]; 83e5c31af7Sopenharmony_ci } 84e5c31af7Sopenharmony_ci 85e5c31af7Sopenharmony_ci both "" 86e5c31af7Sopenharmony_ci #version 310 es 87e5c31af7Sopenharmony_ci precision highp float; 88e5c31af7Sopenharmony_ci ${DECLARATIONS} 89e5c31af7Sopenharmony_ci 90e5c31af7Sopenharmony_ci void main() 91e5c31af7Sopenharmony_ci { 92e5c31af7Sopenharmony_ci ${SETUP} 93e5c31af7Sopenharmony_ci out0 = in0 + vec3(1.0, 2.0, 3.0); 94e5c31af7Sopenharmony_ci ${OUTPUT} 95e5c31af7Sopenharmony_ci } 96e5c31af7Sopenharmony_ci "" 97e5c31af7Sopenharmony_ci end 98e5c31af7Sopenharmony_ci case int_to_vec4 99e5c31af7Sopenharmony_ci version 310 es 100e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 101e5c31af7Sopenharmony_ci values 102e5c31af7Sopenharmony_ci { 103e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 104e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(3.0, 4.0, 5.0, 6.0) | vec4(2.0, 3.0, 4.0, 5.0) | vec4(2.0, 3.0, 4.0, 5.0) | vec4(4.0, 5.0, 6.0, 7.0) | vec4(6.0, 7.0, 8.0, 9.0) ]; 105e5c31af7Sopenharmony_ci } 106e5c31af7Sopenharmony_ci 107e5c31af7Sopenharmony_ci both "" 108e5c31af7Sopenharmony_ci #version 310 es 109e5c31af7Sopenharmony_ci precision highp float; 110e5c31af7Sopenharmony_ci ${DECLARATIONS} 111e5c31af7Sopenharmony_ci 112e5c31af7Sopenharmony_ci void main() 113e5c31af7Sopenharmony_ci { 114e5c31af7Sopenharmony_ci ${SETUP} 115e5c31af7Sopenharmony_ci out0 = in0 + vec4(1.0, 2.0, 3.0, 4.0); 116e5c31af7Sopenharmony_ci ${OUTPUT} 117e5c31af7Sopenharmony_ci } 118e5c31af7Sopenharmony_ci "" 119e5c31af7Sopenharmony_ci end 120e5c31af7Sopenharmony_ci case int_to_uvec2 121e5c31af7Sopenharmony_ci version 310 es 122e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 123e5c31af7Sopenharmony_ci values 124e5c31af7Sopenharmony_ci { 125e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 126e5c31af7Sopenharmony_ci output uvec2 out0 = [ uvec2(3, 4) | uvec2(2, 3) | uvec2(2, 3) | uvec2(4, 5) | uvec2(6, 7) ]; 127e5c31af7Sopenharmony_ci } 128e5c31af7Sopenharmony_ci 129e5c31af7Sopenharmony_ci both "" 130e5c31af7Sopenharmony_ci #version 310 es 131e5c31af7Sopenharmony_ci precision highp float; 132e5c31af7Sopenharmony_ci ${DECLARATIONS} 133e5c31af7Sopenharmony_ci 134e5c31af7Sopenharmony_ci void main() 135e5c31af7Sopenharmony_ci { 136e5c31af7Sopenharmony_ci ${SETUP} 137e5c31af7Sopenharmony_ci out0 = in0 + uvec2(1, 2); 138e5c31af7Sopenharmony_ci ${OUTPUT} 139e5c31af7Sopenharmony_ci } 140e5c31af7Sopenharmony_ci "" 141e5c31af7Sopenharmony_ci end 142e5c31af7Sopenharmony_ci case int_to_uvec3 143e5c31af7Sopenharmony_ci version 310 es 144e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 145e5c31af7Sopenharmony_ci values 146e5c31af7Sopenharmony_ci { 147e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 148e5c31af7Sopenharmony_ci output uvec3 out0 = [ uvec3(3, 4, 5) | uvec3(2, 3, 4) | uvec3(2, 3, 4) | uvec3(4, 5, 6) | uvec3(6, 7, 8) ]; 149e5c31af7Sopenharmony_ci } 150e5c31af7Sopenharmony_ci 151e5c31af7Sopenharmony_ci both "" 152e5c31af7Sopenharmony_ci #version 310 es 153e5c31af7Sopenharmony_ci precision highp float; 154e5c31af7Sopenharmony_ci ${DECLARATIONS} 155e5c31af7Sopenharmony_ci 156e5c31af7Sopenharmony_ci void main() 157e5c31af7Sopenharmony_ci { 158e5c31af7Sopenharmony_ci ${SETUP} 159e5c31af7Sopenharmony_ci out0 = in0 + uvec3(1, 2, 3); 160e5c31af7Sopenharmony_ci ${OUTPUT} 161e5c31af7Sopenharmony_ci } 162e5c31af7Sopenharmony_ci "" 163e5c31af7Sopenharmony_ci end 164e5c31af7Sopenharmony_ci case int_to_uvec4 165e5c31af7Sopenharmony_ci version 310 es 166e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 167e5c31af7Sopenharmony_ci values 168e5c31af7Sopenharmony_ci { 169e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 170e5c31af7Sopenharmony_ci output uvec4 out0 = [ uvec4(3, 4, 5, 6) | uvec4(2, 3, 4, 5) | uvec4(2, 3, 4, 5) | uvec4(4, 5, 6, 7) | uvec4(6, 7, 8, 9) ]; 171e5c31af7Sopenharmony_ci } 172e5c31af7Sopenharmony_ci 173e5c31af7Sopenharmony_ci both "" 174e5c31af7Sopenharmony_ci #version 310 es 175e5c31af7Sopenharmony_ci precision highp float; 176e5c31af7Sopenharmony_ci ${DECLARATIONS} 177e5c31af7Sopenharmony_ci 178e5c31af7Sopenharmony_ci void main() 179e5c31af7Sopenharmony_ci { 180e5c31af7Sopenharmony_ci ${SETUP} 181e5c31af7Sopenharmony_ci out0 = in0 + uvec4(1, 2, 3, 4); 182e5c31af7Sopenharmony_ci ${OUTPUT} 183e5c31af7Sopenharmony_ci } 184e5c31af7Sopenharmony_ci "" 185e5c31af7Sopenharmony_ci end 186e5c31af7Sopenharmony_ci case uint_to_float 187e5c31af7Sopenharmony_ci version 310 es 188e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 189e5c31af7Sopenharmony_ci values 190e5c31af7Sopenharmony_ci { 191e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 192e5c31af7Sopenharmony_ci output float out0 = [ 3.0 | 5.0 | 6.0 | 9.0 | 13.0 ]; 193e5c31af7Sopenharmony_ci } 194e5c31af7Sopenharmony_ci 195e5c31af7Sopenharmony_ci both "" 196e5c31af7Sopenharmony_ci #version 310 es 197e5c31af7Sopenharmony_ci precision highp float; 198e5c31af7Sopenharmony_ci ${DECLARATIONS} 199e5c31af7Sopenharmony_ci 200e5c31af7Sopenharmony_ci void main() 201e5c31af7Sopenharmony_ci { 202e5c31af7Sopenharmony_ci ${SETUP} 203e5c31af7Sopenharmony_ci out0 = in0 + 2.0; 204e5c31af7Sopenharmony_ci ${OUTPUT} 205e5c31af7Sopenharmony_ci } 206e5c31af7Sopenharmony_ci "" 207e5c31af7Sopenharmony_ci end 208e5c31af7Sopenharmony_ci case uint_to_vec2 209e5c31af7Sopenharmony_ci version 310 es 210e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 211e5c31af7Sopenharmony_ci values 212e5c31af7Sopenharmony_ci { 213e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 214e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(2.0, 3.0) | vec2(4.0, 5.0) | vec2(5.0, 6.0) | vec2(8.0, 9.0) | vec2(12.0, 13.0) ]; 215e5c31af7Sopenharmony_ci } 216e5c31af7Sopenharmony_ci 217e5c31af7Sopenharmony_ci both "" 218e5c31af7Sopenharmony_ci #version 310 es 219e5c31af7Sopenharmony_ci precision highp float; 220e5c31af7Sopenharmony_ci ${DECLARATIONS} 221e5c31af7Sopenharmony_ci 222e5c31af7Sopenharmony_ci void main() 223e5c31af7Sopenharmony_ci { 224e5c31af7Sopenharmony_ci ${SETUP} 225e5c31af7Sopenharmony_ci out0 = in0 + vec2(1.0, 2.0); 226e5c31af7Sopenharmony_ci ${OUTPUT} 227e5c31af7Sopenharmony_ci } 228e5c31af7Sopenharmony_ci "" 229e5c31af7Sopenharmony_ci end 230e5c31af7Sopenharmony_ci case uint_to_vec3 231e5c31af7Sopenharmony_ci version 310 es 232e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 233e5c31af7Sopenharmony_ci values 234e5c31af7Sopenharmony_ci { 235e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 236e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(2.0, 3.0, 4.0) | vec3(4.0, 5.0, 6.0) | vec3(5.0, 6.0, 7.0) | vec3(8.0, 9.0, 10.0) | vec3(12.0, 13.0, 14.0) ]; 237e5c31af7Sopenharmony_ci } 238e5c31af7Sopenharmony_ci 239e5c31af7Sopenharmony_ci both "" 240e5c31af7Sopenharmony_ci #version 310 es 241e5c31af7Sopenharmony_ci precision highp float; 242e5c31af7Sopenharmony_ci ${DECLARATIONS} 243e5c31af7Sopenharmony_ci 244e5c31af7Sopenharmony_ci void main() 245e5c31af7Sopenharmony_ci { 246e5c31af7Sopenharmony_ci ${SETUP} 247e5c31af7Sopenharmony_ci out0 = in0 + vec3(1.0, 2.0, 3.0); 248e5c31af7Sopenharmony_ci ${OUTPUT} 249e5c31af7Sopenharmony_ci } 250e5c31af7Sopenharmony_ci "" 251e5c31af7Sopenharmony_ci end 252e5c31af7Sopenharmony_ci case uint_to_vec4 253e5c31af7Sopenharmony_ci version 310 es 254e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 255e5c31af7Sopenharmony_ci values 256e5c31af7Sopenharmony_ci { 257e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 258e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(2.0, 3.0, 4.0, 5.0) | vec4(4.0, 5.0, 6.0, 7.0) | vec4(5.0, 6.0, 7.0, 8.0) | vec4(8.0, 9.0, 10.0, 11.0) | vec4(12.0, 13.0, 14.0, 15.0) ]; 259e5c31af7Sopenharmony_ci } 260e5c31af7Sopenharmony_ci 261e5c31af7Sopenharmony_ci both "" 262e5c31af7Sopenharmony_ci #version 310 es 263e5c31af7Sopenharmony_ci precision highp float; 264e5c31af7Sopenharmony_ci ${DECLARATIONS} 265e5c31af7Sopenharmony_ci 266e5c31af7Sopenharmony_ci void main() 267e5c31af7Sopenharmony_ci { 268e5c31af7Sopenharmony_ci ${SETUP} 269e5c31af7Sopenharmony_ci out0 = in0 + vec4(1.0, 2.0, 3.0, 4.0); 270e5c31af7Sopenharmony_ci ${OUTPUT} 271e5c31af7Sopenharmony_ci } 272e5c31af7Sopenharmony_ci "" 273e5c31af7Sopenharmony_ci end 274e5c31af7Sopenharmony_ci case ivec2_to_uvec2 275e5c31af7Sopenharmony_ci version 310 es 276e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 277e5c31af7Sopenharmony_ci values 278e5c31af7Sopenharmony_ci { 279e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 280e5c31af7Sopenharmony_ci output uvec2 out0 = [ uvec2(2, 4) | uvec2(3, 3) | uvec2(4, 9) ]; 281e5c31af7Sopenharmony_ci } 282e5c31af7Sopenharmony_ci 283e5c31af7Sopenharmony_ci both "" 284e5c31af7Sopenharmony_ci #version 310 es 285e5c31af7Sopenharmony_ci precision highp float; 286e5c31af7Sopenharmony_ci ${DECLARATIONS} 287e5c31af7Sopenharmony_ci 288e5c31af7Sopenharmony_ci void main() 289e5c31af7Sopenharmony_ci { 290e5c31af7Sopenharmony_ci ${SETUP} 291e5c31af7Sopenharmony_ci out0 = in0 + uvec2(1, 2); 292e5c31af7Sopenharmony_ci ${OUTPUT} 293e5c31af7Sopenharmony_ci } 294e5c31af7Sopenharmony_ci "" 295e5c31af7Sopenharmony_ci end 296e5c31af7Sopenharmony_ci case ivec2_to_vec2 297e5c31af7Sopenharmony_ci version 310 es 298e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 299e5c31af7Sopenharmony_ci values 300e5c31af7Sopenharmony_ci { 301e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 302e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(2.0, 4.0) | vec2(3.0, 3.0) | vec2(4.0, 9.0) ]; 303e5c31af7Sopenharmony_ci } 304e5c31af7Sopenharmony_ci 305e5c31af7Sopenharmony_ci both "" 306e5c31af7Sopenharmony_ci #version 310 es 307e5c31af7Sopenharmony_ci precision highp float; 308e5c31af7Sopenharmony_ci ${DECLARATIONS} 309e5c31af7Sopenharmony_ci 310e5c31af7Sopenharmony_ci void main() 311e5c31af7Sopenharmony_ci { 312e5c31af7Sopenharmony_ci ${SETUP} 313e5c31af7Sopenharmony_ci out0 = in0 + vec2(1.0, 2.0); 314e5c31af7Sopenharmony_ci ${OUTPUT} 315e5c31af7Sopenharmony_ci } 316e5c31af7Sopenharmony_ci "" 317e5c31af7Sopenharmony_ci end 318e5c31af7Sopenharmony_ci case uvec2_to_vec2 319e5c31af7Sopenharmony_ci version 310 es 320e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 321e5c31af7Sopenharmony_ci values 322e5c31af7Sopenharmony_ci { 323e5c31af7Sopenharmony_ci input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 324e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(3.0, 5.0) | vec2(5.0, 8.0) | vec2(2.0, 15.0) ]; 325e5c31af7Sopenharmony_ci } 326e5c31af7Sopenharmony_ci 327e5c31af7Sopenharmony_ci both "" 328e5c31af7Sopenharmony_ci #version 310 es 329e5c31af7Sopenharmony_ci precision highp float; 330e5c31af7Sopenharmony_ci ${DECLARATIONS} 331e5c31af7Sopenharmony_ci 332e5c31af7Sopenharmony_ci void main() 333e5c31af7Sopenharmony_ci { 334e5c31af7Sopenharmony_ci ${SETUP} 335e5c31af7Sopenharmony_ci out0 = in0 + vec2(1.0, 2.0); 336e5c31af7Sopenharmony_ci ${OUTPUT} 337e5c31af7Sopenharmony_ci } 338e5c31af7Sopenharmony_ci "" 339e5c31af7Sopenharmony_ci end 340e5c31af7Sopenharmony_ci case ivec3_to_uvec3 341e5c31af7Sopenharmony_ci version 310 es 342e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 343e5c31af7Sopenharmony_ci values 344e5c31af7Sopenharmony_ci { 345e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 346e5c31af7Sopenharmony_ci output uvec3 out0 = [ uvec3(2, 4, 6) | uvec3(3, 3, 5) | uvec3(4, 9, 5) ]; 347e5c31af7Sopenharmony_ci } 348e5c31af7Sopenharmony_ci 349e5c31af7Sopenharmony_ci both "" 350e5c31af7Sopenharmony_ci #version 310 es 351e5c31af7Sopenharmony_ci precision highp float; 352e5c31af7Sopenharmony_ci ${DECLARATIONS} 353e5c31af7Sopenharmony_ci 354e5c31af7Sopenharmony_ci void main() 355e5c31af7Sopenharmony_ci { 356e5c31af7Sopenharmony_ci ${SETUP} 357e5c31af7Sopenharmony_ci out0 = in0 + uvec3(1, 2, 3); 358e5c31af7Sopenharmony_ci ${OUTPUT} 359e5c31af7Sopenharmony_ci } 360e5c31af7Sopenharmony_ci "" 361e5c31af7Sopenharmony_ci end 362e5c31af7Sopenharmony_ci case ivec3_to_vec3 363e5c31af7Sopenharmony_ci version 310 es 364e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 365e5c31af7Sopenharmony_ci values 366e5c31af7Sopenharmony_ci { 367e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 368e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(2.0, 4.0, 6.0) | vec3(3.0, 3.0, 5.0) | vec3(4.0, 9.0, 5.0) ]; 369e5c31af7Sopenharmony_ci } 370e5c31af7Sopenharmony_ci 371e5c31af7Sopenharmony_ci both "" 372e5c31af7Sopenharmony_ci #version 310 es 373e5c31af7Sopenharmony_ci precision highp float; 374e5c31af7Sopenharmony_ci ${DECLARATIONS} 375e5c31af7Sopenharmony_ci 376e5c31af7Sopenharmony_ci void main() 377e5c31af7Sopenharmony_ci { 378e5c31af7Sopenharmony_ci ${SETUP} 379e5c31af7Sopenharmony_ci out0 = in0 + vec3(1.0, 2.0, 3.0); 380e5c31af7Sopenharmony_ci ${OUTPUT} 381e5c31af7Sopenharmony_ci } 382e5c31af7Sopenharmony_ci "" 383e5c31af7Sopenharmony_ci end 384e5c31af7Sopenharmony_ci case uvec3_to_vec3 385e5c31af7Sopenharmony_ci version 310 es 386e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 387e5c31af7Sopenharmony_ci values 388e5c31af7Sopenharmony_ci { 389e5c31af7Sopenharmony_ci input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 390e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(3.0, 5.0, 8.0) | vec3(5.0, 8.0, 5.0) | vec3(2.0, 15.0, 10.0) ]; 391e5c31af7Sopenharmony_ci } 392e5c31af7Sopenharmony_ci 393e5c31af7Sopenharmony_ci both "" 394e5c31af7Sopenharmony_ci #version 310 es 395e5c31af7Sopenharmony_ci precision highp float; 396e5c31af7Sopenharmony_ci ${DECLARATIONS} 397e5c31af7Sopenharmony_ci 398e5c31af7Sopenharmony_ci void main() 399e5c31af7Sopenharmony_ci { 400e5c31af7Sopenharmony_ci ${SETUP} 401e5c31af7Sopenharmony_ci out0 = in0 + vec3(1.0, 2.0, 3.0); 402e5c31af7Sopenharmony_ci ${OUTPUT} 403e5c31af7Sopenharmony_ci } 404e5c31af7Sopenharmony_ci "" 405e5c31af7Sopenharmony_ci end 406e5c31af7Sopenharmony_ci case ivec4_to_uvec4 407e5c31af7Sopenharmony_ci version 310 es 408e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 409e5c31af7Sopenharmony_ci values 410e5c31af7Sopenharmony_ci { 411e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 412e5c31af7Sopenharmony_ci output uvec4 out0 = [ uvec4(2, 4, 6, 8) | uvec4(3, 3, 5, 10) | uvec4(4, 9, 5, 9) ]; 413e5c31af7Sopenharmony_ci } 414e5c31af7Sopenharmony_ci 415e5c31af7Sopenharmony_ci both "" 416e5c31af7Sopenharmony_ci #version 310 es 417e5c31af7Sopenharmony_ci precision highp float; 418e5c31af7Sopenharmony_ci ${DECLARATIONS} 419e5c31af7Sopenharmony_ci 420e5c31af7Sopenharmony_ci void main() 421e5c31af7Sopenharmony_ci { 422e5c31af7Sopenharmony_ci ${SETUP} 423e5c31af7Sopenharmony_ci out0 = in0 + uvec4(1, 2, 3, 4); 424e5c31af7Sopenharmony_ci ${OUTPUT} 425e5c31af7Sopenharmony_ci } 426e5c31af7Sopenharmony_ci "" 427e5c31af7Sopenharmony_ci end 428e5c31af7Sopenharmony_ci case ivec4_to_vec4 429e5c31af7Sopenharmony_ci version 310 es 430e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 431e5c31af7Sopenharmony_ci values 432e5c31af7Sopenharmony_ci { 433e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 434e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(2.0, 4.0, 6.0, 8.0) | vec4(3.0, 3.0, 5.0, 10.0) | vec4(4.0, 9.0, 5.0, 9.0) ]; 435e5c31af7Sopenharmony_ci } 436e5c31af7Sopenharmony_ci 437e5c31af7Sopenharmony_ci both "" 438e5c31af7Sopenharmony_ci #version 310 es 439e5c31af7Sopenharmony_ci precision highp float; 440e5c31af7Sopenharmony_ci ${DECLARATIONS} 441e5c31af7Sopenharmony_ci 442e5c31af7Sopenharmony_ci void main() 443e5c31af7Sopenharmony_ci { 444e5c31af7Sopenharmony_ci ${SETUP} 445e5c31af7Sopenharmony_ci out0 = in0 + vec4(1.0, 2.0, 3.0, 4.0); 446e5c31af7Sopenharmony_ci ${OUTPUT} 447e5c31af7Sopenharmony_ci } 448e5c31af7Sopenharmony_ci "" 449e5c31af7Sopenharmony_ci end 450e5c31af7Sopenharmony_ci case uvec4_to_vec4 451e5c31af7Sopenharmony_ci version 310 es 452e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 453e5c31af7Sopenharmony_ci values 454e5c31af7Sopenharmony_ci { 455e5c31af7Sopenharmony_ci input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 456e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(3.0, 5.0, 8.0, 12.0) | vec4(5.0, 8.0, 5.0, 13.0) | vec4(2.0, 15.0, 10.0, 8.0) ]; 457e5c31af7Sopenharmony_ci } 458e5c31af7Sopenharmony_ci 459e5c31af7Sopenharmony_ci both "" 460e5c31af7Sopenharmony_ci #version 310 es 461e5c31af7Sopenharmony_ci precision highp float; 462e5c31af7Sopenharmony_ci ${DECLARATIONS} 463e5c31af7Sopenharmony_ci 464e5c31af7Sopenharmony_ci void main() 465e5c31af7Sopenharmony_ci { 466e5c31af7Sopenharmony_ci ${SETUP} 467e5c31af7Sopenharmony_ci out0 = in0 + vec4(1.0, 2.0, 3.0, 4.0); 468e5c31af7Sopenharmony_ci ${OUTPUT} 469e5c31af7Sopenharmony_ci } 470e5c31af7Sopenharmony_ci "" 471e5c31af7Sopenharmony_ci end 472e5c31af7Sopenharmony_ci 473e5c31af7Sopenharmony_ci end # add 474e5c31af7Sopenharmony_ci group sub "Subtraction" 475e5c31af7Sopenharmony_ci 476e5c31af7Sopenharmony_ci case int_to_float 477e5c31af7Sopenharmony_ci version 310 es 478e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 479e5c31af7Sopenharmony_ci values 480e5c31af7Sopenharmony_ci { 481e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 482e5c31af7Sopenharmony_ci output float out0 = [ 0.0 | -1.0 | -1.0 | 1.0 | 3.0 ]; 483e5c31af7Sopenharmony_ci } 484e5c31af7Sopenharmony_ci 485e5c31af7Sopenharmony_ci both "" 486e5c31af7Sopenharmony_ci #version 310 es 487e5c31af7Sopenharmony_ci precision highp float; 488e5c31af7Sopenharmony_ci ${DECLARATIONS} 489e5c31af7Sopenharmony_ci 490e5c31af7Sopenharmony_ci void main() 491e5c31af7Sopenharmony_ci { 492e5c31af7Sopenharmony_ci ${SETUP} 493e5c31af7Sopenharmony_ci out0 = in0 - 2.0; 494e5c31af7Sopenharmony_ci ${OUTPUT} 495e5c31af7Sopenharmony_ci } 496e5c31af7Sopenharmony_ci "" 497e5c31af7Sopenharmony_ci end 498e5c31af7Sopenharmony_ci case int_to_vec2 499e5c31af7Sopenharmony_ci version 310 es 500e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 501e5c31af7Sopenharmony_ci values 502e5c31af7Sopenharmony_ci { 503e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 504e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(1.0, 0.0) | vec2(0.0, -1.0) | vec2(0.0, -1.0) | vec2(2.0, 1.0) | vec2(4.0, 3.0) ]; 505e5c31af7Sopenharmony_ci } 506e5c31af7Sopenharmony_ci 507e5c31af7Sopenharmony_ci both "" 508e5c31af7Sopenharmony_ci #version 310 es 509e5c31af7Sopenharmony_ci precision highp float; 510e5c31af7Sopenharmony_ci ${DECLARATIONS} 511e5c31af7Sopenharmony_ci 512e5c31af7Sopenharmony_ci void main() 513e5c31af7Sopenharmony_ci { 514e5c31af7Sopenharmony_ci ${SETUP} 515e5c31af7Sopenharmony_ci out0 = in0 - vec2(1.0, 2.0); 516e5c31af7Sopenharmony_ci ${OUTPUT} 517e5c31af7Sopenharmony_ci } 518e5c31af7Sopenharmony_ci "" 519e5c31af7Sopenharmony_ci end 520e5c31af7Sopenharmony_ci case int_to_vec3 521e5c31af7Sopenharmony_ci version 310 es 522e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 523e5c31af7Sopenharmony_ci values 524e5c31af7Sopenharmony_ci { 525e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 526e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(1.0, 0.0, -1.0) | vec3(0.0, -1.0, -2.0) | vec3(0.0, -1.0, -2.0) | vec3(2.0, 1.0, 0.0) | vec3(4.0, 3.0, 2.0) ]; 527e5c31af7Sopenharmony_ci } 528e5c31af7Sopenharmony_ci 529e5c31af7Sopenharmony_ci both "" 530e5c31af7Sopenharmony_ci #version 310 es 531e5c31af7Sopenharmony_ci precision highp float; 532e5c31af7Sopenharmony_ci ${DECLARATIONS} 533e5c31af7Sopenharmony_ci 534e5c31af7Sopenharmony_ci void main() 535e5c31af7Sopenharmony_ci { 536e5c31af7Sopenharmony_ci ${SETUP} 537e5c31af7Sopenharmony_ci out0 = in0 - vec3(1.0, 2.0, 3.0); 538e5c31af7Sopenharmony_ci ${OUTPUT} 539e5c31af7Sopenharmony_ci } 540e5c31af7Sopenharmony_ci "" 541e5c31af7Sopenharmony_ci end 542e5c31af7Sopenharmony_ci case int_to_vec4 543e5c31af7Sopenharmony_ci version 310 es 544e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 545e5c31af7Sopenharmony_ci values 546e5c31af7Sopenharmony_ci { 547e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 548e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(1.0, 0.0, -1.0, -2.0) | vec4(0.0, -1.0, -2.0, -3.0) | vec4(0.0, -1.0, -2.0, -3.0) | vec4(2.0, 1.0, 0.0, -1.0) | vec4(4.0, 3.0, 2.0, 1.0) ]; 549e5c31af7Sopenharmony_ci } 550e5c31af7Sopenharmony_ci 551e5c31af7Sopenharmony_ci both "" 552e5c31af7Sopenharmony_ci #version 310 es 553e5c31af7Sopenharmony_ci precision highp float; 554e5c31af7Sopenharmony_ci ${DECLARATIONS} 555e5c31af7Sopenharmony_ci 556e5c31af7Sopenharmony_ci void main() 557e5c31af7Sopenharmony_ci { 558e5c31af7Sopenharmony_ci ${SETUP} 559e5c31af7Sopenharmony_ci out0 = in0 - vec4(1.0, 2.0, 3.0, 4.0); 560e5c31af7Sopenharmony_ci ${OUTPUT} 561e5c31af7Sopenharmony_ci } 562e5c31af7Sopenharmony_ci "" 563e5c31af7Sopenharmony_ci end 564e5c31af7Sopenharmony_ci case uint_to_float 565e5c31af7Sopenharmony_ci version 310 es 566e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 567e5c31af7Sopenharmony_ci values 568e5c31af7Sopenharmony_ci { 569e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 570e5c31af7Sopenharmony_ci output float out0 = [ -1.0 | 1.0 | 2.0 | 5.0 | 9.0 ]; 571e5c31af7Sopenharmony_ci } 572e5c31af7Sopenharmony_ci 573e5c31af7Sopenharmony_ci both "" 574e5c31af7Sopenharmony_ci #version 310 es 575e5c31af7Sopenharmony_ci precision highp float; 576e5c31af7Sopenharmony_ci ${DECLARATIONS} 577e5c31af7Sopenharmony_ci 578e5c31af7Sopenharmony_ci void main() 579e5c31af7Sopenharmony_ci { 580e5c31af7Sopenharmony_ci ${SETUP} 581e5c31af7Sopenharmony_ci out0 = in0 - 2.0; 582e5c31af7Sopenharmony_ci ${OUTPUT} 583e5c31af7Sopenharmony_ci } 584e5c31af7Sopenharmony_ci "" 585e5c31af7Sopenharmony_ci end 586e5c31af7Sopenharmony_ci case uint_to_vec2 587e5c31af7Sopenharmony_ci version 310 es 588e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 589e5c31af7Sopenharmony_ci values 590e5c31af7Sopenharmony_ci { 591e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 592e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(0.0, -1.0) | vec2(2.0, 1.0) | vec2(3.0, 2.0) | vec2(6.0, 5.0) | vec2(10.0, 9.0) ]; 593e5c31af7Sopenharmony_ci } 594e5c31af7Sopenharmony_ci 595e5c31af7Sopenharmony_ci both "" 596e5c31af7Sopenharmony_ci #version 310 es 597e5c31af7Sopenharmony_ci precision highp float; 598e5c31af7Sopenharmony_ci ${DECLARATIONS} 599e5c31af7Sopenharmony_ci 600e5c31af7Sopenharmony_ci void main() 601e5c31af7Sopenharmony_ci { 602e5c31af7Sopenharmony_ci ${SETUP} 603e5c31af7Sopenharmony_ci out0 = in0 - vec2(1.0, 2.0); 604e5c31af7Sopenharmony_ci ${OUTPUT} 605e5c31af7Sopenharmony_ci } 606e5c31af7Sopenharmony_ci "" 607e5c31af7Sopenharmony_ci end 608e5c31af7Sopenharmony_ci case uint_to_vec3 609e5c31af7Sopenharmony_ci version 310 es 610e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 611e5c31af7Sopenharmony_ci values 612e5c31af7Sopenharmony_ci { 613e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 614e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(0.0, -1.0, -2.0) | vec3(2.0, 1.0, 0.0) | vec3(3.0, 2.0, 1.0) | vec3(6.0, 5.0, 4.0) | vec3(10.0, 9.0, 8.0) ]; 615e5c31af7Sopenharmony_ci } 616e5c31af7Sopenharmony_ci 617e5c31af7Sopenharmony_ci both "" 618e5c31af7Sopenharmony_ci #version 310 es 619e5c31af7Sopenharmony_ci precision highp float; 620e5c31af7Sopenharmony_ci ${DECLARATIONS} 621e5c31af7Sopenharmony_ci 622e5c31af7Sopenharmony_ci void main() 623e5c31af7Sopenharmony_ci { 624e5c31af7Sopenharmony_ci ${SETUP} 625e5c31af7Sopenharmony_ci out0 = in0 - vec3(1.0, 2.0, 3.0); 626e5c31af7Sopenharmony_ci ${OUTPUT} 627e5c31af7Sopenharmony_ci } 628e5c31af7Sopenharmony_ci "" 629e5c31af7Sopenharmony_ci end 630e5c31af7Sopenharmony_ci case uint_to_vec4 631e5c31af7Sopenharmony_ci version 310 es 632e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 633e5c31af7Sopenharmony_ci values 634e5c31af7Sopenharmony_ci { 635e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 636e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(0.0, -1.0, -2.0, -3.0) | vec4(2.0, 1.0, 0.0, -1.0) | vec4(3.0, 2.0, 1.0, 0.0) | vec4(6.0, 5.0, 4.0, 3.0) | vec4(10.0, 9.0, 8.0, 7.0) ]; 637e5c31af7Sopenharmony_ci } 638e5c31af7Sopenharmony_ci 639e5c31af7Sopenharmony_ci both "" 640e5c31af7Sopenharmony_ci #version 310 es 641e5c31af7Sopenharmony_ci precision highp float; 642e5c31af7Sopenharmony_ci ${DECLARATIONS} 643e5c31af7Sopenharmony_ci 644e5c31af7Sopenharmony_ci void main() 645e5c31af7Sopenharmony_ci { 646e5c31af7Sopenharmony_ci ${SETUP} 647e5c31af7Sopenharmony_ci out0 = in0 - vec4(1.0, 2.0, 3.0, 4.0); 648e5c31af7Sopenharmony_ci ${OUTPUT} 649e5c31af7Sopenharmony_ci } 650e5c31af7Sopenharmony_ci "" 651e5c31af7Sopenharmony_ci end 652e5c31af7Sopenharmony_ci case ivec2_to_vec2 653e5c31af7Sopenharmony_ci version 310 es 654e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 655e5c31af7Sopenharmony_ci values 656e5c31af7Sopenharmony_ci { 657e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 658e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(0.0, 0.0) | vec2(1.0, -1.0) | vec2(2.0, 5.0) ]; 659e5c31af7Sopenharmony_ci } 660e5c31af7Sopenharmony_ci 661e5c31af7Sopenharmony_ci both "" 662e5c31af7Sopenharmony_ci #version 310 es 663e5c31af7Sopenharmony_ci precision highp float; 664e5c31af7Sopenharmony_ci ${DECLARATIONS} 665e5c31af7Sopenharmony_ci 666e5c31af7Sopenharmony_ci void main() 667e5c31af7Sopenharmony_ci { 668e5c31af7Sopenharmony_ci ${SETUP} 669e5c31af7Sopenharmony_ci out0 = in0 - vec2(1.0, 2.0); 670e5c31af7Sopenharmony_ci ${OUTPUT} 671e5c31af7Sopenharmony_ci } 672e5c31af7Sopenharmony_ci "" 673e5c31af7Sopenharmony_ci end 674e5c31af7Sopenharmony_ci case uvec2_to_vec2 675e5c31af7Sopenharmony_ci version 310 es 676e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 677e5c31af7Sopenharmony_ci values 678e5c31af7Sopenharmony_ci { 679e5c31af7Sopenharmony_ci input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 680e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(1.0, 1.0) | vec2(3.0, 4.0) | vec2(0.0, 11.0) ]; 681e5c31af7Sopenharmony_ci } 682e5c31af7Sopenharmony_ci 683e5c31af7Sopenharmony_ci both "" 684e5c31af7Sopenharmony_ci #version 310 es 685e5c31af7Sopenharmony_ci precision highp float; 686e5c31af7Sopenharmony_ci ${DECLARATIONS} 687e5c31af7Sopenharmony_ci 688e5c31af7Sopenharmony_ci void main() 689e5c31af7Sopenharmony_ci { 690e5c31af7Sopenharmony_ci ${SETUP} 691e5c31af7Sopenharmony_ci out0 = in0 - vec2(1.0, 2.0); 692e5c31af7Sopenharmony_ci ${OUTPUT} 693e5c31af7Sopenharmony_ci } 694e5c31af7Sopenharmony_ci "" 695e5c31af7Sopenharmony_ci end 696e5c31af7Sopenharmony_ci case ivec3_to_vec3 697e5c31af7Sopenharmony_ci version 310 es 698e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 699e5c31af7Sopenharmony_ci values 700e5c31af7Sopenharmony_ci { 701e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 702e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(0.0, 0.0, 0.0) | vec3(1.0, -1.0, -1.0) | vec3(2.0, 5.0, -1.0) ]; 703e5c31af7Sopenharmony_ci } 704e5c31af7Sopenharmony_ci 705e5c31af7Sopenharmony_ci both "" 706e5c31af7Sopenharmony_ci #version 310 es 707e5c31af7Sopenharmony_ci precision highp float; 708e5c31af7Sopenharmony_ci ${DECLARATIONS} 709e5c31af7Sopenharmony_ci 710e5c31af7Sopenharmony_ci void main() 711e5c31af7Sopenharmony_ci { 712e5c31af7Sopenharmony_ci ${SETUP} 713e5c31af7Sopenharmony_ci out0 = in0 - vec3(1.0, 2.0, 3.0); 714e5c31af7Sopenharmony_ci ${OUTPUT} 715e5c31af7Sopenharmony_ci } 716e5c31af7Sopenharmony_ci "" 717e5c31af7Sopenharmony_ci end 718e5c31af7Sopenharmony_ci case uvec3_to_vec3 719e5c31af7Sopenharmony_ci version 310 es 720e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 721e5c31af7Sopenharmony_ci values 722e5c31af7Sopenharmony_ci { 723e5c31af7Sopenharmony_ci input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 724e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(1.0, 1.0, 2.0) | vec3(3.0, 4.0, -1.0) | vec3(0.0, 11.0, 4.0) ]; 725e5c31af7Sopenharmony_ci } 726e5c31af7Sopenharmony_ci 727e5c31af7Sopenharmony_ci both "" 728e5c31af7Sopenharmony_ci #version 310 es 729e5c31af7Sopenharmony_ci precision highp float; 730e5c31af7Sopenharmony_ci ${DECLARATIONS} 731e5c31af7Sopenharmony_ci 732e5c31af7Sopenharmony_ci void main() 733e5c31af7Sopenharmony_ci { 734e5c31af7Sopenharmony_ci ${SETUP} 735e5c31af7Sopenharmony_ci out0 = in0 - vec3(1.0, 2.0, 3.0); 736e5c31af7Sopenharmony_ci ${OUTPUT} 737e5c31af7Sopenharmony_ci } 738e5c31af7Sopenharmony_ci "" 739e5c31af7Sopenharmony_ci end 740e5c31af7Sopenharmony_ci case ivec4_to_vec4 741e5c31af7Sopenharmony_ci version 310 es 742e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 743e5c31af7Sopenharmony_ci values 744e5c31af7Sopenharmony_ci { 745e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 746e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(0.0, 0.0, 0.0, 0.0) | vec4(1.0, -1.0, -1.0, 2.0) | vec4(2.0, 5.0, -1.0, 1.0) ]; 747e5c31af7Sopenharmony_ci } 748e5c31af7Sopenharmony_ci 749e5c31af7Sopenharmony_ci both "" 750e5c31af7Sopenharmony_ci #version 310 es 751e5c31af7Sopenharmony_ci precision highp float; 752e5c31af7Sopenharmony_ci ${DECLARATIONS} 753e5c31af7Sopenharmony_ci 754e5c31af7Sopenharmony_ci void main() 755e5c31af7Sopenharmony_ci { 756e5c31af7Sopenharmony_ci ${SETUP} 757e5c31af7Sopenharmony_ci out0 = in0 - vec4(1.0, 2.0, 3.0, 4.0); 758e5c31af7Sopenharmony_ci ${OUTPUT} 759e5c31af7Sopenharmony_ci } 760e5c31af7Sopenharmony_ci "" 761e5c31af7Sopenharmony_ci end 762e5c31af7Sopenharmony_ci case uvec4_to_vec4 763e5c31af7Sopenharmony_ci version 310 es 764e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 765e5c31af7Sopenharmony_ci values 766e5c31af7Sopenharmony_ci { 767e5c31af7Sopenharmony_ci input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 768e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(1.0, 1.0, 2.0, 4.0) | vec4(3.0, 4.0, -1.0, 5.0) | vec4(0.0, 11.0, 4.0, 0.0) ]; 769e5c31af7Sopenharmony_ci } 770e5c31af7Sopenharmony_ci 771e5c31af7Sopenharmony_ci both "" 772e5c31af7Sopenharmony_ci #version 310 es 773e5c31af7Sopenharmony_ci precision highp float; 774e5c31af7Sopenharmony_ci ${DECLARATIONS} 775e5c31af7Sopenharmony_ci 776e5c31af7Sopenharmony_ci void main() 777e5c31af7Sopenharmony_ci { 778e5c31af7Sopenharmony_ci ${SETUP} 779e5c31af7Sopenharmony_ci out0 = in0 - vec4(1.0, 2.0, 3.0, 4.0); 780e5c31af7Sopenharmony_ci ${OUTPUT} 781e5c31af7Sopenharmony_ci } 782e5c31af7Sopenharmony_ci "" 783e5c31af7Sopenharmony_ci end 784e5c31af7Sopenharmony_ci 785e5c31af7Sopenharmony_ci end # sub 786e5c31af7Sopenharmony_ci group mul "Multiplication" 787e5c31af7Sopenharmony_ci 788e5c31af7Sopenharmony_ci case int_to_float 789e5c31af7Sopenharmony_ci version 310 es 790e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 791e5c31af7Sopenharmony_ci values 792e5c31af7Sopenharmony_ci { 793e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 794e5c31af7Sopenharmony_ci output float out0 = [ 4.0 | 2.0 | 2.0 | 6.0 | 10.0 ]; 795e5c31af7Sopenharmony_ci } 796e5c31af7Sopenharmony_ci 797e5c31af7Sopenharmony_ci both "" 798e5c31af7Sopenharmony_ci #version 310 es 799e5c31af7Sopenharmony_ci precision highp float; 800e5c31af7Sopenharmony_ci ${DECLARATIONS} 801e5c31af7Sopenharmony_ci 802e5c31af7Sopenharmony_ci void main() 803e5c31af7Sopenharmony_ci { 804e5c31af7Sopenharmony_ci ${SETUP} 805e5c31af7Sopenharmony_ci out0 = in0 * 2.0; 806e5c31af7Sopenharmony_ci ${OUTPUT} 807e5c31af7Sopenharmony_ci } 808e5c31af7Sopenharmony_ci "" 809e5c31af7Sopenharmony_ci end 810e5c31af7Sopenharmony_ci case int_to_uint 811e5c31af7Sopenharmony_ci version 310 es 812e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 813e5c31af7Sopenharmony_ci values 814e5c31af7Sopenharmony_ci { 815e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 816e5c31af7Sopenharmony_ci output uint out0 = [ 4 | 2 | 2 | 6 | 10 ]; 817e5c31af7Sopenharmony_ci } 818e5c31af7Sopenharmony_ci 819e5c31af7Sopenharmony_ci both "" 820e5c31af7Sopenharmony_ci #version 310 es 821e5c31af7Sopenharmony_ci precision highp float; 822e5c31af7Sopenharmony_ci ${DECLARATIONS} 823e5c31af7Sopenharmony_ci 824e5c31af7Sopenharmony_ci void main() 825e5c31af7Sopenharmony_ci { 826e5c31af7Sopenharmony_ci ${SETUP} 827e5c31af7Sopenharmony_ci out0 = in0 * 2; 828e5c31af7Sopenharmony_ci ${OUTPUT} 829e5c31af7Sopenharmony_ci } 830e5c31af7Sopenharmony_ci "" 831e5c31af7Sopenharmony_ci end 832e5c31af7Sopenharmony_ci case int_to_vec2 833e5c31af7Sopenharmony_ci version 310 es 834e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 835e5c31af7Sopenharmony_ci values 836e5c31af7Sopenharmony_ci { 837e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 838e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(2.0, 4.0) | vec2(1.0, 2.0) | vec2(1.0, 2.0) | vec2(3.0, 6.0) | vec2(5.0, 10.0) ]; 839e5c31af7Sopenharmony_ci } 840e5c31af7Sopenharmony_ci 841e5c31af7Sopenharmony_ci both "" 842e5c31af7Sopenharmony_ci #version 310 es 843e5c31af7Sopenharmony_ci precision highp float; 844e5c31af7Sopenharmony_ci ${DECLARATIONS} 845e5c31af7Sopenharmony_ci 846e5c31af7Sopenharmony_ci void main() 847e5c31af7Sopenharmony_ci { 848e5c31af7Sopenharmony_ci ${SETUP} 849e5c31af7Sopenharmony_ci out0 = in0 * vec2(1.0, 2.0); 850e5c31af7Sopenharmony_ci ${OUTPUT} 851e5c31af7Sopenharmony_ci } 852e5c31af7Sopenharmony_ci "" 853e5c31af7Sopenharmony_ci end 854e5c31af7Sopenharmony_ci case int_to_vec3 855e5c31af7Sopenharmony_ci version 310 es 856e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 857e5c31af7Sopenharmony_ci values 858e5c31af7Sopenharmony_ci { 859e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 860e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(2.0, 4.0, 6.0) | vec3(1.0, 2.0, 3.0) | vec3(1.0, 2.0, 3.0) | vec3(3.0, 6.0, 9.0) | vec3(5.0, 10.0, 15.0) ]; 861e5c31af7Sopenharmony_ci } 862e5c31af7Sopenharmony_ci 863e5c31af7Sopenharmony_ci both "" 864e5c31af7Sopenharmony_ci #version 310 es 865e5c31af7Sopenharmony_ci precision highp float; 866e5c31af7Sopenharmony_ci ${DECLARATIONS} 867e5c31af7Sopenharmony_ci 868e5c31af7Sopenharmony_ci void main() 869e5c31af7Sopenharmony_ci { 870e5c31af7Sopenharmony_ci ${SETUP} 871e5c31af7Sopenharmony_ci out0 = in0 * vec3(1.0, 2.0, 3.0); 872e5c31af7Sopenharmony_ci ${OUTPUT} 873e5c31af7Sopenharmony_ci } 874e5c31af7Sopenharmony_ci "" 875e5c31af7Sopenharmony_ci end 876e5c31af7Sopenharmony_ci case int_to_vec4 877e5c31af7Sopenharmony_ci version 310 es 878e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 879e5c31af7Sopenharmony_ci values 880e5c31af7Sopenharmony_ci { 881e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 882e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(2.0, 4.0, 6.0, 8.0) | vec4(1.0, 2.0, 3.0, 4.0) | vec4(1.0, 2.0, 3.0, 4.0) | vec4(3.0, 6.0, 9.0, 12.0) | vec4(5.0, 10.0, 15.0, 20.0) ]; 883e5c31af7Sopenharmony_ci } 884e5c31af7Sopenharmony_ci 885e5c31af7Sopenharmony_ci both "" 886e5c31af7Sopenharmony_ci #version 310 es 887e5c31af7Sopenharmony_ci precision highp float; 888e5c31af7Sopenharmony_ci ${DECLARATIONS} 889e5c31af7Sopenharmony_ci 890e5c31af7Sopenharmony_ci void main() 891e5c31af7Sopenharmony_ci { 892e5c31af7Sopenharmony_ci ${SETUP} 893e5c31af7Sopenharmony_ci out0 = in0 * vec4(1.0, 2.0, 3.0, 4.0); 894e5c31af7Sopenharmony_ci ${OUTPUT} 895e5c31af7Sopenharmony_ci } 896e5c31af7Sopenharmony_ci "" 897e5c31af7Sopenharmony_ci end 898e5c31af7Sopenharmony_ci case int_to_uvec2 899e5c31af7Sopenharmony_ci version 310 es 900e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 901e5c31af7Sopenharmony_ci values 902e5c31af7Sopenharmony_ci { 903e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 904e5c31af7Sopenharmony_ci output uvec2 out0 = [ uvec2(2, 4) | uvec2(1, 2) | uvec2(1, 2) | uvec2(3, 6) | uvec2(5, 10) ]; 905e5c31af7Sopenharmony_ci } 906e5c31af7Sopenharmony_ci 907e5c31af7Sopenharmony_ci both "" 908e5c31af7Sopenharmony_ci #version 310 es 909e5c31af7Sopenharmony_ci precision highp float; 910e5c31af7Sopenharmony_ci ${DECLARATIONS} 911e5c31af7Sopenharmony_ci 912e5c31af7Sopenharmony_ci void main() 913e5c31af7Sopenharmony_ci { 914e5c31af7Sopenharmony_ci ${SETUP} 915e5c31af7Sopenharmony_ci out0 = in0 * uvec2(1, 2); 916e5c31af7Sopenharmony_ci ${OUTPUT} 917e5c31af7Sopenharmony_ci } 918e5c31af7Sopenharmony_ci "" 919e5c31af7Sopenharmony_ci end 920e5c31af7Sopenharmony_ci case int_to_uvec3 921e5c31af7Sopenharmony_ci version 310 es 922e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 923e5c31af7Sopenharmony_ci values 924e5c31af7Sopenharmony_ci { 925e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 926e5c31af7Sopenharmony_ci output uvec3 out0 = [ uvec3(2, 4, 6) | uvec3(1, 2, 3) | uvec3(1, 2, 3) | uvec3(3, 6, 9) | uvec3(5, 10, 15) ]; 927e5c31af7Sopenharmony_ci } 928e5c31af7Sopenharmony_ci 929e5c31af7Sopenharmony_ci both "" 930e5c31af7Sopenharmony_ci #version 310 es 931e5c31af7Sopenharmony_ci precision highp float; 932e5c31af7Sopenharmony_ci ${DECLARATIONS} 933e5c31af7Sopenharmony_ci 934e5c31af7Sopenharmony_ci void main() 935e5c31af7Sopenharmony_ci { 936e5c31af7Sopenharmony_ci ${SETUP} 937e5c31af7Sopenharmony_ci out0 = in0 * uvec3(1, 2, 3); 938e5c31af7Sopenharmony_ci ${OUTPUT} 939e5c31af7Sopenharmony_ci } 940e5c31af7Sopenharmony_ci "" 941e5c31af7Sopenharmony_ci end 942e5c31af7Sopenharmony_ci case int_to_uvec4 943e5c31af7Sopenharmony_ci version 310 es 944e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 945e5c31af7Sopenharmony_ci values 946e5c31af7Sopenharmony_ci { 947e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 948e5c31af7Sopenharmony_ci output uvec4 out0 = [ uvec4(2, 4, 6, 8) | uvec4(1, 2, 3, 4) | uvec4(1, 2, 3, 4) | uvec4(3, 6, 9, 12) | uvec4(5, 10, 15, 20) ]; 949e5c31af7Sopenharmony_ci } 950e5c31af7Sopenharmony_ci 951e5c31af7Sopenharmony_ci both "" 952e5c31af7Sopenharmony_ci #version 310 es 953e5c31af7Sopenharmony_ci precision highp float; 954e5c31af7Sopenharmony_ci ${DECLARATIONS} 955e5c31af7Sopenharmony_ci 956e5c31af7Sopenharmony_ci void main() 957e5c31af7Sopenharmony_ci { 958e5c31af7Sopenharmony_ci ${SETUP} 959e5c31af7Sopenharmony_ci out0 = in0 * uvec4(1, 2, 3, 4); 960e5c31af7Sopenharmony_ci ${OUTPUT} 961e5c31af7Sopenharmony_ci } 962e5c31af7Sopenharmony_ci "" 963e5c31af7Sopenharmony_ci end 964e5c31af7Sopenharmony_ci case uint_to_float 965e5c31af7Sopenharmony_ci version 310 es 966e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 967e5c31af7Sopenharmony_ci values 968e5c31af7Sopenharmony_ci { 969e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 970e5c31af7Sopenharmony_ci output float out0 = [ 2.0 | 6.0 | 8.0 | 14.0 | 22.0 ]; 971e5c31af7Sopenharmony_ci } 972e5c31af7Sopenharmony_ci 973e5c31af7Sopenharmony_ci both "" 974e5c31af7Sopenharmony_ci #version 310 es 975e5c31af7Sopenharmony_ci precision highp float; 976e5c31af7Sopenharmony_ci ${DECLARATIONS} 977e5c31af7Sopenharmony_ci 978e5c31af7Sopenharmony_ci void main() 979e5c31af7Sopenharmony_ci { 980e5c31af7Sopenharmony_ci ${SETUP} 981e5c31af7Sopenharmony_ci out0 = in0 * 2.0; 982e5c31af7Sopenharmony_ci ${OUTPUT} 983e5c31af7Sopenharmony_ci } 984e5c31af7Sopenharmony_ci "" 985e5c31af7Sopenharmony_ci end 986e5c31af7Sopenharmony_ci case uint_to_vec2 987e5c31af7Sopenharmony_ci version 310 es 988e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 989e5c31af7Sopenharmony_ci values 990e5c31af7Sopenharmony_ci { 991e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 992e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(1.0, 2.0) | vec2(3.0, 6.0) | vec2(4.0, 8.0) | vec2(7.0, 14.0) | vec2(11.0, 22.0) ]; 993e5c31af7Sopenharmony_ci } 994e5c31af7Sopenharmony_ci 995e5c31af7Sopenharmony_ci both "" 996e5c31af7Sopenharmony_ci #version 310 es 997e5c31af7Sopenharmony_ci precision highp float; 998e5c31af7Sopenharmony_ci ${DECLARATIONS} 999e5c31af7Sopenharmony_ci 1000e5c31af7Sopenharmony_ci void main() 1001e5c31af7Sopenharmony_ci { 1002e5c31af7Sopenharmony_ci ${SETUP} 1003e5c31af7Sopenharmony_ci out0 = in0 * vec2(1.0, 2.0); 1004e5c31af7Sopenharmony_ci ${OUTPUT} 1005e5c31af7Sopenharmony_ci } 1006e5c31af7Sopenharmony_ci "" 1007e5c31af7Sopenharmony_ci end 1008e5c31af7Sopenharmony_ci case uint_to_vec3 1009e5c31af7Sopenharmony_ci version 310 es 1010e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1011e5c31af7Sopenharmony_ci values 1012e5c31af7Sopenharmony_ci { 1013e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 1014e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(1.0, 2.0, 3.0) | vec3(3.0, 6.0, 9.0) | vec3(4.0, 8.0, 12.0) | vec3(7.0, 14.0, 21.0) | vec3(11.0, 22.0, 33.0) ]; 1015e5c31af7Sopenharmony_ci } 1016e5c31af7Sopenharmony_ci 1017e5c31af7Sopenharmony_ci both "" 1018e5c31af7Sopenharmony_ci #version 310 es 1019e5c31af7Sopenharmony_ci precision highp float; 1020e5c31af7Sopenharmony_ci ${DECLARATIONS} 1021e5c31af7Sopenharmony_ci 1022e5c31af7Sopenharmony_ci void main() 1023e5c31af7Sopenharmony_ci { 1024e5c31af7Sopenharmony_ci ${SETUP} 1025e5c31af7Sopenharmony_ci out0 = in0 * vec3(1.0, 2.0, 3.0); 1026e5c31af7Sopenharmony_ci ${OUTPUT} 1027e5c31af7Sopenharmony_ci } 1028e5c31af7Sopenharmony_ci "" 1029e5c31af7Sopenharmony_ci end 1030e5c31af7Sopenharmony_ci case uint_to_vec4 1031e5c31af7Sopenharmony_ci version 310 es 1032e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1033e5c31af7Sopenharmony_ci values 1034e5c31af7Sopenharmony_ci { 1035e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 1036e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(1.0, 2.0, 3.0, 4.0) | vec4(3.0, 6.0, 9.0, 12.0) | vec4(4.0, 8.0, 12.0, 16.0) | vec4(7.0, 14.0, 21.0, 28.0) | vec4(11.0, 22.0, 33.0, 44.0) ]; 1037e5c31af7Sopenharmony_ci } 1038e5c31af7Sopenharmony_ci 1039e5c31af7Sopenharmony_ci both "" 1040e5c31af7Sopenharmony_ci #version 310 es 1041e5c31af7Sopenharmony_ci precision highp float; 1042e5c31af7Sopenharmony_ci ${DECLARATIONS} 1043e5c31af7Sopenharmony_ci 1044e5c31af7Sopenharmony_ci void main() 1045e5c31af7Sopenharmony_ci { 1046e5c31af7Sopenharmony_ci ${SETUP} 1047e5c31af7Sopenharmony_ci out0 = in0 * vec4(1.0, 2.0, 3.0, 4.0); 1048e5c31af7Sopenharmony_ci ${OUTPUT} 1049e5c31af7Sopenharmony_ci } 1050e5c31af7Sopenharmony_ci "" 1051e5c31af7Sopenharmony_ci end 1052e5c31af7Sopenharmony_ci case ivec2_to_uvec2 1053e5c31af7Sopenharmony_ci version 310 es 1054e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1055e5c31af7Sopenharmony_ci values 1056e5c31af7Sopenharmony_ci { 1057e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 1058e5c31af7Sopenharmony_ci output uvec2 out0 = [ uvec2(1, 4) | uvec2(2, 2) | uvec2(3, 14) ]; 1059e5c31af7Sopenharmony_ci } 1060e5c31af7Sopenharmony_ci 1061e5c31af7Sopenharmony_ci both "" 1062e5c31af7Sopenharmony_ci #version 310 es 1063e5c31af7Sopenharmony_ci precision highp float; 1064e5c31af7Sopenharmony_ci ${DECLARATIONS} 1065e5c31af7Sopenharmony_ci 1066e5c31af7Sopenharmony_ci void main() 1067e5c31af7Sopenharmony_ci { 1068e5c31af7Sopenharmony_ci ${SETUP} 1069e5c31af7Sopenharmony_ci out0 = in0 * uvec2(1, 2); 1070e5c31af7Sopenharmony_ci ${OUTPUT} 1071e5c31af7Sopenharmony_ci } 1072e5c31af7Sopenharmony_ci "" 1073e5c31af7Sopenharmony_ci end 1074e5c31af7Sopenharmony_ci case ivec2_to_vec2 1075e5c31af7Sopenharmony_ci version 310 es 1076e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1077e5c31af7Sopenharmony_ci values 1078e5c31af7Sopenharmony_ci { 1079e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 1080e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(1.0, 4.0) | vec2(2.0, 2.0) | vec2(3.0, 14.0) ]; 1081e5c31af7Sopenharmony_ci } 1082e5c31af7Sopenharmony_ci 1083e5c31af7Sopenharmony_ci both "" 1084e5c31af7Sopenharmony_ci #version 310 es 1085e5c31af7Sopenharmony_ci precision highp float; 1086e5c31af7Sopenharmony_ci ${DECLARATIONS} 1087e5c31af7Sopenharmony_ci 1088e5c31af7Sopenharmony_ci void main() 1089e5c31af7Sopenharmony_ci { 1090e5c31af7Sopenharmony_ci ${SETUP} 1091e5c31af7Sopenharmony_ci out0 = in0 * vec2(1.0, 2.0); 1092e5c31af7Sopenharmony_ci ${OUTPUT} 1093e5c31af7Sopenharmony_ci } 1094e5c31af7Sopenharmony_ci "" 1095e5c31af7Sopenharmony_ci end 1096e5c31af7Sopenharmony_ci case uvec2_to_vec2 1097e5c31af7Sopenharmony_ci version 310 es 1098e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1099e5c31af7Sopenharmony_ci values 1100e5c31af7Sopenharmony_ci { 1101e5c31af7Sopenharmony_ci input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 1102e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(2.0, 6.0) | vec2(4.0, 12.0) | vec2(1.0, 26.0) ]; 1103e5c31af7Sopenharmony_ci } 1104e5c31af7Sopenharmony_ci 1105e5c31af7Sopenharmony_ci both "" 1106e5c31af7Sopenharmony_ci #version 310 es 1107e5c31af7Sopenharmony_ci precision highp float; 1108e5c31af7Sopenharmony_ci ${DECLARATIONS} 1109e5c31af7Sopenharmony_ci 1110e5c31af7Sopenharmony_ci void main() 1111e5c31af7Sopenharmony_ci { 1112e5c31af7Sopenharmony_ci ${SETUP} 1113e5c31af7Sopenharmony_ci out0 = in0 * vec2(1.0, 2.0); 1114e5c31af7Sopenharmony_ci ${OUTPUT} 1115e5c31af7Sopenharmony_ci } 1116e5c31af7Sopenharmony_ci "" 1117e5c31af7Sopenharmony_ci end 1118e5c31af7Sopenharmony_ci case ivec3_to_uvec3 1119e5c31af7Sopenharmony_ci version 310 es 1120e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1121e5c31af7Sopenharmony_ci values 1122e5c31af7Sopenharmony_ci { 1123e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 1124e5c31af7Sopenharmony_ci output uvec3 out0 = [ uvec3(1, 4, 9) | uvec3(2, 2, 6) | uvec3(3, 14, 6) ]; 1125e5c31af7Sopenharmony_ci } 1126e5c31af7Sopenharmony_ci 1127e5c31af7Sopenharmony_ci both "" 1128e5c31af7Sopenharmony_ci #version 310 es 1129e5c31af7Sopenharmony_ci precision highp float; 1130e5c31af7Sopenharmony_ci ${DECLARATIONS} 1131e5c31af7Sopenharmony_ci 1132e5c31af7Sopenharmony_ci void main() 1133e5c31af7Sopenharmony_ci { 1134e5c31af7Sopenharmony_ci ${SETUP} 1135e5c31af7Sopenharmony_ci out0 = in0 * uvec3(1, 2, 3); 1136e5c31af7Sopenharmony_ci ${OUTPUT} 1137e5c31af7Sopenharmony_ci } 1138e5c31af7Sopenharmony_ci "" 1139e5c31af7Sopenharmony_ci end 1140e5c31af7Sopenharmony_ci case ivec3_to_vec3 1141e5c31af7Sopenharmony_ci version 310 es 1142e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1143e5c31af7Sopenharmony_ci values 1144e5c31af7Sopenharmony_ci { 1145e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 1146e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(1.0, 4.0, 9.0) | vec3(2.0, 2.0, 6.0) | vec3(3.0, 14.0, 6.0) ]; 1147e5c31af7Sopenharmony_ci } 1148e5c31af7Sopenharmony_ci 1149e5c31af7Sopenharmony_ci both "" 1150e5c31af7Sopenharmony_ci #version 310 es 1151e5c31af7Sopenharmony_ci precision highp float; 1152e5c31af7Sopenharmony_ci ${DECLARATIONS} 1153e5c31af7Sopenharmony_ci 1154e5c31af7Sopenharmony_ci void main() 1155e5c31af7Sopenharmony_ci { 1156e5c31af7Sopenharmony_ci ${SETUP} 1157e5c31af7Sopenharmony_ci out0 = in0 * vec3(1.0, 2.0, 3.0); 1158e5c31af7Sopenharmony_ci ${OUTPUT} 1159e5c31af7Sopenharmony_ci } 1160e5c31af7Sopenharmony_ci "" 1161e5c31af7Sopenharmony_ci end 1162e5c31af7Sopenharmony_ci case uvec3_to_vec3 1163e5c31af7Sopenharmony_ci version 310 es 1164e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1165e5c31af7Sopenharmony_ci values 1166e5c31af7Sopenharmony_ci { 1167e5c31af7Sopenharmony_ci input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 1168e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(2.0, 6.0, 15.0) | vec3(4.0, 12.0, 6.0) | vec3(1.0, 26.0, 21.0) ]; 1169e5c31af7Sopenharmony_ci } 1170e5c31af7Sopenharmony_ci 1171e5c31af7Sopenharmony_ci both "" 1172e5c31af7Sopenharmony_ci #version 310 es 1173e5c31af7Sopenharmony_ci precision highp float; 1174e5c31af7Sopenharmony_ci ${DECLARATIONS} 1175e5c31af7Sopenharmony_ci 1176e5c31af7Sopenharmony_ci void main() 1177e5c31af7Sopenharmony_ci { 1178e5c31af7Sopenharmony_ci ${SETUP} 1179e5c31af7Sopenharmony_ci out0 = in0 * vec3(1.0, 2.0, 3.0); 1180e5c31af7Sopenharmony_ci ${OUTPUT} 1181e5c31af7Sopenharmony_ci } 1182e5c31af7Sopenharmony_ci "" 1183e5c31af7Sopenharmony_ci end 1184e5c31af7Sopenharmony_ci case ivec4_to_uvec4 1185e5c31af7Sopenharmony_ci version 310 es 1186e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1187e5c31af7Sopenharmony_ci values 1188e5c31af7Sopenharmony_ci { 1189e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 1190e5c31af7Sopenharmony_ci output uvec4 out0 = [ uvec4(1, 4, 9, 16) | uvec4(2, 2, 6, 24) | uvec4(3, 14, 6, 20) ]; 1191e5c31af7Sopenharmony_ci } 1192e5c31af7Sopenharmony_ci 1193e5c31af7Sopenharmony_ci both "" 1194e5c31af7Sopenharmony_ci #version 310 es 1195e5c31af7Sopenharmony_ci precision highp float; 1196e5c31af7Sopenharmony_ci ${DECLARATIONS} 1197e5c31af7Sopenharmony_ci 1198e5c31af7Sopenharmony_ci void main() 1199e5c31af7Sopenharmony_ci { 1200e5c31af7Sopenharmony_ci ${SETUP} 1201e5c31af7Sopenharmony_ci out0 = in0 * uvec4(1, 2, 3, 4); 1202e5c31af7Sopenharmony_ci ${OUTPUT} 1203e5c31af7Sopenharmony_ci } 1204e5c31af7Sopenharmony_ci "" 1205e5c31af7Sopenharmony_ci end 1206e5c31af7Sopenharmony_ci case ivec4_to_vec4 1207e5c31af7Sopenharmony_ci version 310 es 1208e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1209e5c31af7Sopenharmony_ci values 1210e5c31af7Sopenharmony_ci { 1211e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 1212e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(1.0, 4.0, 9.0, 16.0) | vec4(2.0, 2.0, 6.0, 24.0) | vec4(3.0, 14.0, 6.0, 20.0) ]; 1213e5c31af7Sopenharmony_ci } 1214e5c31af7Sopenharmony_ci 1215e5c31af7Sopenharmony_ci both "" 1216e5c31af7Sopenharmony_ci #version 310 es 1217e5c31af7Sopenharmony_ci precision highp float; 1218e5c31af7Sopenharmony_ci ${DECLARATIONS} 1219e5c31af7Sopenharmony_ci 1220e5c31af7Sopenharmony_ci void main() 1221e5c31af7Sopenharmony_ci { 1222e5c31af7Sopenharmony_ci ${SETUP} 1223e5c31af7Sopenharmony_ci out0 = in0 * vec4(1.0, 2.0, 3.0, 4.0); 1224e5c31af7Sopenharmony_ci ${OUTPUT} 1225e5c31af7Sopenharmony_ci } 1226e5c31af7Sopenharmony_ci "" 1227e5c31af7Sopenharmony_ci end 1228e5c31af7Sopenharmony_ci case uvec4_to_vec4 1229e5c31af7Sopenharmony_ci version 310 es 1230e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1231e5c31af7Sopenharmony_ci values 1232e5c31af7Sopenharmony_ci { 1233e5c31af7Sopenharmony_ci input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 1234e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(2.0, 6.0, 15.0, 32.0) | vec4(4.0, 12.0, 6.0, 36.0) | vec4(1.0, 26.0, 21.0, 16.0) ]; 1235e5c31af7Sopenharmony_ci } 1236e5c31af7Sopenharmony_ci 1237e5c31af7Sopenharmony_ci both "" 1238e5c31af7Sopenharmony_ci #version 310 es 1239e5c31af7Sopenharmony_ci precision highp float; 1240e5c31af7Sopenharmony_ci ${DECLARATIONS} 1241e5c31af7Sopenharmony_ci 1242e5c31af7Sopenharmony_ci void main() 1243e5c31af7Sopenharmony_ci { 1244e5c31af7Sopenharmony_ci ${SETUP} 1245e5c31af7Sopenharmony_ci out0 = in0 * vec4(1.0, 2.0, 3.0, 4.0); 1246e5c31af7Sopenharmony_ci ${OUTPUT} 1247e5c31af7Sopenharmony_ci } 1248e5c31af7Sopenharmony_ci "" 1249e5c31af7Sopenharmony_ci end 1250e5c31af7Sopenharmony_ci 1251e5c31af7Sopenharmony_ci end # mul 1252e5c31af7Sopenharmony_ci group div "Division" 1253e5c31af7Sopenharmony_ci 1254e5c31af7Sopenharmony_ci case int_to_float 1255e5c31af7Sopenharmony_ci version 310 es 1256e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1257e5c31af7Sopenharmony_ci values 1258e5c31af7Sopenharmony_ci { 1259e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 1260e5c31af7Sopenharmony_ci output float out0 = [ 1.0 | 0.5 | 0.5 | 1.5 | 2.5 ]; 1261e5c31af7Sopenharmony_ci } 1262e5c31af7Sopenharmony_ci 1263e5c31af7Sopenharmony_ci both "" 1264e5c31af7Sopenharmony_ci #version 310 es 1265e5c31af7Sopenharmony_ci precision highp float; 1266e5c31af7Sopenharmony_ci ${DECLARATIONS} 1267e5c31af7Sopenharmony_ci 1268e5c31af7Sopenharmony_ci void main() 1269e5c31af7Sopenharmony_ci { 1270e5c31af7Sopenharmony_ci ${SETUP} 1271e5c31af7Sopenharmony_ci out0 = in0 / 2.0; 1272e5c31af7Sopenharmony_ci ${OUTPUT} 1273e5c31af7Sopenharmony_ci } 1274e5c31af7Sopenharmony_ci "" 1275e5c31af7Sopenharmony_ci end 1276e5c31af7Sopenharmony_ci case int_to_uint 1277e5c31af7Sopenharmony_ci version 310 es 1278e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1279e5c31af7Sopenharmony_ci values 1280e5c31af7Sopenharmony_ci { 1281e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 1282e5c31af7Sopenharmony_ci output uint out0 = [ 1 | 0 | 0 | 1 | 2 ]; 1283e5c31af7Sopenharmony_ci } 1284e5c31af7Sopenharmony_ci 1285e5c31af7Sopenharmony_ci both "" 1286e5c31af7Sopenharmony_ci #version 310 es 1287e5c31af7Sopenharmony_ci precision highp float; 1288e5c31af7Sopenharmony_ci ${DECLARATIONS} 1289e5c31af7Sopenharmony_ci 1290e5c31af7Sopenharmony_ci void main() 1291e5c31af7Sopenharmony_ci { 1292e5c31af7Sopenharmony_ci ${SETUP} 1293e5c31af7Sopenharmony_ci out0 = in0 / 2; 1294e5c31af7Sopenharmony_ci ${OUTPUT} 1295e5c31af7Sopenharmony_ci } 1296e5c31af7Sopenharmony_ci "" 1297e5c31af7Sopenharmony_ci end 1298e5c31af7Sopenharmony_ci case int_to_vec2 1299e5c31af7Sopenharmony_ci version 310 es 1300e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1301e5c31af7Sopenharmony_ci values 1302e5c31af7Sopenharmony_ci { 1303e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 1304e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(2.0, 1.0) | vec2(1.0, 0.5) | vec2(1.0, 0.5) | vec2(3.0, 1.5) | vec2(5.0, 2.5) ]; 1305e5c31af7Sopenharmony_ci } 1306e5c31af7Sopenharmony_ci 1307e5c31af7Sopenharmony_ci both "" 1308e5c31af7Sopenharmony_ci #version 310 es 1309e5c31af7Sopenharmony_ci precision highp float; 1310e5c31af7Sopenharmony_ci ${DECLARATIONS} 1311e5c31af7Sopenharmony_ci 1312e5c31af7Sopenharmony_ci void main() 1313e5c31af7Sopenharmony_ci { 1314e5c31af7Sopenharmony_ci ${SETUP} 1315e5c31af7Sopenharmony_ci out0 = in0 / vec2(1.0, 2.0); 1316e5c31af7Sopenharmony_ci ${OUTPUT} 1317e5c31af7Sopenharmony_ci } 1318e5c31af7Sopenharmony_ci "" 1319e5c31af7Sopenharmony_ci end 1320e5c31af7Sopenharmony_ci case int_to_vec3 1321e5c31af7Sopenharmony_ci version 310 es 1322e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1323e5c31af7Sopenharmony_ci values 1324e5c31af7Sopenharmony_ci { 1325e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 1326e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(2.0, 1.0, 0.666666666667) | vec3(1.0, 0.5, 0.333333333333) | vec3(1.0, 0.5, 0.333333333333) | vec3(3.0, 1.5, 1.0) | vec3(5.0, 2.5, 1.66666666667) ]; 1327e5c31af7Sopenharmony_ci } 1328e5c31af7Sopenharmony_ci 1329e5c31af7Sopenharmony_ci both "" 1330e5c31af7Sopenharmony_ci #version 310 es 1331e5c31af7Sopenharmony_ci precision highp float; 1332e5c31af7Sopenharmony_ci ${DECLARATIONS} 1333e5c31af7Sopenharmony_ci 1334e5c31af7Sopenharmony_ci void main() 1335e5c31af7Sopenharmony_ci { 1336e5c31af7Sopenharmony_ci ${SETUP} 1337e5c31af7Sopenharmony_ci out0 = in0 / vec3(1.0, 2.0, 3.0); 1338e5c31af7Sopenharmony_ci ${OUTPUT} 1339e5c31af7Sopenharmony_ci } 1340e5c31af7Sopenharmony_ci "" 1341e5c31af7Sopenharmony_ci end 1342e5c31af7Sopenharmony_ci case int_to_vec4 1343e5c31af7Sopenharmony_ci version 310 es 1344e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1345e5c31af7Sopenharmony_ci values 1346e5c31af7Sopenharmony_ci { 1347e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 1348e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(2.0, 1.0, 0.666666666667, 0.5) | vec4(1.0, 0.5, 0.333333333333, 0.25) | vec4(1.0, 0.5, 0.333333333333, 0.25) | vec4(3.0, 1.5, 1.0, 0.75) | vec4(5.0, 2.5, 1.66666666667, 1.25) ]; 1349e5c31af7Sopenharmony_ci } 1350e5c31af7Sopenharmony_ci 1351e5c31af7Sopenharmony_ci both "" 1352e5c31af7Sopenharmony_ci #version 310 es 1353e5c31af7Sopenharmony_ci precision highp float; 1354e5c31af7Sopenharmony_ci ${DECLARATIONS} 1355e5c31af7Sopenharmony_ci 1356e5c31af7Sopenharmony_ci void main() 1357e5c31af7Sopenharmony_ci { 1358e5c31af7Sopenharmony_ci ${SETUP} 1359e5c31af7Sopenharmony_ci out0 = in0 / vec4(1.0, 2.0, 3.0, 4.0); 1360e5c31af7Sopenharmony_ci ${OUTPUT} 1361e5c31af7Sopenharmony_ci } 1362e5c31af7Sopenharmony_ci "" 1363e5c31af7Sopenharmony_ci end 1364e5c31af7Sopenharmony_ci case int_to_uvec2 1365e5c31af7Sopenharmony_ci version 310 es 1366e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1367e5c31af7Sopenharmony_ci values 1368e5c31af7Sopenharmony_ci { 1369e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 1370e5c31af7Sopenharmony_ci output uvec2 out0 = [ uvec2(2, 1) | uvec2(1, 0) | uvec2(1, 0) | uvec2(3, 1) | uvec2(5, 2) ]; 1371e5c31af7Sopenharmony_ci } 1372e5c31af7Sopenharmony_ci 1373e5c31af7Sopenharmony_ci both "" 1374e5c31af7Sopenharmony_ci #version 310 es 1375e5c31af7Sopenharmony_ci precision highp float; 1376e5c31af7Sopenharmony_ci ${DECLARATIONS} 1377e5c31af7Sopenharmony_ci 1378e5c31af7Sopenharmony_ci void main() 1379e5c31af7Sopenharmony_ci { 1380e5c31af7Sopenharmony_ci ${SETUP} 1381e5c31af7Sopenharmony_ci out0 = in0 / uvec2(1, 2); 1382e5c31af7Sopenharmony_ci ${OUTPUT} 1383e5c31af7Sopenharmony_ci } 1384e5c31af7Sopenharmony_ci "" 1385e5c31af7Sopenharmony_ci end 1386e5c31af7Sopenharmony_ci case int_to_uvec3 1387e5c31af7Sopenharmony_ci version 310 es 1388e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1389e5c31af7Sopenharmony_ci values 1390e5c31af7Sopenharmony_ci { 1391e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 1392e5c31af7Sopenharmony_ci output uvec3 out0 = [ uvec3(2, 1, 0) | uvec3(1, 0, 0) | uvec3(1, 0, 0) | uvec3(3, 1, 1) | uvec3(5, 2, 1) ]; 1393e5c31af7Sopenharmony_ci } 1394e5c31af7Sopenharmony_ci 1395e5c31af7Sopenharmony_ci both "" 1396e5c31af7Sopenharmony_ci #version 310 es 1397e5c31af7Sopenharmony_ci precision highp float; 1398e5c31af7Sopenharmony_ci ${DECLARATIONS} 1399e5c31af7Sopenharmony_ci 1400e5c31af7Sopenharmony_ci void main() 1401e5c31af7Sopenharmony_ci { 1402e5c31af7Sopenharmony_ci ${SETUP} 1403e5c31af7Sopenharmony_ci out0 = in0 / uvec3(1, 2, 3); 1404e5c31af7Sopenharmony_ci ${OUTPUT} 1405e5c31af7Sopenharmony_ci } 1406e5c31af7Sopenharmony_ci "" 1407e5c31af7Sopenharmony_ci end 1408e5c31af7Sopenharmony_ci case int_to_uvec4 1409e5c31af7Sopenharmony_ci version 310 es 1410e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1411e5c31af7Sopenharmony_ci values 1412e5c31af7Sopenharmony_ci { 1413e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 1414e5c31af7Sopenharmony_ci output uvec4 out0 = [ uvec4(2, 1, 0, 0) | uvec4(1, 0, 0, 0) | uvec4(1, 0, 0, 0) | uvec4(3, 1, 1, 0) | uvec4(5, 2, 1, 1) ]; 1415e5c31af7Sopenharmony_ci } 1416e5c31af7Sopenharmony_ci 1417e5c31af7Sopenharmony_ci both "" 1418e5c31af7Sopenharmony_ci #version 310 es 1419e5c31af7Sopenharmony_ci precision highp float; 1420e5c31af7Sopenharmony_ci ${DECLARATIONS} 1421e5c31af7Sopenharmony_ci 1422e5c31af7Sopenharmony_ci void main() 1423e5c31af7Sopenharmony_ci { 1424e5c31af7Sopenharmony_ci ${SETUP} 1425e5c31af7Sopenharmony_ci out0 = in0 / uvec4(1, 2, 3, 4); 1426e5c31af7Sopenharmony_ci ${OUTPUT} 1427e5c31af7Sopenharmony_ci } 1428e5c31af7Sopenharmony_ci "" 1429e5c31af7Sopenharmony_ci end 1430e5c31af7Sopenharmony_ci case uint_to_float 1431e5c31af7Sopenharmony_ci version 310 es 1432e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1433e5c31af7Sopenharmony_ci values 1434e5c31af7Sopenharmony_ci { 1435e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 1436e5c31af7Sopenharmony_ci output float out0 = [ 0.5 | 1.5 | 2.0 | 3.5 | 5.5 ]; 1437e5c31af7Sopenharmony_ci } 1438e5c31af7Sopenharmony_ci 1439e5c31af7Sopenharmony_ci both "" 1440e5c31af7Sopenharmony_ci #version 310 es 1441e5c31af7Sopenharmony_ci precision highp float; 1442e5c31af7Sopenharmony_ci ${DECLARATIONS} 1443e5c31af7Sopenharmony_ci 1444e5c31af7Sopenharmony_ci void main() 1445e5c31af7Sopenharmony_ci { 1446e5c31af7Sopenharmony_ci ${SETUP} 1447e5c31af7Sopenharmony_ci out0 = in0 / 2.0; 1448e5c31af7Sopenharmony_ci ${OUTPUT} 1449e5c31af7Sopenharmony_ci } 1450e5c31af7Sopenharmony_ci "" 1451e5c31af7Sopenharmony_ci end 1452e5c31af7Sopenharmony_ci case uint_to_vec2 1453e5c31af7Sopenharmony_ci version 310 es 1454e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1455e5c31af7Sopenharmony_ci values 1456e5c31af7Sopenharmony_ci { 1457e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 1458e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(1.0, 0.5) | vec2(3.0, 1.5) | vec2(4.0, 2.0) | vec2(7.0, 3.5) | vec2(11.0, 5.5) ]; 1459e5c31af7Sopenharmony_ci } 1460e5c31af7Sopenharmony_ci 1461e5c31af7Sopenharmony_ci both "" 1462e5c31af7Sopenharmony_ci #version 310 es 1463e5c31af7Sopenharmony_ci precision highp float; 1464e5c31af7Sopenharmony_ci ${DECLARATIONS} 1465e5c31af7Sopenharmony_ci 1466e5c31af7Sopenharmony_ci void main() 1467e5c31af7Sopenharmony_ci { 1468e5c31af7Sopenharmony_ci ${SETUP} 1469e5c31af7Sopenharmony_ci out0 = in0 / vec2(1.0, 2.0); 1470e5c31af7Sopenharmony_ci ${OUTPUT} 1471e5c31af7Sopenharmony_ci } 1472e5c31af7Sopenharmony_ci "" 1473e5c31af7Sopenharmony_ci end 1474e5c31af7Sopenharmony_ci case uint_to_vec3 1475e5c31af7Sopenharmony_ci version 310 es 1476e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1477e5c31af7Sopenharmony_ci values 1478e5c31af7Sopenharmony_ci { 1479e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 1480e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(1.0, 0.5, 0.333333333333) | vec3(3.0, 1.5, 1.0) | vec3(4.0, 2.0, 1.33333333333) | vec3(7.0, 3.5, 2.33333333333) | vec3(11.0, 5.5, 3.66666666667) ]; 1481e5c31af7Sopenharmony_ci } 1482e5c31af7Sopenharmony_ci 1483e5c31af7Sopenharmony_ci both "" 1484e5c31af7Sopenharmony_ci #version 310 es 1485e5c31af7Sopenharmony_ci precision highp float; 1486e5c31af7Sopenharmony_ci ${DECLARATIONS} 1487e5c31af7Sopenharmony_ci 1488e5c31af7Sopenharmony_ci void main() 1489e5c31af7Sopenharmony_ci { 1490e5c31af7Sopenharmony_ci ${SETUP} 1491e5c31af7Sopenharmony_ci out0 = in0 / vec3(1.0, 2.0, 3.0); 1492e5c31af7Sopenharmony_ci ${OUTPUT} 1493e5c31af7Sopenharmony_ci } 1494e5c31af7Sopenharmony_ci "" 1495e5c31af7Sopenharmony_ci end 1496e5c31af7Sopenharmony_ci case uint_to_vec4 1497e5c31af7Sopenharmony_ci version 310 es 1498e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1499e5c31af7Sopenharmony_ci values 1500e5c31af7Sopenharmony_ci { 1501e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 1502e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(1.0, 0.5, 0.333333333333, 0.25) | vec4(3.0, 1.5, 1.0, 0.75) | vec4(4.0, 2.0, 1.33333333333, 1.0) | vec4(7.0, 3.5, 2.33333333333, 1.75) | vec4(11.0, 5.5, 3.66666666667, 2.75) ]; 1503e5c31af7Sopenharmony_ci } 1504e5c31af7Sopenharmony_ci 1505e5c31af7Sopenharmony_ci both "" 1506e5c31af7Sopenharmony_ci #version 310 es 1507e5c31af7Sopenharmony_ci precision highp float; 1508e5c31af7Sopenharmony_ci ${DECLARATIONS} 1509e5c31af7Sopenharmony_ci 1510e5c31af7Sopenharmony_ci void main() 1511e5c31af7Sopenharmony_ci { 1512e5c31af7Sopenharmony_ci ${SETUP} 1513e5c31af7Sopenharmony_ci out0 = in0 / vec4(1.0, 2.0, 3.0, 4.0); 1514e5c31af7Sopenharmony_ci ${OUTPUT} 1515e5c31af7Sopenharmony_ci } 1516e5c31af7Sopenharmony_ci "" 1517e5c31af7Sopenharmony_ci end 1518e5c31af7Sopenharmony_ci case ivec2_to_uvec2 1519e5c31af7Sopenharmony_ci version 310 es 1520e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1521e5c31af7Sopenharmony_ci values 1522e5c31af7Sopenharmony_ci { 1523e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 1524e5c31af7Sopenharmony_ci output uvec2 out0 = [ uvec2(1, 1) | uvec2(2, 0) | uvec2(3, 3) ]; 1525e5c31af7Sopenharmony_ci } 1526e5c31af7Sopenharmony_ci 1527e5c31af7Sopenharmony_ci both "" 1528e5c31af7Sopenharmony_ci #version 310 es 1529e5c31af7Sopenharmony_ci precision highp float; 1530e5c31af7Sopenharmony_ci ${DECLARATIONS} 1531e5c31af7Sopenharmony_ci 1532e5c31af7Sopenharmony_ci void main() 1533e5c31af7Sopenharmony_ci { 1534e5c31af7Sopenharmony_ci ${SETUP} 1535e5c31af7Sopenharmony_ci out0 = in0 / uvec2(1, 2); 1536e5c31af7Sopenharmony_ci ${OUTPUT} 1537e5c31af7Sopenharmony_ci } 1538e5c31af7Sopenharmony_ci "" 1539e5c31af7Sopenharmony_ci end 1540e5c31af7Sopenharmony_ci case ivec2_to_vec2 1541e5c31af7Sopenharmony_ci version 310 es 1542e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1543e5c31af7Sopenharmony_ci values 1544e5c31af7Sopenharmony_ci { 1545e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 1546e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(1.0, 1.0) | vec2(2.0, 0.5) | vec2(3.0, 3.5) ]; 1547e5c31af7Sopenharmony_ci } 1548e5c31af7Sopenharmony_ci 1549e5c31af7Sopenharmony_ci both "" 1550e5c31af7Sopenharmony_ci #version 310 es 1551e5c31af7Sopenharmony_ci precision highp float; 1552e5c31af7Sopenharmony_ci ${DECLARATIONS} 1553e5c31af7Sopenharmony_ci 1554e5c31af7Sopenharmony_ci void main() 1555e5c31af7Sopenharmony_ci { 1556e5c31af7Sopenharmony_ci ${SETUP} 1557e5c31af7Sopenharmony_ci out0 = in0 / vec2(1.0, 2.0); 1558e5c31af7Sopenharmony_ci ${OUTPUT} 1559e5c31af7Sopenharmony_ci } 1560e5c31af7Sopenharmony_ci "" 1561e5c31af7Sopenharmony_ci end 1562e5c31af7Sopenharmony_ci case uvec2_to_vec2 1563e5c31af7Sopenharmony_ci version 310 es 1564e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1565e5c31af7Sopenharmony_ci values 1566e5c31af7Sopenharmony_ci { 1567e5c31af7Sopenharmony_ci input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 1568e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(2.0, 1.5) | vec2(4.0, 3.0) | vec2(1.0, 6.5) ]; 1569e5c31af7Sopenharmony_ci } 1570e5c31af7Sopenharmony_ci 1571e5c31af7Sopenharmony_ci both "" 1572e5c31af7Sopenharmony_ci #version 310 es 1573e5c31af7Sopenharmony_ci precision highp float; 1574e5c31af7Sopenharmony_ci ${DECLARATIONS} 1575e5c31af7Sopenharmony_ci 1576e5c31af7Sopenharmony_ci void main() 1577e5c31af7Sopenharmony_ci { 1578e5c31af7Sopenharmony_ci ${SETUP} 1579e5c31af7Sopenharmony_ci out0 = in0 / vec2(1.0, 2.0); 1580e5c31af7Sopenharmony_ci ${OUTPUT} 1581e5c31af7Sopenharmony_ci } 1582e5c31af7Sopenharmony_ci "" 1583e5c31af7Sopenharmony_ci end 1584e5c31af7Sopenharmony_ci case ivec3_to_uvec3 1585e5c31af7Sopenharmony_ci version 310 es 1586e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1587e5c31af7Sopenharmony_ci values 1588e5c31af7Sopenharmony_ci { 1589e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 1590e5c31af7Sopenharmony_ci output uvec3 out0 = [ uvec3(1, 1, 1) | uvec3(2, 0, 0) | uvec3(3, 3, 0) ]; 1591e5c31af7Sopenharmony_ci } 1592e5c31af7Sopenharmony_ci 1593e5c31af7Sopenharmony_ci both "" 1594e5c31af7Sopenharmony_ci #version 310 es 1595e5c31af7Sopenharmony_ci precision highp float; 1596e5c31af7Sopenharmony_ci ${DECLARATIONS} 1597e5c31af7Sopenharmony_ci 1598e5c31af7Sopenharmony_ci void main() 1599e5c31af7Sopenharmony_ci { 1600e5c31af7Sopenharmony_ci ${SETUP} 1601e5c31af7Sopenharmony_ci out0 = in0 / uvec3(1, 2, 3); 1602e5c31af7Sopenharmony_ci ${OUTPUT} 1603e5c31af7Sopenharmony_ci } 1604e5c31af7Sopenharmony_ci "" 1605e5c31af7Sopenharmony_ci end 1606e5c31af7Sopenharmony_ci case ivec3_to_vec3 1607e5c31af7Sopenharmony_ci version 310 es 1608e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1609e5c31af7Sopenharmony_ci values 1610e5c31af7Sopenharmony_ci { 1611e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 1612e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(1.0, 1.0, 1.0) | vec3(2.0, 0.5, 0.666666666667) | vec3(3.0, 3.5, 0.666666666667) ]; 1613e5c31af7Sopenharmony_ci } 1614e5c31af7Sopenharmony_ci 1615e5c31af7Sopenharmony_ci both "" 1616e5c31af7Sopenharmony_ci #version 310 es 1617e5c31af7Sopenharmony_ci precision highp float; 1618e5c31af7Sopenharmony_ci ${DECLARATIONS} 1619e5c31af7Sopenharmony_ci 1620e5c31af7Sopenharmony_ci void main() 1621e5c31af7Sopenharmony_ci { 1622e5c31af7Sopenharmony_ci ${SETUP} 1623e5c31af7Sopenharmony_ci out0 = in0 / vec3(1.0, 2.0, 3.0); 1624e5c31af7Sopenharmony_ci ${OUTPUT} 1625e5c31af7Sopenharmony_ci } 1626e5c31af7Sopenharmony_ci "" 1627e5c31af7Sopenharmony_ci end 1628e5c31af7Sopenharmony_ci case uvec3_to_vec3 1629e5c31af7Sopenharmony_ci version 310 es 1630e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1631e5c31af7Sopenharmony_ci values 1632e5c31af7Sopenharmony_ci { 1633e5c31af7Sopenharmony_ci input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 1634e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(2.0, 1.5, 1.66666666667) | vec3(4.0, 3.0, 0.666666666667) | vec3(1.0, 6.5, 2.33333333333) ]; 1635e5c31af7Sopenharmony_ci } 1636e5c31af7Sopenharmony_ci 1637e5c31af7Sopenharmony_ci both "" 1638e5c31af7Sopenharmony_ci #version 310 es 1639e5c31af7Sopenharmony_ci precision highp float; 1640e5c31af7Sopenharmony_ci ${DECLARATIONS} 1641e5c31af7Sopenharmony_ci 1642e5c31af7Sopenharmony_ci void main() 1643e5c31af7Sopenharmony_ci { 1644e5c31af7Sopenharmony_ci ${SETUP} 1645e5c31af7Sopenharmony_ci out0 = in0 / vec3(1.0, 2.0, 3.0); 1646e5c31af7Sopenharmony_ci ${OUTPUT} 1647e5c31af7Sopenharmony_ci } 1648e5c31af7Sopenharmony_ci "" 1649e5c31af7Sopenharmony_ci end 1650e5c31af7Sopenharmony_ci case ivec4_to_uvec4 1651e5c31af7Sopenharmony_ci version 310 es 1652e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1653e5c31af7Sopenharmony_ci values 1654e5c31af7Sopenharmony_ci { 1655e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 1656e5c31af7Sopenharmony_ci output uvec4 out0 = [ uvec4(1, 1, 1, 1) | uvec4(2, 0, 0, 1) | uvec4(3, 3, 0, 1) ]; 1657e5c31af7Sopenharmony_ci } 1658e5c31af7Sopenharmony_ci 1659e5c31af7Sopenharmony_ci both "" 1660e5c31af7Sopenharmony_ci #version 310 es 1661e5c31af7Sopenharmony_ci precision highp float; 1662e5c31af7Sopenharmony_ci ${DECLARATIONS} 1663e5c31af7Sopenharmony_ci 1664e5c31af7Sopenharmony_ci void main() 1665e5c31af7Sopenharmony_ci { 1666e5c31af7Sopenharmony_ci ${SETUP} 1667e5c31af7Sopenharmony_ci out0 = in0 / uvec4(1, 2, 3, 4); 1668e5c31af7Sopenharmony_ci ${OUTPUT} 1669e5c31af7Sopenharmony_ci } 1670e5c31af7Sopenharmony_ci "" 1671e5c31af7Sopenharmony_ci end 1672e5c31af7Sopenharmony_ci case ivec4_to_vec4 1673e5c31af7Sopenharmony_ci version 310 es 1674e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1675e5c31af7Sopenharmony_ci values 1676e5c31af7Sopenharmony_ci { 1677e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 1678e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(1.0, 1.0, 1.0, 1.0) | vec4(2.0, 0.5, 0.666666666667, 1.5) | vec4(3.0, 3.5, 0.666666666667, 1.25) ]; 1679e5c31af7Sopenharmony_ci } 1680e5c31af7Sopenharmony_ci 1681e5c31af7Sopenharmony_ci both "" 1682e5c31af7Sopenharmony_ci #version 310 es 1683e5c31af7Sopenharmony_ci precision highp float; 1684e5c31af7Sopenharmony_ci ${DECLARATIONS} 1685e5c31af7Sopenharmony_ci 1686e5c31af7Sopenharmony_ci void main() 1687e5c31af7Sopenharmony_ci { 1688e5c31af7Sopenharmony_ci ${SETUP} 1689e5c31af7Sopenharmony_ci out0 = in0 / vec4(1.0, 2.0, 3.0, 4.0); 1690e5c31af7Sopenharmony_ci ${OUTPUT} 1691e5c31af7Sopenharmony_ci } 1692e5c31af7Sopenharmony_ci "" 1693e5c31af7Sopenharmony_ci end 1694e5c31af7Sopenharmony_ci case uvec4_to_vec4 1695e5c31af7Sopenharmony_ci version 310 es 1696e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1697e5c31af7Sopenharmony_ci values 1698e5c31af7Sopenharmony_ci { 1699e5c31af7Sopenharmony_ci input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 1700e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(2.0, 1.5, 1.66666666667, 2.0) | vec4(4.0, 3.0, 0.666666666667, 2.25) | vec4(1.0, 6.5, 2.33333333333, 1.0) ]; 1701e5c31af7Sopenharmony_ci } 1702e5c31af7Sopenharmony_ci 1703e5c31af7Sopenharmony_ci both "" 1704e5c31af7Sopenharmony_ci #version 310 es 1705e5c31af7Sopenharmony_ci precision highp float; 1706e5c31af7Sopenharmony_ci ${DECLARATIONS} 1707e5c31af7Sopenharmony_ci 1708e5c31af7Sopenharmony_ci void main() 1709e5c31af7Sopenharmony_ci { 1710e5c31af7Sopenharmony_ci ${SETUP} 1711e5c31af7Sopenharmony_ci out0 = in0 / vec4(1.0, 2.0, 3.0, 4.0); 1712e5c31af7Sopenharmony_ci ${OUTPUT} 1713e5c31af7Sopenharmony_ci } 1714e5c31af7Sopenharmony_ci "" 1715e5c31af7Sopenharmony_ci end 1716e5c31af7Sopenharmony_ci 1717e5c31af7Sopenharmony_ci end # div 1718e5c31af7Sopenharmony_ci 1719e5c31af7Sopenharmony_ci end # input_before_literal 1720e5c31af7Sopenharmony_ci group literal_before_input "Literal before input" 1721e5c31af7Sopenharmony_ci 1722e5c31af7Sopenharmony_ci group add "Addition" 1723e5c31af7Sopenharmony_ci 1724e5c31af7Sopenharmony_ci case int_to_float 1725e5c31af7Sopenharmony_ci version 310 es 1726e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1727e5c31af7Sopenharmony_ci values 1728e5c31af7Sopenharmony_ci { 1729e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 1730e5c31af7Sopenharmony_ci output float out0 = [ 4.0 | 3.0 | 3.0 | 5.0 | 7.0 ]; 1731e5c31af7Sopenharmony_ci } 1732e5c31af7Sopenharmony_ci 1733e5c31af7Sopenharmony_ci both "" 1734e5c31af7Sopenharmony_ci #version 310 es 1735e5c31af7Sopenharmony_ci precision highp float; 1736e5c31af7Sopenharmony_ci ${DECLARATIONS} 1737e5c31af7Sopenharmony_ci 1738e5c31af7Sopenharmony_ci void main() 1739e5c31af7Sopenharmony_ci { 1740e5c31af7Sopenharmony_ci ${SETUP} 1741e5c31af7Sopenharmony_ci out0 = 2.0 + in0; 1742e5c31af7Sopenharmony_ci ${OUTPUT} 1743e5c31af7Sopenharmony_ci } 1744e5c31af7Sopenharmony_ci "" 1745e5c31af7Sopenharmony_ci end 1746e5c31af7Sopenharmony_ci case int_to_uint 1747e5c31af7Sopenharmony_ci version 310 es 1748e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1749e5c31af7Sopenharmony_ci values 1750e5c31af7Sopenharmony_ci { 1751e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 1752e5c31af7Sopenharmony_ci output uint out0 = [ 4 | 3 | 3 | 5 | 7 ]; 1753e5c31af7Sopenharmony_ci } 1754e5c31af7Sopenharmony_ci 1755e5c31af7Sopenharmony_ci both "" 1756e5c31af7Sopenharmony_ci #version 310 es 1757e5c31af7Sopenharmony_ci precision highp float; 1758e5c31af7Sopenharmony_ci ${DECLARATIONS} 1759e5c31af7Sopenharmony_ci 1760e5c31af7Sopenharmony_ci void main() 1761e5c31af7Sopenharmony_ci { 1762e5c31af7Sopenharmony_ci ${SETUP} 1763e5c31af7Sopenharmony_ci out0 = 2 + in0; 1764e5c31af7Sopenharmony_ci ${OUTPUT} 1765e5c31af7Sopenharmony_ci } 1766e5c31af7Sopenharmony_ci "" 1767e5c31af7Sopenharmony_ci end 1768e5c31af7Sopenharmony_ci case int_to_vec2 1769e5c31af7Sopenharmony_ci version 310 es 1770e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1771e5c31af7Sopenharmony_ci values 1772e5c31af7Sopenharmony_ci { 1773e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 1774e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(3.0, 4.0) | vec2(2.0, 3.0) | vec2(2.0, 3.0) | vec2(4.0, 5.0) | vec2(6.0, 7.0) ]; 1775e5c31af7Sopenharmony_ci } 1776e5c31af7Sopenharmony_ci 1777e5c31af7Sopenharmony_ci both "" 1778e5c31af7Sopenharmony_ci #version 310 es 1779e5c31af7Sopenharmony_ci precision highp float; 1780e5c31af7Sopenharmony_ci ${DECLARATIONS} 1781e5c31af7Sopenharmony_ci 1782e5c31af7Sopenharmony_ci void main() 1783e5c31af7Sopenharmony_ci { 1784e5c31af7Sopenharmony_ci ${SETUP} 1785e5c31af7Sopenharmony_ci out0 = vec2(1.0, 2.0) + in0; 1786e5c31af7Sopenharmony_ci ${OUTPUT} 1787e5c31af7Sopenharmony_ci } 1788e5c31af7Sopenharmony_ci "" 1789e5c31af7Sopenharmony_ci end 1790e5c31af7Sopenharmony_ci case int_to_vec3 1791e5c31af7Sopenharmony_ci version 310 es 1792e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1793e5c31af7Sopenharmony_ci values 1794e5c31af7Sopenharmony_ci { 1795e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 1796e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(3.0, 4.0, 5.0) | vec3(2.0, 3.0, 4.0) | vec3(2.0, 3.0, 4.0) | vec3(4.0, 5.0, 6.0) | vec3(6.0, 7.0, 8.0) ]; 1797e5c31af7Sopenharmony_ci } 1798e5c31af7Sopenharmony_ci 1799e5c31af7Sopenharmony_ci both "" 1800e5c31af7Sopenharmony_ci #version 310 es 1801e5c31af7Sopenharmony_ci precision highp float; 1802e5c31af7Sopenharmony_ci ${DECLARATIONS} 1803e5c31af7Sopenharmony_ci 1804e5c31af7Sopenharmony_ci void main() 1805e5c31af7Sopenharmony_ci { 1806e5c31af7Sopenharmony_ci ${SETUP} 1807e5c31af7Sopenharmony_ci out0 = vec3(1.0, 2.0, 3.0) + in0; 1808e5c31af7Sopenharmony_ci ${OUTPUT} 1809e5c31af7Sopenharmony_ci } 1810e5c31af7Sopenharmony_ci "" 1811e5c31af7Sopenharmony_ci end 1812e5c31af7Sopenharmony_ci case int_to_vec4 1813e5c31af7Sopenharmony_ci version 310 es 1814e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1815e5c31af7Sopenharmony_ci values 1816e5c31af7Sopenharmony_ci { 1817e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 1818e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(3.0, 4.0, 5.0, 6.0) | vec4(2.0, 3.0, 4.0, 5.0) | vec4(2.0, 3.0, 4.0, 5.0) | vec4(4.0, 5.0, 6.0, 7.0) | vec4(6.0, 7.0, 8.0, 9.0) ]; 1819e5c31af7Sopenharmony_ci } 1820e5c31af7Sopenharmony_ci 1821e5c31af7Sopenharmony_ci both "" 1822e5c31af7Sopenharmony_ci #version 310 es 1823e5c31af7Sopenharmony_ci precision highp float; 1824e5c31af7Sopenharmony_ci ${DECLARATIONS} 1825e5c31af7Sopenharmony_ci 1826e5c31af7Sopenharmony_ci void main() 1827e5c31af7Sopenharmony_ci { 1828e5c31af7Sopenharmony_ci ${SETUP} 1829e5c31af7Sopenharmony_ci out0 = vec4(1.0, 2.0, 3.0, 4.0) + in0; 1830e5c31af7Sopenharmony_ci ${OUTPUT} 1831e5c31af7Sopenharmony_ci } 1832e5c31af7Sopenharmony_ci "" 1833e5c31af7Sopenharmony_ci end 1834e5c31af7Sopenharmony_ci case int_to_uvec2 1835e5c31af7Sopenharmony_ci version 310 es 1836e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1837e5c31af7Sopenharmony_ci values 1838e5c31af7Sopenharmony_ci { 1839e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 1840e5c31af7Sopenharmony_ci output uvec2 out0 = [ uvec2(3, 4) | uvec2(2, 3) | uvec2(2, 3) | uvec2(4, 5) | uvec2(6, 7) ]; 1841e5c31af7Sopenharmony_ci } 1842e5c31af7Sopenharmony_ci 1843e5c31af7Sopenharmony_ci both "" 1844e5c31af7Sopenharmony_ci #version 310 es 1845e5c31af7Sopenharmony_ci precision highp float; 1846e5c31af7Sopenharmony_ci ${DECLARATIONS} 1847e5c31af7Sopenharmony_ci 1848e5c31af7Sopenharmony_ci void main() 1849e5c31af7Sopenharmony_ci { 1850e5c31af7Sopenharmony_ci ${SETUP} 1851e5c31af7Sopenharmony_ci out0 = uvec2(1, 2) + in0; 1852e5c31af7Sopenharmony_ci ${OUTPUT} 1853e5c31af7Sopenharmony_ci } 1854e5c31af7Sopenharmony_ci "" 1855e5c31af7Sopenharmony_ci end 1856e5c31af7Sopenharmony_ci case int_to_uvec3 1857e5c31af7Sopenharmony_ci version 310 es 1858e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1859e5c31af7Sopenharmony_ci values 1860e5c31af7Sopenharmony_ci { 1861e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 1862e5c31af7Sopenharmony_ci output uvec3 out0 = [ uvec3(3, 4, 5) | uvec3(2, 3, 4) | uvec3(2, 3, 4) | uvec3(4, 5, 6) | uvec3(6, 7, 8) ]; 1863e5c31af7Sopenharmony_ci } 1864e5c31af7Sopenharmony_ci 1865e5c31af7Sopenharmony_ci both "" 1866e5c31af7Sopenharmony_ci #version 310 es 1867e5c31af7Sopenharmony_ci precision highp float; 1868e5c31af7Sopenharmony_ci ${DECLARATIONS} 1869e5c31af7Sopenharmony_ci 1870e5c31af7Sopenharmony_ci void main() 1871e5c31af7Sopenharmony_ci { 1872e5c31af7Sopenharmony_ci ${SETUP} 1873e5c31af7Sopenharmony_ci out0 = uvec3(1, 2, 3) + in0; 1874e5c31af7Sopenharmony_ci ${OUTPUT} 1875e5c31af7Sopenharmony_ci } 1876e5c31af7Sopenharmony_ci "" 1877e5c31af7Sopenharmony_ci end 1878e5c31af7Sopenharmony_ci case int_to_uvec4 1879e5c31af7Sopenharmony_ci version 310 es 1880e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1881e5c31af7Sopenharmony_ci values 1882e5c31af7Sopenharmony_ci { 1883e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 1884e5c31af7Sopenharmony_ci output uvec4 out0 = [ uvec4(3, 4, 5, 6) | uvec4(2, 3, 4, 5) | uvec4(2, 3, 4, 5) | uvec4(4, 5, 6, 7) | uvec4(6, 7, 8, 9) ]; 1885e5c31af7Sopenharmony_ci } 1886e5c31af7Sopenharmony_ci 1887e5c31af7Sopenharmony_ci both "" 1888e5c31af7Sopenharmony_ci #version 310 es 1889e5c31af7Sopenharmony_ci precision highp float; 1890e5c31af7Sopenharmony_ci ${DECLARATIONS} 1891e5c31af7Sopenharmony_ci 1892e5c31af7Sopenharmony_ci void main() 1893e5c31af7Sopenharmony_ci { 1894e5c31af7Sopenharmony_ci ${SETUP} 1895e5c31af7Sopenharmony_ci out0 = uvec4(1, 2, 3, 4) + in0; 1896e5c31af7Sopenharmony_ci ${OUTPUT} 1897e5c31af7Sopenharmony_ci } 1898e5c31af7Sopenharmony_ci "" 1899e5c31af7Sopenharmony_ci end 1900e5c31af7Sopenharmony_ci case uint_to_float 1901e5c31af7Sopenharmony_ci version 310 es 1902e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1903e5c31af7Sopenharmony_ci values 1904e5c31af7Sopenharmony_ci { 1905e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 1906e5c31af7Sopenharmony_ci output float out0 = [ 3.0 | 5.0 | 6.0 | 9.0 | 13.0 ]; 1907e5c31af7Sopenharmony_ci } 1908e5c31af7Sopenharmony_ci 1909e5c31af7Sopenharmony_ci both "" 1910e5c31af7Sopenharmony_ci #version 310 es 1911e5c31af7Sopenharmony_ci precision highp float; 1912e5c31af7Sopenharmony_ci ${DECLARATIONS} 1913e5c31af7Sopenharmony_ci 1914e5c31af7Sopenharmony_ci void main() 1915e5c31af7Sopenharmony_ci { 1916e5c31af7Sopenharmony_ci ${SETUP} 1917e5c31af7Sopenharmony_ci out0 = 2.0 + in0; 1918e5c31af7Sopenharmony_ci ${OUTPUT} 1919e5c31af7Sopenharmony_ci } 1920e5c31af7Sopenharmony_ci "" 1921e5c31af7Sopenharmony_ci end 1922e5c31af7Sopenharmony_ci case uint_to_vec2 1923e5c31af7Sopenharmony_ci version 310 es 1924e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1925e5c31af7Sopenharmony_ci values 1926e5c31af7Sopenharmony_ci { 1927e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 1928e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(2.0, 3.0) | vec2(4.0, 5.0) | vec2(5.0, 6.0) | vec2(8.0, 9.0) | vec2(12.0, 13.0) ]; 1929e5c31af7Sopenharmony_ci } 1930e5c31af7Sopenharmony_ci 1931e5c31af7Sopenharmony_ci both "" 1932e5c31af7Sopenharmony_ci #version 310 es 1933e5c31af7Sopenharmony_ci precision highp float; 1934e5c31af7Sopenharmony_ci ${DECLARATIONS} 1935e5c31af7Sopenharmony_ci 1936e5c31af7Sopenharmony_ci void main() 1937e5c31af7Sopenharmony_ci { 1938e5c31af7Sopenharmony_ci ${SETUP} 1939e5c31af7Sopenharmony_ci out0 = vec2(1.0, 2.0) + in0; 1940e5c31af7Sopenharmony_ci ${OUTPUT} 1941e5c31af7Sopenharmony_ci } 1942e5c31af7Sopenharmony_ci "" 1943e5c31af7Sopenharmony_ci end 1944e5c31af7Sopenharmony_ci case uint_to_vec3 1945e5c31af7Sopenharmony_ci version 310 es 1946e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1947e5c31af7Sopenharmony_ci values 1948e5c31af7Sopenharmony_ci { 1949e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 1950e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(2.0, 3.0, 4.0) | vec3(4.0, 5.0, 6.0) | vec3(5.0, 6.0, 7.0) | vec3(8.0, 9.0, 10.0) | vec3(12.0, 13.0, 14.0) ]; 1951e5c31af7Sopenharmony_ci } 1952e5c31af7Sopenharmony_ci 1953e5c31af7Sopenharmony_ci both "" 1954e5c31af7Sopenharmony_ci #version 310 es 1955e5c31af7Sopenharmony_ci precision highp float; 1956e5c31af7Sopenharmony_ci ${DECLARATIONS} 1957e5c31af7Sopenharmony_ci 1958e5c31af7Sopenharmony_ci void main() 1959e5c31af7Sopenharmony_ci { 1960e5c31af7Sopenharmony_ci ${SETUP} 1961e5c31af7Sopenharmony_ci out0 = vec3(1.0, 2.0, 3.0) + in0; 1962e5c31af7Sopenharmony_ci ${OUTPUT} 1963e5c31af7Sopenharmony_ci } 1964e5c31af7Sopenharmony_ci "" 1965e5c31af7Sopenharmony_ci end 1966e5c31af7Sopenharmony_ci case uint_to_vec4 1967e5c31af7Sopenharmony_ci version 310 es 1968e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1969e5c31af7Sopenharmony_ci values 1970e5c31af7Sopenharmony_ci { 1971e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 1972e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(2.0, 3.0, 4.0, 5.0) | vec4(4.0, 5.0, 6.0, 7.0) | vec4(5.0, 6.0, 7.0, 8.0) | vec4(8.0, 9.0, 10.0, 11.0) | vec4(12.0, 13.0, 14.0, 15.0) ]; 1973e5c31af7Sopenharmony_ci } 1974e5c31af7Sopenharmony_ci 1975e5c31af7Sopenharmony_ci both "" 1976e5c31af7Sopenharmony_ci #version 310 es 1977e5c31af7Sopenharmony_ci precision highp float; 1978e5c31af7Sopenharmony_ci ${DECLARATIONS} 1979e5c31af7Sopenharmony_ci 1980e5c31af7Sopenharmony_ci void main() 1981e5c31af7Sopenharmony_ci { 1982e5c31af7Sopenharmony_ci ${SETUP} 1983e5c31af7Sopenharmony_ci out0 = vec4(1.0, 2.0, 3.0, 4.0) + in0; 1984e5c31af7Sopenharmony_ci ${OUTPUT} 1985e5c31af7Sopenharmony_ci } 1986e5c31af7Sopenharmony_ci "" 1987e5c31af7Sopenharmony_ci end 1988e5c31af7Sopenharmony_ci case ivec2_to_uvec2 1989e5c31af7Sopenharmony_ci version 310 es 1990e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1991e5c31af7Sopenharmony_ci values 1992e5c31af7Sopenharmony_ci { 1993e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 1994e5c31af7Sopenharmony_ci output uvec2 out0 = [ uvec2(2, 4) | uvec2(3, 3) | uvec2(4, 9) ]; 1995e5c31af7Sopenharmony_ci } 1996e5c31af7Sopenharmony_ci 1997e5c31af7Sopenharmony_ci both "" 1998e5c31af7Sopenharmony_ci #version 310 es 1999e5c31af7Sopenharmony_ci precision highp float; 2000e5c31af7Sopenharmony_ci ${DECLARATIONS} 2001e5c31af7Sopenharmony_ci 2002e5c31af7Sopenharmony_ci void main() 2003e5c31af7Sopenharmony_ci { 2004e5c31af7Sopenharmony_ci ${SETUP} 2005e5c31af7Sopenharmony_ci out0 = uvec2(1, 2) + in0; 2006e5c31af7Sopenharmony_ci ${OUTPUT} 2007e5c31af7Sopenharmony_ci } 2008e5c31af7Sopenharmony_ci "" 2009e5c31af7Sopenharmony_ci end 2010e5c31af7Sopenharmony_ci case ivec2_to_vec2 2011e5c31af7Sopenharmony_ci version 310 es 2012e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2013e5c31af7Sopenharmony_ci values 2014e5c31af7Sopenharmony_ci { 2015e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 2016e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(2.0, 4.0) | vec2(3.0, 3.0) | vec2(4.0, 9.0) ]; 2017e5c31af7Sopenharmony_ci } 2018e5c31af7Sopenharmony_ci 2019e5c31af7Sopenharmony_ci both "" 2020e5c31af7Sopenharmony_ci #version 310 es 2021e5c31af7Sopenharmony_ci precision highp float; 2022e5c31af7Sopenharmony_ci ${DECLARATIONS} 2023e5c31af7Sopenharmony_ci 2024e5c31af7Sopenharmony_ci void main() 2025e5c31af7Sopenharmony_ci { 2026e5c31af7Sopenharmony_ci ${SETUP} 2027e5c31af7Sopenharmony_ci out0 = vec2(1.0, 2.0) + in0; 2028e5c31af7Sopenharmony_ci ${OUTPUT} 2029e5c31af7Sopenharmony_ci } 2030e5c31af7Sopenharmony_ci "" 2031e5c31af7Sopenharmony_ci end 2032e5c31af7Sopenharmony_ci case uvec2_to_vec2 2033e5c31af7Sopenharmony_ci version 310 es 2034e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2035e5c31af7Sopenharmony_ci values 2036e5c31af7Sopenharmony_ci { 2037e5c31af7Sopenharmony_ci input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 2038e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(3.0, 5.0) | vec2(5.0, 8.0) | vec2(2.0, 15.0) ]; 2039e5c31af7Sopenharmony_ci } 2040e5c31af7Sopenharmony_ci 2041e5c31af7Sopenharmony_ci both "" 2042e5c31af7Sopenharmony_ci #version 310 es 2043e5c31af7Sopenharmony_ci precision highp float; 2044e5c31af7Sopenharmony_ci ${DECLARATIONS} 2045e5c31af7Sopenharmony_ci 2046e5c31af7Sopenharmony_ci void main() 2047e5c31af7Sopenharmony_ci { 2048e5c31af7Sopenharmony_ci ${SETUP} 2049e5c31af7Sopenharmony_ci out0 = vec2(1.0, 2.0) + in0; 2050e5c31af7Sopenharmony_ci ${OUTPUT} 2051e5c31af7Sopenharmony_ci } 2052e5c31af7Sopenharmony_ci "" 2053e5c31af7Sopenharmony_ci end 2054e5c31af7Sopenharmony_ci case ivec3_to_uvec3 2055e5c31af7Sopenharmony_ci version 310 es 2056e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2057e5c31af7Sopenharmony_ci values 2058e5c31af7Sopenharmony_ci { 2059e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 2060e5c31af7Sopenharmony_ci output uvec3 out0 = [ uvec3(2, 4, 6) | uvec3(3, 3, 5) | uvec3(4, 9, 5) ]; 2061e5c31af7Sopenharmony_ci } 2062e5c31af7Sopenharmony_ci 2063e5c31af7Sopenharmony_ci both "" 2064e5c31af7Sopenharmony_ci #version 310 es 2065e5c31af7Sopenharmony_ci precision highp float; 2066e5c31af7Sopenharmony_ci ${DECLARATIONS} 2067e5c31af7Sopenharmony_ci 2068e5c31af7Sopenharmony_ci void main() 2069e5c31af7Sopenharmony_ci { 2070e5c31af7Sopenharmony_ci ${SETUP} 2071e5c31af7Sopenharmony_ci out0 = uvec3(1, 2, 3) + in0; 2072e5c31af7Sopenharmony_ci ${OUTPUT} 2073e5c31af7Sopenharmony_ci } 2074e5c31af7Sopenharmony_ci "" 2075e5c31af7Sopenharmony_ci end 2076e5c31af7Sopenharmony_ci case ivec3_to_vec3 2077e5c31af7Sopenharmony_ci version 310 es 2078e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2079e5c31af7Sopenharmony_ci values 2080e5c31af7Sopenharmony_ci { 2081e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 2082e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(2.0, 4.0, 6.0) | vec3(3.0, 3.0, 5.0) | vec3(4.0, 9.0, 5.0) ]; 2083e5c31af7Sopenharmony_ci } 2084e5c31af7Sopenharmony_ci 2085e5c31af7Sopenharmony_ci both "" 2086e5c31af7Sopenharmony_ci #version 310 es 2087e5c31af7Sopenharmony_ci precision highp float; 2088e5c31af7Sopenharmony_ci ${DECLARATIONS} 2089e5c31af7Sopenharmony_ci 2090e5c31af7Sopenharmony_ci void main() 2091e5c31af7Sopenharmony_ci { 2092e5c31af7Sopenharmony_ci ${SETUP} 2093e5c31af7Sopenharmony_ci out0 = vec3(1.0, 2.0, 3.0) + in0; 2094e5c31af7Sopenharmony_ci ${OUTPUT} 2095e5c31af7Sopenharmony_ci } 2096e5c31af7Sopenharmony_ci "" 2097e5c31af7Sopenharmony_ci end 2098e5c31af7Sopenharmony_ci case uvec3_to_vec3 2099e5c31af7Sopenharmony_ci version 310 es 2100e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2101e5c31af7Sopenharmony_ci values 2102e5c31af7Sopenharmony_ci { 2103e5c31af7Sopenharmony_ci input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 2104e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(3.0, 5.0, 8.0) | vec3(5.0, 8.0, 5.0) | vec3(2.0, 15.0, 10.0) ]; 2105e5c31af7Sopenharmony_ci } 2106e5c31af7Sopenharmony_ci 2107e5c31af7Sopenharmony_ci both "" 2108e5c31af7Sopenharmony_ci #version 310 es 2109e5c31af7Sopenharmony_ci precision highp float; 2110e5c31af7Sopenharmony_ci ${DECLARATIONS} 2111e5c31af7Sopenharmony_ci 2112e5c31af7Sopenharmony_ci void main() 2113e5c31af7Sopenharmony_ci { 2114e5c31af7Sopenharmony_ci ${SETUP} 2115e5c31af7Sopenharmony_ci out0 = vec3(1.0, 2.0, 3.0) + in0; 2116e5c31af7Sopenharmony_ci ${OUTPUT} 2117e5c31af7Sopenharmony_ci } 2118e5c31af7Sopenharmony_ci "" 2119e5c31af7Sopenharmony_ci end 2120e5c31af7Sopenharmony_ci case ivec4_to_uvec4 2121e5c31af7Sopenharmony_ci version 310 es 2122e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2123e5c31af7Sopenharmony_ci values 2124e5c31af7Sopenharmony_ci { 2125e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 2126e5c31af7Sopenharmony_ci output uvec4 out0 = [ uvec4(2, 4, 6, 8) | uvec4(3, 3, 5, 10) | uvec4(4, 9, 5, 9) ]; 2127e5c31af7Sopenharmony_ci } 2128e5c31af7Sopenharmony_ci 2129e5c31af7Sopenharmony_ci both "" 2130e5c31af7Sopenharmony_ci #version 310 es 2131e5c31af7Sopenharmony_ci precision highp float; 2132e5c31af7Sopenharmony_ci ${DECLARATIONS} 2133e5c31af7Sopenharmony_ci 2134e5c31af7Sopenharmony_ci void main() 2135e5c31af7Sopenharmony_ci { 2136e5c31af7Sopenharmony_ci ${SETUP} 2137e5c31af7Sopenharmony_ci out0 = uvec4(1, 2, 3, 4) + in0; 2138e5c31af7Sopenharmony_ci ${OUTPUT} 2139e5c31af7Sopenharmony_ci } 2140e5c31af7Sopenharmony_ci "" 2141e5c31af7Sopenharmony_ci end 2142e5c31af7Sopenharmony_ci case ivec4_to_vec4 2143e5c31af7Sopenharmony_ci version 310 es 2144e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2145e5c31af7Sopenharmony_ci values 2146e5c31af7Sopenharmony_ci { 2147e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 2148e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(2.0, 4.0, 6.0, 8.0) | vec4(3.0, 3.0, 5.0, 10.0) | vec4(4.0, 9.0, 5.0, 9.0) ]; 2149e5c31af7Sopenharmony_ci } 2150e5c31af7Sopenharmony_ci 2151e5c31af7Sopenharmony_ci both "" 2152e5c31af7Sopenharmony_ci #version 310 es 2153e5c31af7Sopenharmony_ci precision highp float; 2154e5c31af7Sopenharmony_ci ${DECLARATIONS} 2155e5c31af7Sopenharmony_ci 2156e5c31af7Sopenharmony_ci void main() 2157e5c31af7Sopenharmony_ci { 2158e5c31af7Sopenharmony_ci ${SETUP} 2159e5c31af7Sopenharmony_ci out0 = vec4(1.0, 2.0, 3.0, 4.0) + in0; 2160e5c31af7Sopenharmony_ci ${OUTPUT} 2161e5c31af7Sopenharmony_ci } 2162e5c31af7Sopenharmony_ci "" 2163e5c31af7Sopenharmony_ci end 2164e5c31af7Sopenharmony_ci case uvec4_to_vec4 2165e5c31af7Sopenharmony_ci version 310 es 2166e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2167e5c31af7Sopenharmony_ci values 2168e5c31af7Sopenharmony_ci { 2169e5c31af7Sopenharmony_ci input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 2170e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(3.0, 5.0, 8.0, 12.0) | vec4(5.0, 8.0, 5.0, 13.0) | vec4(2.0, 15.0, 10.0, 8.0) ]; 2171e5c31af7Sopenharmony_ci } 2172e5c31af7Sopenharmony_ci 2173e5c31af7Sopenharmony_ci both "" 2174e5c31af7Sopenharmony_ci #version 310 es 2175e5c31af7Sopenharmony_ci precision highp float; 2176e5c31af7Sopenharmony_ci ${DECLARATIONS} 2177e5c31af7Sopenharmony_ci 2178e5c31af7Sopenharmony_ci void main() 2179e5c31af7Sopenharmony_ci { 2180e5c31af7Sopenharmony_ci ${SETUP} 2181e5c31af7Sopenharmony_ci out0 = vec4(1.0, 2.0, 3.0, 4.0) + in0; 2182e5c31af7Sopenharmony_ci ${OUTPUT} 2183e5c31af7Sopenharmony_ci } 2184e5c31af7Sopenharmony_ci "" 2185e5c31af7Sopenharmony_ci end 2186e5c31af7Sopenharmony_ci 2187e5c31af7Sopenharmony_ci end # add 2188e5c31af7Sopenharmony_ci group sub "Subtraction" 2189e5c31af7Sopenharmony_ci 2190e5c31af7Sopenharmony_ci case int_to_float 2191e5c31af7Sopenharmony_ci version 310 es 2192e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2193e5c31af7Sopenharmony_ci values 2194e5c31af7Sopenharmony_ci { 2195e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 2196e5c31af7Sopenharmony_ci output float out0 = [ 0.0 | 1.0 | 1.0 | -1.0 | -3.0 ]; 2197e5c31af7Sopenharmony_ci } 2198e5c31af7Sopenharmony_ci 2199e5c31af7Sopenharmony_ci both "" 2200e5c31af7Sopenharmony_ci #version 310 es 2201e5c31af7Sopenharmony_ci precision highp float; 2202e5c31af7Sopenharmony_ci ${DECLARATIONS} 2203e5c31af7Sopenharmony_ci 2204e5c31af7Sopenharmony_ci void main() 2205e5c31af7Sopenharmony_ci { 2206e5c31af7Sopenharmony_ci ${SETUP} 2207e5c31af7Sopenharmony_ci out0 = 2.0 - in0; 2208e5c31af7Sopenharmony_ci ${OUTPUT} 2209e5c31af7Sopenharmony_ci } 2210e5c31af7Sopenharmony_ci "" 2211e5c31af7Sopenharmony_ci end 2212e5c31af7Sopenharmony_ci case int_to_vec2 2213e5c31af7Sopenharmony_ci version 310 es 2214e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2215e5c31af7Sopenharmony_ci values 2216e5c31af7Sopenharmony_ci { 2217e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 2218e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(-1.0, 0.0) | vec2(0.0, 1.0) | vec2(0.0, 1.0) | vec2(-2.0, -1.0) | vec2(-4.0, -3.0) ]; 2219e5c31af7Sopenharmony_ci } 2220e5c31af7Sopenharmony_ci 2221e5c31af7Sopenharmony_ci both "" 2222e5c31af7Sopenharmony_ci #version 310 es 2223e5c31af7Sopenharmony_ci precision highp float; 2224e5c31af7Sopenharmony_ci ${DECLARATIONS} 2225e5c31af7Sopenharmony_ci 2226e5c31af7Sopenharmony_ci void main() 2227e5c31af7Sopenharmony_ci { 2228e5c31af7Sopenharmony_ci ${SETUP} 2229e5c31af7Sopenharmony_ci out0 = vec2(1.0, 2.0) - in0; 2230e5c31af7Sopenharmony_ci ${OUTPUT} 2231e5c31af7Sopenharmony_ci } 2232e5c31af7Sopenharmony_ci "" 2233e5c31af7Sopenharmony_ci end 2234e5c31af7Sopenharmony_ci case int_to_vec3 2235e5c31af7Sopenharmony_ci version 310 es 2236e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2237e5c31af7Sopenharmony_ci values 2238e5c31af7Sopenharmony_ci { 2239e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 2240e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(-1.0, 0.0, 1.0) | vec3(0.0, 1.0, 2.0) | vec3(0.0, 1.0, 2.0) | vec3(-2.0, -1.0, 0.0) | vec3(-4.0, -3.0, -2.0) ]; 2241e5c31af7Sopenharmony_ci } 2242e5c31af7Sopenharmony_ci 2243e5c31af7Sopenharmony_ci both "" 2244e5c31af7Sopenharmony_ci #version 310 es 2245e5c31af7Sopenharmony_ci precision highp float; 2246e5c31af7Sopenharmony_ci ${DECLARATIONS} 2247e5c31af7Sopenharmony_ci 2248e5c31af7Sopenharmony_ci void main() 2249e5c31af7Sopenharmony_ci { 2250e5c31af7Sopenharmony_ci ${SETUP} 2251e5c31af7Sopenharmony_ci out0 = vec3(1.0, 2.0, 3.0) - in0; 2252e5c31af7Sopenharmony_ci ${OUTPUT} 2253e5c31af7Sopenharmony_ci } 2254e5c31af7Sopenharmony_ci "" 2255e5c31af7Sopenharmony_ci end 2256e5c31af7Sopenharmony_ci case int_to_vec4 2257e5c31af7Sopenharmony_ci version 310 es 2258e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2259e5c31af7Sopenharmony_ci values 2260e5c31af7Sopenharmony_ci { 2261e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 2262e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(-1.0, 0.0, 1.0, 2.0) | vec4(0.0, 1.0, 2.0, 3.0) | vec4(0.0, 1.0, 2.0, 3.0) | vec4(-2.0, -1.0, 0.0, 1.0) | vec4(-4.0, -3.0, -2.0, -1.0) ]; 2263e5c31af7Sopenharmony_ci } 2264e5c31af7Sopenharmony_ci 2265e5c31af7Sopenharmony_ci both "" 2266e5c31af7Sopenharmony_ci #version 310 es 2267e5c31af7Sopenharmony_ci precision highp float; 2268e5c31af7Sopenharmony_ci ${DECLARATIONS} 2269e5c31af7Sopenharmony_ci 2270e5c31af7Sopenharmony_ci void main() 2271e5c31af7Sopenharmony_ci { 2272e5c31af7Sopenharmony_ci ${SETUP} 2273e5c31af7Sopenharmony_ci out0 = vec4(1.0, 2.0, 3.0, 4.0) - in0; 2274e5c31af7Sopenharmony_ci ${OUTPUT} 2275e5c31af7Sopenharmony_ci } 2276e5c31af7Sopenharmony_ci "" 2277e5c31af7Sopenharmony_ci end 2278e5c31af7Sopenharmony_ci case uint_to_float 2279e5c31af7Sopenharmony_ci version 310 es 2280e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2281e5c31af7Sopenharmony_ci values 2282e5c31af7Sopenharmony_ci { 2283e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 2284e5c31af7Sopenharmony_ci output float out0 = [ 1.0 | -1.0 | -2.0 | -5.0 | -9.0 ]; 2285e5c31af7Sopenharmony_ci } 2286e5c31af7Sopenharmony_ci 2287e5c31af7Sopenharmony_ci both "" 2288e5c31af7Sopenharmony_ci #version 310 es 2289e5c31af7Sopenharmony_ci precision highp float; 2290e5c31af7Sopenharmony_ci ${DECLARATIONS} 2291e5c31af7Sopenharmony_ci 2292e5c31af7Sopenharmony_ci void main() 2293e5c31af7Sopenharmony_ci { 2294e5c31af7Sopenharmony_ci ${SETUP} 2295e5c31af7Sopenharmony_ci out0 = 2.0 - in0; 2296e5c31af7Sopenharmony_ci ${OUTPUT} 2297e5c31af7Sopenharmony_ci } 2298e5c31af7Sopenharmony_ci "" 2299e5c31af7Sopenharmony_ci end 2300e5c31af7Sopenharmony_ci case uint_to_vec2 2301e5c31af7Sopenharmony_ci version 310 es 2302e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2303e5c31af7Sopenharmony_ci values 2304e5c31af7Sopenharmony_ci { 2305e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 2306e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(0.0, 1.0) | vec2(-2.0, -1.0) | vec2(-3.0, -2.0) | vec2(-6.0, -5.0) | vec2(-10.0, -9.0) ]; 2307e5c31af7Sopenharmony_ci } 2308e5c31af7Sopenharmony_ci 2309e5c31af7Sopenharmony_ci both "" 2310e5c31af7Sopenharmony_ci #version 310 es 2311e5c31af7Sopenharmony_ci precision highp float; 2312e5c31af7Sopenharmony_ci ${DECLARATIONS} 2313e5c31af7Sopenharmony_ci 2314e5c31af7Sopenharmony_ci void main() 2315e5c31af7Sopenharmony_ci { 2316e5c31af7Sopenharmony_ci ${SETUP} 2317e5c31af7Sopenharmony_ci out0 = vec2(1.0, 2.0) - in0; 2318e5c31af7Sopenharmony_ci ${OUTPUT} 2319e5c31af7Sopenharmony_ci } 2320e5c31af7Sopenharmony_ci "" 2321e5c31af7Sopenharmony_ci end 2322e5c31af7Sopenharmony_ci case uint_to_vec3 2323e5c31af7Sopenharmony_ci version 310 es 2324e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2325e5c31af7Sopenharmony_ci values 2326e5c31af7Sopenharmony_ci { 2327e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 2328e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(0.0, 1.0, 2.0) | vec3(-2.0, -1.0, 0.0) | vec3(-3.0, -2.0, -1.0) | vec3(-6.0, -5.0, -4.0) | vec3(-10.0, -9.0, -8.0) ]; 2329e5c31af7Sopenharmony_ci } 2330e5c31af7Sopenharmony_ci 2331e5c31af7Sopenharmony_ci both "" 2332e5c31af7Sopenharmony_ci #version 310 es 2333e5c31af7Sopenharmony_ci precision highp float; 2334e5c31af7Sopenharmony_ci ${DECLARATIONS} 2335e5c31af7Sopenharmony_ci 2336e5c31af7Sopenharmony_ci void main() 2337e5c31af7Sopenharmony_ci { 2338e5c31af7Sopenharmony_ci ${SETUP} 2339e5c31af7Sopenharmony_ci out0 = vec3(1.0, 2.0, 3.0) - in0; 2340e5c31af7Sopenharmony_ci ${OUTPUT} 2341e5c31af7Sopenharmony_ci } 2342e5c31af7Sopenharmony_ci "" 2343e5c31af7Sopenharmony_ci end 2344e5c31af7Sopenharmony_ci case uint_to_vec4 2345e5c31af7Sopenharmony_ci version 310 es 2346e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2347e5c31af7Sopenharmony_ci values 2348e5c31af7Sopenharmony_ci { 2349e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 2350e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(0.0, 1.0, 2.0, 3.0) | vec4(-2.0, -1.0, 0.0, 1.0) | vec4(-3.0, -2.0, -1.0, 0.0) | vec4(-6.0, -5.0, -4.0, -3.0) | vec4(-10.0, -9.0, -8.0, -7.0) ]; 2351e5c31af7Sopenharmony_ci } 2352e5c31af7Sopenharmony_ci 2353e5c31af7Sopenharmony_ci both "" 2354e5c31af7Sopenharmony_ci #version 310 es 2355e5c31af7Sopenharmony_ci precision highp float; 2356e5c31af7Sopenharmony_ci ${DECLARATIONS} 2357e5c31af7Sopenharmony_ci 2358e5c31af7Sopenharmony_ci void main() 2359e5c31af7Sopenharmony_ci { 2360e5c31af7Sopenharmony_ci ${SETUP} 2361e5c31af7Sopenharmony_ci out0 = vec4(1.0, 2.0, 3.0, 4.0) - in0; 2362e5c31af7Sopenharmony_ci ${OUTPUT} 2363e5c31af7Sopenharmony_ci } 2364e5c31af7Sopenharmony_ci "" 2365e5c31af7Sopenharmony_ci end 2366e5c31af7Sopenharmony_ci case ivec2_to_vec2 2367e5c31af7Sopenharmony_ci version 310 es 2368e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2369e5c31af7Sopenharmony_ci values 2370e5c31af7Sopenharmony_ci { 2371e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 2372e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(0.0, 0.0) | vec2(-1.0, 1.0) | vec2(-2.0, -5.0) ]; 2373e5c31af7Sopenharmony_ci } 2374e5c31af7Sopenharmony_ci 2375e5c31af7Sopenharmony_ci both "" 2376e5c31af7Sopenharmony_ci #version 310 es 2377e5c31af7Sopenharmony_ci precision highp float; 2378e5c31af7Sopenharmony_ci ${DECLARATIONS} 2379e5c31af7Sopenharmony_ci 2380e5c31af7Sopenharmony_ci void main() 2381e5c31af7Sopenharmony_ci { 2382e5c31af7Sopenharmony_ci ${SETUP} 2383e5c31af7Sopenharmony_ci out0 = vec2(1.0, 2.0) - in0; 2384e5c31af7Sopenharmony_ci ${OUTPUT} 2385e5c31af7Sopenharmony_ci } 2386e5c31af7Sopenharmony_ci "" 2387e5c31af7Sopenharmony_ci end 2388e5c31af7Sopenharmony_ci case uvec2_to_vec2 2389e5c31af7Sopenharmony_ci version 310 es 2390e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2391e5c31af7Sopenharmony_ci values 2392e5c31af7Sopenharmony_ci { 2393e5c31af7Sopenharmony_ci input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 2394e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(-1.0, -1.0) | vec2(-3.0, -4.0) | vec2(0.0, -11.0) ]; 2395e5c31af7Sopenharmony_ci } 2396e5c31af7Sopenharmony_ci 2397e5c31af7Sopenharmony_ci both "" 2398e5c31af7Sopenharmony_ci #version 310 es 2399e5c31af7Sopenharmony_ci precision highp float; 2400e5c31af7Sopenharmony_ci ${DECLARATIONS} 2401e5c31af7Sopenharmony_ci 2402e5c31af7Sopenharmony_ci void main() 2403e5c31af7Sopenharmony_ci { 2404e5c31af7Sopenharmony_ci ${SETUP} 2405e5c31af7Sopenharmony_ci out0 = vec2(1.0, 2.0) - in0; 2406e5c31af7Sopenharmony_ci ${OUTPUT} 2407e5c31af7Sopenharmony_ci } 2408e5c31af7Sopenharmony_ci "" 2409e5c31af7Sopenharmony_ci end 2410e5c31af7Sopenharmony_ci case ivec3_to_vec3 2411e5c31af7Sopenharmony_ci version 310 es 2412e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2413e5c31af7Sopenharmony_ci values 2414e5c31af7Sopenharmony_ci { 2415e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 2416e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(0.0, 0.0, 0.0) | vec3(-1.0, 1.0, 1.0) | vec3(-2.0, -5.0, 1.0) ]; 2417e5c31af7Sopenharmony_ci } 2418e5c31af7Sopenharmony_ci 2419e5c31af7Sopenharmony_ci both "" 2420e5c31af7Sopenharmony_ci #version 310 es 2421e5c31af7Sopenharmony_ci precision highp float; 2422e5c31af7Sopenharmony_ci ${DECLARATIONS} 2423e5c31af7Sopenharmony_ci 2424e5c31af7Sopenharmony_ci void main() 2425e5c31af7Sopenharmony_ci { 2426e5c31af7Sopenharmony_ci ${SETUP} 2427e5c31af7Sopenharmony_ci out0 = vec3(1.0, 2.0, 3.0) - in0; 2428e5c31af7Sopenharmony_ci ${OUTPUT} 2429e5c31af7Sopenharmony_ci } 2430e5c31af7Sopenharmony_ci "" 2431e5c31af7Sopenharmony_ci end 2432e5c31af7Sopenharmony_ci case uvec3_to_vec3 2433e5c31af7Sopenharmony_ci version 310 es 2434e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2435e5c31af7Sopenharmony_ci values 2436e5c31af7Sopenharmony_ci { 2437e5c31af7Sopenharmony_ci input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 2438e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(-1.0, -1.0, -2.0) | vec3(-3.0, -4.0, 1.0) | vec3(0.0, -11.0, -4.0) ]; 2439e5c31af7Sopenharmony_ci } 2440e5c31af7Sopenharmony_ci 2441e5c31af7Sopenharmony_ci both "" 2442e5c31af7Sopenharmony_ci #version 310 es 2443e5c31af7Sopenharmony_ci precision highp float; 2444e5c31af7Sopenharmony_ci ${DECLARATIONS} 2445e5c31af7Sopenharmony_ci 2446e5c31af7Sopenharmony_ci void main() 2447e5c31af7Sopenharmony_ci { 2448e5c31af7Sopenharmony_ci ${SETUP} 2449e5c31af7Sopenharmony_ci out0 = vec3(1.0, 2.0, 3.0) - in0; 2450e5c31af7Sopenharmony_ci ${OUTPUT} 2451e5c31af7Sopenharmony_ci } 2452e5c31af7Sopenharmony_ci "" 2453e5c31af7Sopenharmony_ci end 2454e5c31af7Sopenharmony_ci case ivec4_to_vec4 2455e5c31af7Sopenharmony_ci version 310 es 2456e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2457e5c31af7Sopenharmony_ci values 2458e5c31af7Sopenharmony_ci { 2459e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 2460e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(0.0, 0.0, 0.0, 0.0) | vec4(-1.0, 1.0, 1.0, -2.0) | vec4(-2.0, -5.0, 1.0, -1.0) ]; 2461e5c31af7Sopenharmony_ci } 2462e5c31af7Sopenharmony_ci 2463e5c31af7Sopenharmony_ci both "" 2464e5c31af7Sopenharmony_ci #version 310 es 2465e5c31af7Sopenharmony_ci precision highp float; 2466e5c31af7Sopenharmony_ci ${DECLARATIONS} 2467e5c31af7Sopenharmony_ci 2468e5c31af7Sopenharmony_ci void main() 2469e5c31af7Sopenharmony_ci { 2470e5c31af7Sopenharmony_ci ${SETUP} 2471e5c31af7Sopenharmony_ci out0 = vec4(1.0, 2.0, 3.0, 4.0) - in0; 2472e5c31af7Sopenharmony_ci ${OUTPUT} 2473e5c31af7Sopenharmony_ci } 2474e5c31af7Sopenharmony_ci "" 2475e5c31af7Sopenharmony_ci end 2476e5c31af7Sopenharmony_ci case uvec4_to_vec4 2477e5c31af7Sopenharmony_ci version 310 es 2478e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2479e5c31af7Sopenharmony_ci values 2480e5c31af7Sopenharmony_ci { 2481e5c31af7Sopenharmony_ci input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 2482e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(-1.0, -1.0, -2.0, -4.0) | vec4(-3.0, -4.0, 1.0, -5.0) | vec4(0.0, -11.0, -4.0, 0.0) ]; 2483e5c31af7Sopenharmony_ci } 2484e5c31af7Sopenharmony_ci 2485e5c31af7Sopenharmony_ci both "" 2486e5c31af7Sopenharmony_ci #version 310 es 2487e5c31af7Sopenharmony_ci precision highp float; 2488e5c31af7Sopenharmony_ci ${DECLARATIONS} 2489e5c31af7Sopenharmony_ci 2490e5c31af7Sopenharmony_ci void main() 2491e5c31af7Sopenharmony_ci { 2492e5c31af7Sopenharmony_ci ${SETUP} 2493e5c31af7Sopenharmony_ci out0 = vec4(1.0, 2.0, 3.0, 4.0) - in0; 2494e5c31af7Sopenharmony_ci ${OUTPUT} 2495e5c31af7Sopenharmony_ci } 2496e5c31af7Sopenharmony_ci "" 2497e5c31af7Sopenharmony_ci end 2498e5c31af7Sopenharmony_ci 2499e5c31af7Sopenharmony_ci end # sub 2500e5c31af7Sopenharmony_ci group mul "Multiplication" 2501e5c31af7Sopenharmony_ci 2502e5c31af7Sopenharmony_ci case int_to_float 2503e5c31af7Sopenharmony_ci version 310 es 2504e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2505e5c31af7Sopenharmony_ci values 2506e5c31af7Sopenharmony_ci { 2507e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 2508e5c31af7Sopenharmony_ci output float out0 = [ 4.0 | 2.0 | 2.0 | 6.0 | 10.0 ]; 2509e5c31af7Sopenharmony_ci } 2510e5c31af7Sopenharmony_ci 2511e5c31af7Sopenharmony_ci both "" 2512e5c31af7Sopenharmony_ci #version 310 es 2513e5c31af7Sopenharmony_ci precision highp float; 2514e5c31af7Sopenharmony_ci ${DECLARATIONS} 2515e5c31af7Sopenharmony_ci 2516e5c31af7Sopenharmony_ci void main() 2517e5c31af7Sopenharmony_ci { 2518e5c31af7Sopenharmony_ci ${SETUP} 2519e5c31af7Sopenharmony_ci out0 = 2.0 * in0; 2520e5c31af7Sopenharmony_ci ${OUTPUT} 2521e5c31af7Sopenharmony_ci } 2522e5c31af7Sopenharmony_ci "" 2523e5c31af7Sopenharmony_ci end 2524e5c31af7Sopenharmony_ci case int_to_uint 2525e5c31af7Sopenharmony_ci version 310 es 2526e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2527e5c31af7Sopenharmony_ci values 2528e5c31af7Sopenharmony_ci { 2529e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 2530e5c31af7Sopenharmony_ci output uint out0 = [ 4 | 2 | 2 | 6 | 10 ]; 2531e5c31af7Sopenharmony_ci } 2532e5c31af7Sopenharmony_ci 2533e5c31af7Sopenharmony_ci both "" 2534e5c31af7Sopenharmony_ci #version 310 es 2535e5c31af7Sopenharmony_ci precision highp float; 2536e5c31af7Sopenharmony_ci ${DECLARATIONS} 2537e5c31af7Sopenharmony_ci 2538e5c31af7Sopenharmony_ci void main() 2539e5c31af7Sopenharmony_ci { 2540e5c31af7Sopenharmony_ci ${SETUP} 2541e5c31af7Sopenharmony_ci out0 = 2 * in0; 2542e5c31af7Sopenharmony_ci ${OUTPUT} 2543e5c31af7Sopenharmony_ci } 2544e5c31af7Sopenharmony_ci "" 2545e5c31af7Sopenharmony_ci end 2546e5c31af7Sopenharmony_ci case int_to_vec2 2547e5c31af7Sopenharmony_ci version 310 es 2548e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2549e5c31af7Sopenharmony_ci values 2550e5c31af7Sopenharmony_ci { 2551e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 2552e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(2.0, 4.0) | vec2(1.0, 2.0) | vec2(1.0, 2.0) | vec2(3.0, 6.0) | vec2(5.0, 10.0) ]; 2553e5c31af7Sopenharmony_ci } 2554e5c31af7Sopenharmony_ci 2555e5c31af7Sopenharmony_ci both "" 2556e5c31af7Sopenharmony_ci #version 310 es 2557e5c31af7Sopenharmony_ci precision highp float; 2558e5c31af7Sopenharmony_ci ${DECLARATIONS} 2559e5c31af7Sopenharmony_ci 2560e5c31af7Sopenharmony_ci void main() 2561e5c31af7Sopenharmony_ci { 2562e5c31af7Sopenharmony_ci ${SETUP} 2563e5c31af7Sopenharmony_ci out0 = vec2(1.0, 2.0) * in0; 2564e5c31af7Sopenharmony_ci ${OUTPUT} 2565e5c31af7Sopenharmony_ci } 2566e5c31af7Sopenharmony_ci "" 2567e5c31af7Sopenharmony_ci end 2568e5c31af7Sopenharmony_ci case int_to_vec3 2569e5c31af7Sopenharmony_ci version 310 es 2570e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2571e5c31af7Sopenharmony_ci values 2572e5c31af7Sopenharmony_ci { 2573e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 2574e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(2.0, 4.0, 6.0) | vec3(1.0, 2.0, 3.0) | vec3(1.0, 2.0, 3.0) | vec3(3.0, 6.0, 9.0) | vec3(5.0, 10.0, 15.0) ]; 2575e5c31af7Sopenharmony_ci } 2576e5c31af7Sopenharmony_ci 2577e5c31af7Sopenharmony_ci both "" 2578e5c31af7Sopenharmony_ci #version 310 es 2579e5c31af7Sopenharmony_ci precision highp float; 2580e5c31af7Sopenharmony_ci ${DECLARATIONS} 2581e5c31af7Sopenharmony_ci 2582e5c31af7Sopenharmony_ci void main() 2583e5c31af7Sopenharmony_ci { 2584e5c31af7Sopenharmony_ci ${SETUP} 2585e5c31af7Sopenharmony_ci out0 = vec3(1.0, 2.0, 3.0) * in0; 2586e5c31af7Sopenharmony_ci ${OUTPUT} 2587e5c31af7Sopenharmony_ci } 2588e5c31af7Sopenharmony_ci "" 2589e5c31af7Sopenharmony_ci end 2590e5c31af7Sopenharmony_ci case int_to_vec4 2591e5c31af7Sopenharmony_ci version 310 es 2592e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2593e5c31af7Sopenharmony_ci values 2594e5c31af7Sopenharmony_ci { 2595e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 2596e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(2.0, 4.0, 6.0, 8.0) | vec4(1.0, 2.0, 3.0, 4.0) | vec4(1.0, 2.0, 3.0, 4.0) | vec4(3.0, 6.0, 9.0, 12.0) | vec4(5.0, 10.0, 15.0, 20.0) ]; 2597e5c31af7Sopenharmony_ci } 2598e5c31af7Sopenharmony_ci 2599e5c31af7Sopenharmony_ci both "" 2600e5c31af7Sopenharmony_ci #version 310 es 2601e5c31af7Sopenharmony_ci precision highp float; 2602e5c31af7Sopenharmony_ci ${DECLARATIONS} 2603e5c31af7Sopenharmony_ci 2604e5c31af7Sopenharmony_ci void main() 2605e5c31af7Sopenharmony_ci { 2606e5c31af7Sopenharmony_ci ${SETUP} 2607e5c31af7Sopenharmony_ci out0 = vec4(1.0, 2.0, 3.0, 4.0) * in0; 2608e5c31af7Sopenharmony_ci ${OUTPUT} 2609e5c31af7Sopenharmony_ci } 2610e5c31af7Sopenharmony_ci "" 2611e5c31af7Sopenharmony_ci end 2612e5c31af7Sopenharmony_ci case int_to_uvec2 2613e5c31af7Sopenharmony_ci version 310 es 2614e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2615e5c31af7Sopenharmony_ci values 2616e5c31af7Sopenharmony_ci { 2617e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 2618e5c31af7Sopenharmony_ci output uvec2 out0 = [ uvec2(2, 4) | uvec2(1, 2) | uvec2(1, 2) | uvec2(3, 6) | uvec2(5, 10) ]; 2619e5c31af7Sopenharmony_ci } 2620e5c31af7Sopenharmony_ci 2621e5c31af7Sopenharmony_ci both "" 2622e5c31af7Sopenharmony_ci #version 310 es 2623e5c31af7Sopenharmony_ci precision highp float; 2624e5c31af7Sopenharmony_ci ${DECLARATIONS} 2625e5c31af7Sopenharmony_ci 2626e5c31af7Sopenharmony_ci void main() 2627e5c31af7Sopenharmony_ci { 2628e5c31af7Sopenharmony_ci ${SETUP} 2629e5c31af7Sopenharmony_ci out0 = uvec2(1, 2) * in0; 2630e5c31af7Sopenharmony_ci ${OUTPUT} 2631e5c31af7Sopenharmony_ci } 2632e5c31af7Sopenharmony_ci "" 2633e5c31af7Sopenharmony_ci end 2634e5c31af7Sopenharmony_ci case int_to_uvec3 2635e5c31af7Sopenharmony_ci version 310 es 2636e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2637e5c31af7Sopenharmony_ci values 2638e5c31af7Sopenharmony_ci { 2639e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 2640e5c31af7Sopenharmony_ci output uvec3 out0 = [ uvec3(2, 4, 6) | uvec3(1, 2, 3) | uvec3(1, 2, 3) | uvec3(3, 6, 9) | uvec3(5, 10, 15) ]; 2641e5c31af7Sopenharmony_ci } 2642e5c31af7Sopenharmony_ci 2643e5c31af7Sopenharmony_ci both "" 2644e5c31af7Sopenharmony_ci #version 310 es 2645e5c31af7Sopenharmony_ci precision highp float; 2646e5c31af7Sopenharmony_ci ${DECLARATIONS} 2647e5c31af7Sopenharmony_ci 2648e5c31af7Sopenharmony_ci void main() 2649e5c31af7Sopenharmony_ci { 2650e5c31af7Sopenharmony_ci ${SETUP} 2651e5c31af7Sopenharmony_ci out0 = uvec3(1, 2, 3) * in0; 2652e5c31af7Sopenharmony_ci ${OUTPUT} 2653e5c31af7Sopenharmony_ci } 2654e5c31af7Sopenharmony_ci "" 2655e5c31af7Sopenharmony_ci end 2656e5c31af7Sopenharmony_ci case int_to_uvec4 2657e5c31af7Sopenharmony_ci version 310 es 2658e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2659e5c31af7Sopenharmony_ci values 2660e5c31af7Sopenharmony_ci { 2661e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 2662e5c31af7Sopenharmony_ci output uvec4 out0 = [ uvec4(2, 4, 6, 8) | uvec4(1, 2, 3, 4) | uvec4(1, 2, 3, 4) | uvec4(3, 6, 9, 12) | uvec4(5, 10, 15, 20) ]; 2663e5c31af7Sopenharmony_ci } 2664e5c31af7Sopenharmony_ci 2665e5c31af7Sopenharmony_ci both "" 2666e5c31af7Sopenharmony_ci #version 310 es 2667e5c31af7Sopenharmony_ci precision highp float; 2668e5c31af7Sopenharmony_ci ${DECLARATIONS} 2669e5c31af7Sopenharmony_ci 2670e5c31af7Sopenharmony_ci void main() 2671e5c31af7Sopenharmony_ci { 2672e5c31af7Sopenharmony_ci ${SETUP} 2673e5c31af7Sopenharmony_ci out0 = uvec4(1, 2, 3, 4) * in0; 2674e5c31af7Sopenharmony_ci ${OUTPUT} 2675e5c31af7Sopenharmony_ci } 2676e5c31af7Sopenharmony_ci "" 2677e5c31af7Sopenharmony_ci end 2678e5c31af7Sopenharmony_ci case uint_to_float 2679e5c31af7Sopenharmony_ci version 310 es 2680e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2681e5c31af7Sopenharmony_ci values 2682e5c31af7Sopenharmony_ci { 2683e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 2684e5c31af7Sopenharmony_ci output float out0 = [ 2.0 | 6.0 | 8.0 | 14.0 | 22.0 ]; 2685e5c31af7Sopenharmony_ci } 2686e5c31af7Sopenharmony_ci 2687e5c31af7Sopenharmony_ci both "" 2688e5c31af7Sopenharmony_ci #version 310 es 2689e5c31af7Sopenharmony_ci precision highp float; 2690e5c31af7Sopenharmony_ci ${DECLARATIONS} 2691e5c31af7Sopenharmony_ci 2692e5c31af7Sopenharmony_ci void main() 2693e5c31af7Sopenharmony_ci { 2694e5c31af7Sopenharmony_ci ${SETUP} 2695e5c31af7Sopenharmony_ci out0 = 2.0 * in0; 2696e5c31af7Sopenharmony_ci ${OUTPUT} 2697e5c31af7Sopenharmony_ci } 2698e5c31af7Sopenharmony_ci "" 2699e5c31af7Sopenharmony_ci end 2700e5c31af7Sopenharmony_ci case uint_to_vec2 2701e5c31af7Sopenharmony_ci version 310 es 2702e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2703e5c31af7Sopenharmony_ci values 2704e5c31af7Sopenharmony_ci { 2705e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 2706e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(1.0, 2.0) | vec2(3.0, 6.0) | vec2(4.0, 8.0) | vec2(7.0, 14.0) | vec2(11.0, 22.0) ]; 2707e5c31af7Sopenharmony_ci } 2708e5c31af7Sopenharmony_ci 2709e5c31af7Sopenharmony_ci both "" 2710e5c31af7Sopenharmony_ci #version 310 es 2711e5c31af7Sopenharmony_ci precision highp float; 2712e5c31af7Sopenharmony_ci ${DECLARATIONS} 2713e5c31af7Sopenharmony_ci 2714e5c31af7Sopenharmony_ci void main() 2715e5c31af7Sopenharmony_ci { 2716e5c31af7Sopenharmony_ci ${SETUP} 2717e5c31af7Sopenharmony_ci out0 = vec2(1.0, 2.0) * in0; 2718e5c31af7Sopenharmony_ci ${OUTPUT} 2719e5c31af7Sopenharmony_ci } 2720e5c31af7Sopenharmony_ci "" 2721e5c31af7Sopenharmony_ci end 2722e5c31af7Sopenharmony_ci case uint_to_vec3 2723e5c31af7Sopenharmony_ci version 310 es 2724e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2725e5c31af7Sopenharmony_ci values 2726e5c31af7Sopenharmony_ci { 2727e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 2728e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(1.0, 2.0, 3.0) | vec3(3.0, 6.0, 9.0) | vec3(4.0, 8.0, 12.0) | vec3(7.0, 14.0, 21.0) | vec3(11.0, 22.0, 33.0) ]; 2729e5c31af7Sopenharmony_ci } 2730e5c31af7Sopenharmony_ci 2731e5c31af7Sopenharmony_ci both "" 2732e5c31af7Sopenharmony_ci #version 310 es 2733e5c31af7Sopenharmony_ci precision highp float; 2734e5c31af7Sopenharmony_ci ${DECLARATIONS} 2735e5c31af7Sopenharmony_ci 2736e5c31af7Sopenharmony_ci void main() 2737e5c31af7Sopenharmony_ci { 2738e5c31af7Sopenharmony_ci ${SETUP} 2739e5c31af7Sopenharmony_ci out0 = vec3(1.0, 2.0, 3.0) * in0; 2740e5c31af7Sopenharmony_ci ${OUTPUT} 2741e5c31af7Sopenharmony_ci } 2742e5c31af7Sopenharmony_ci "" 2743e5c31af7Sopenharmony_ci end 2744e5c31af7Sopenharmony_ci case uint_to_vec4 2745e5c31af7Sopenharmony_ci version 310 es 2746e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2747e5c31af7Sopenharmony_ci values 2748e5c31af7Sopenharmony_ci { 2749e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 2750e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(1.0, 2.0, 3.0, 4.0) | vec4(3.0, 6.0, 9.0, 12.0) | vec4(4.0, 8.0, 12.0, 16.0) | vec4(7.0, 14.0, 21.0, 28.0) | vec4(11.0, 22.0, 33.0, 44.0) ]; 2751e5c31af7Sopenharmony_ci } 2752e5c31af7Sopenharmony_ci 2753e5c31af7Sopenharmony_ci both "" 2754e5c31af7Sopenharmony_ci #version 310 es 2755e5c31af7Sopenharmony_ci precision highp float; 2756e5c31af7Sopenharmony_ci ${DECLARATIONS} 2757e5c31af7Sopenharmony_ci 2758e5c31af7Sopenharmony_ci void main() 2759e5c31af7Sopenharmony_ci { 2760e5c31af7Sopenharmony_ci ${SETUP} 2761e5c31af7Sopenharmony_ci out0 = vec4(1.0, 2.0, 3.0, 4.0) * in0; 2762e5c31af7Sopenharmony_ci ${OUTPUT} 2763e5c31af7Sopenharmony_ci } 2764e5c31af7Sopenharmony_ci "" 2765e5c31af7Sopenharmony_ci end 2766e5c31af7Sopenharmony_ci case ivec2_to_uvec2 2767e5c31af7Sopenharmony_ci version 310 es 2768e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2769e5c31af7Sopenharmony_ci values 2770e5c31af7Sopenharmony_ci { 2771e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 2772e5c31af7Sopenharmony_ci output uvec2 out0 = [ uvec2(1, 4) | uvec2(2, 2) | uvec2(3, 14) ]; 2773e5c31af7Sopenharmony_ci } 2774e5c31af7Sopenharmony_ci 2775e5c31af7Sopenharmony_ci both "" 2776e5c31af7Sopenharmony_ci #version 310 es 2777e5c31af7Sopenharmony_ci precision highp float; 2778e5c31af7Sopenharmony_ci ${DECLARATIONS} 2779e5c31af7Sopenharmony_ci 2780e5c31af7Sopenharmony_ci void main() 2781e5c31af7Sopenharmony_ci { 2782e5c31af7Sopenharmony_ci ${SETUP} 2783e5c31af7Sopenharmony_ci out0 = uvec2(1, 2) * in0; 2784e5c31af7Sopenharmony_ci ${OUTPUT} 2785e5c31af7Sopenharmony_ci } 2786e5c31af7Sopenharmony_ci "" 2787e5c31af7Sopenharmony_ci end 2788e5c31af7Sopenharmony_ci case ivec2_to_vec2 2789e5c31af7Sopenharmony_ci version 310 es 2790e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2791e5c31af7Sopenharmony_ci values 2792e5c31af7Sopenharmony_ci { 2793e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 2794e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(1.0, 4.0) | vec2(2.0, 2.0) | vec2(3.0, 14.0) ]; 2795e5c31af7Sopenharmony_ci } 2796e5c31af7Sopenharmony_ci 2797e5c31af7Sopenharmony_ci both "" 2798e5c31af7Sopenharmony_ci #version 310 es 2799e5c31af7Sopenharmony_ci precision highp float; 2800e5c31af7Sopenharmony_ci ${DECLARATIONS} 2801e5c31af7Sopenharmony_ci 2802e5c31af7Sopenharmony_ci void main() 2803e5c31af7Sopenharmony_ci { 2804e5c31af7Sopenharmony_ci ${SETUP} 2805e5c31af7Sopenharmony_ci out0 = vec2(1.0, 2.0) * in0; 2806e5c31af7Sopenharmony_ci ${OUTPUT} 2807e5c31af7Sopenharmony_ci } 2808e5c31af7Sopenharmony_ci "" 2809e5c31af7Sopenharmony_ci end 2810e5c31af7Sopenharmony_ci case uvec2_to_vec2 2811e5c31af7Sopenharmony_ci version 310 es 2812e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2813e5c31af7Sopenharmony_ci values 2814e5c31af7Sopenharmony_ci { 2815e5c31af7Sopenharmony_ci input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 2816e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(2.0, 6.0) | vec2(4.0, 12.0) | vec2(1.0, 26.0) ]; 2817e5c31af7Sopenharmony_ci } 2818e5c31af7Sopenharmony_ci 2819e5c31af7Sopenharmony_ci both "" 2820e5c31af7Sopenharmony_ci #version 310 es 2821e5c31af7Sopenharmony_ci precision highp float; 2822e5c31af7Sopenharmony_ci ${DECLARATIONS} 2823e5c31af7Sopenharmony_ci 2824e5c31af7Sopenharmony_ci void main() 2825e5c31af7Sopenharmony_ci { 2826e5c31af7Sopenharmony_ci ${SETUP} 2827e5c31af7Sopenharmony_ci out0 = vec2(1.0, 2.0) * in0; 2828e5c31af7Sopenharmony_ci ${OUTPUT} 2829e5c31af7Sopenharmony_ci } 2830e5c31af7Sopenharmony_ci "" 2831e5c31af7Sopenharmony_ci end 2832e5c31af7Sopenharmony_ci case ivec3_to_uvec3 2833e5c31af7Sopenharmony_ci version 310 es 2834e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2835e5c31af7Sopenharmony_ci values 2836e5c31af7Sopenharmony_ci { 2837e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 2838e5c31af7Sopenharmony_ci output uvec3 out0 = [ uvec3(1, 4, 9) | uvec3(2, 2, 6) | uvec3(3, 14, 6) ]; 2839e5c31af7Sopenharmony_ci } 2840e5c31af7Sopenharmony_ci 2841e5c31af7Sopenharmony_ci both "" 2842e5c31af7Sopenharmony_ci #version 310 es 2843e5c31af7Sopenharmony_ci precision highp float; 2844e5c31af7Sopenharmony_ci ${DECLARATIONS} 2845e5c31af7Sopenharmony_ci 2846e5c31af7Sopenharmony_ci void main() 2847e5c31af7Sopenharmony_ci { 2848e5c31af7Sopenharmony_ci ${SETUP} 2849e5c31af7Sopenharmony_ci out0 = uvec3(1, 2, 3) * in0; 2850e5c31af7Sopenharmony_ci ${OUTPUT} 2851e5c31af7Sopenharmony_ci } 2852e5c31af7Sopenharmony_ci "" 2853e5c31af7Sopenharmony_ci end 2854e5c31af7Sopenharmony_ci case ivec3_to_vec3 2855e5c31af7Sopenharmony_ci version 310 es 2856e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2857e5c31af7Sopenharmony_ci values 2858e5c31af7Sopenharmony_ci { 2859e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 2860e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(1.0, 4.0, 9.0) | vec3(2.0, 2.0, 6.0) | vec3(3.0, 14.0, 6.0) ]; 2861e5c31af7Sopenharmony_ci } 2862e5c31af7Sopenharmony_ci 2863e5c31af7Sopenharmony_ci both "" 2864e5c31af7Sopenharmony_ci #version 310 es 2865e5c31af7Sopenharmony_ci precision highp float; 2866e5c31af7Sopenharmony_ci ${DECLARATIONS} 2867e5c31af7Sopenharmony_ci 2868e5c31af7Sopenharmony_ci void main() 2869e5c31af7Sopenharmony_ci { 2870e5c31af7Sopenharmony_ci ${SETUP} 2871e5c31af7Sopenharmony_ci out0 = vec3(1.0, 2.0, 3.0) * in0; 2872e5c31af7Sopenharmony_ci ${OUTPUT} 2873e5c31af7Sopenharmony_ci } 2874e5c31af7Sopenharmony_ci "" 2875e5c31af7Sopenharmony_ci end 2876e5c31af7Sopenharmony_ci case uvec3_to_vec3 2877e5c31af7Sopenharmony_ci version 310 es 2878e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2879e5c31af7Sopenharmony_ci values 2880e5c31af7Sopenharmony_ci { 2881e5c31af7Sopenharmony_ci input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 2882e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(2.0, 6.0, 15.0) | vec3(4.0, 12.0, 6.0) | vec3(1.0, 26.0, 21.0) ]; 2883e5c31af7Sopenharmony_ci } 2884e5c31af7Sopenharmony_ci 2885e5c31af7Sopenharmony_ci both "" 2886e5c31af7Sopenharmony_ci #version 310 es 2887e5c31af7Sopenharmony_ci precision highp float; 2888e5c31af7Sopenharmony_ci ${DECLARATIONS} 2889e5c31af7Sopenharmony_ci 2890e5c31af7Sopenharmony_ci void main() 2891e5c31af7Sopenharmony_ci { 2892e5c31af7Sopenharmony_ci ${SETUP} 2893e5c31af7Sopenharmony_ci out0 = vec3(1.0, 2.0, 3.0) * in0; 2894e5c31af7Sopenharmony_ci ${OUTPUT} 2895e5c31af7Sopenharmony_ci } 2896e5c31af7Sopenharmony_ci "" 2897e5c31af7Sopenharmony_ci end 2898e5c31af7Sopenharmony_ci case ivec4_to_uvec4 2899e5c31af7Sopenharmony_ci version 310 es 2900e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2901e5c31af7Sopenharmony_ci values 2902e5c31af7Sopenharmony_ci { 2903e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 2904e5c31af7Sopenharmony_ci output uvec4 out0 = [ uvec4(1, 4, 9, 16) | uvec4(2, 2, 6, 24) | uvec4(3, 14, 6, 20) ]; 2905e5c31af7Sopenharmony_ci } 2906e5c31af7Sopenharmony_ci 2907e5c31af7Sopenharmony_ci both "" 2908e5c31af7Sopenharmony_ci #version 310 es 2909e5c31af7Sopenharmony_ci precision highp float; 2910e5c31af7Sopenharmony_ci ${DECLARATIONS} 2911e5c31af7Sopenharmony_ci 2912e5c31af7Sopenharmony_ci void main() 2913e5c31af7Sopenharmony_ci { 2914e5c31af7Sopenharmony_ci ${SETUP} 2915e5c31af7Sopenharmony_ci out0 = uvec4(1, 2, 3, 4) * in0; 2916e5c31af7Sopenharmony_ci ${OUTPUT} 2917e5c31af7Sopenharmony_ci } 2918e5c31af7Sopenharmony_ci "" 2919e5c31af7Sopenharmony_ci end 2920e5c31af7Sopenharmony_ci case ivec4_to_vec4 2921e5c31af7Sopenharmony_ci version 310 es 2922e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2923e5c31af7Sopenharmony_ci values 2924e5c31af7Sopenharmony_ci { 2925e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 2926e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(1.0, 4.0, 9.0, 16.0) | vec4(2.0, 2.0, 6.0, 24.0) | vec4(3.0, 14.0, 6.0, 20.0) ]; 2927e5c31af7Sopenharmony_ci } 2928e5c31af7Sopenharmony_ci 2929e5c31af7Sopenharmony_ci both "" 2930e5c31af7Sopenharmony_ci #version 310 es 2931e5c31af7Sopenharmony_ci precision highp float; 2932e5c31af7Sopenharmony_ci ${DECLARATIONS} 2933e5c31af7Sopenharmony_ci 2934e5c31af7Sopenharmony_ci void main() 2935e5c31af7Sopenharmony_ci { 2936e5c31af7Sopenharmony_ci ${SETUP} 2937e5c31af7Sopenharmony_ci out0 = vec4(1.0, 2.0, 3.0, 4.0) * in0; 2938e5c31af7Sopenharmony_ci ${OUTPUT} 2939e5c31af7Sopenharmony_ci } 2940e5c31af7Sopenharmony_ci "" 2941e5c31af7Sopenharmony_ci end 2942e5c31af7Sopenharmony_ci case uvec4_to_vec4 2943e5c31af7Sopenharmony_ci version 310 es 2944e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2945e5c31af7Sopenharmony_ci values 2946e5c31af7Sopenharmony_ci { 2947e5c31af7Sopenharmony_ci input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 2948e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(2.0, 6.0, 15.0, 32.0) | vec4(4.0, 12.0, 6.0, 36.0) | vec4(1.0, 26.0, 21.0, 16.0) ]; 2949e5c31af7Sopenharmony_ci } 2950e5c31af7Sopenharmony_ci 2951e5c31af7Sopenharmony_ci both "" 2952e5c31af7Sopenharmony_ci #version 310 es 2953e5c31af7Sopenharmony_ci precision highp float; 2954e5c31af7Sopenharmony_ci ${DECLARATIONS} 2955e5c31af7Sopenharmony_ci 2956e5c31af7Sopenharmony_ci void main() 2957e5c31af7Sopenharmony_ci { 2958e5c31af7Sopenharmony_ci ${SETUP} 2959e5c31af7Sopenharmony_ci out0 = vec4(1.0, 2.0, 3.0, 4.0) * in0; 2960e5c31af7Sopenharmony_ci ${OUTPUT} 2961e5c31af7Sopenharmony_ci } 2962e5c31af7Sopenharmony_ci "" 2963e5c31af7Sopenharmony_ci end 2964e5c31af7Sopenharmony_ci 2965e5c31af7Sopenharmony_ci end # mul 2966e5c31af7Sopenharmony_ci group div "Division" 2967e5c31af7Sopenharmony_ci 2968e5c31af7Sopenharmony_ci case int_to_float 2969e5c31af7Sopenharmony_ci version 310 es 2970e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2971e5c31af7Sopenharmony_ci values 2972e5c31af7Sopenharmony_ci { 2973e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 2974e5c31af7Sopenharmony_ci output float out0 = [ 1.0 | 2.0 | 2.0 | 0.666666666667 | 0.4 ]; 2975e5c31af7Sopenharmony_ci } 2976e5c31af7Sopenharmony_ci 2977e5c31af7Sopenharmony_ci both "" 2978e5c31af7Sopenharmony_ci #version 310 es 2979e5c31af7Sopenharmony_ci precision highp float; 2980e5c31af7Sopenharmony_ci ${DECLARATIONS} 2981e5c31af7Sopenharmony_ci 2982e5c31af7Sopenharmony_ci void main() 2983e5c31af7Sopenharmony_ci { 2984e5c31af7Sopenharmony_ci ${SETUP} 2985e5c31af7Sopenharmony_ci out0 = 2.0 / in0; 2986e5c31af7Sopenharmony_ci ${OUTPUT} 2987e5c31af7Sopenharmony_ci } 2988e5c31af7Sopenharmony_ci "" 2989e5c31af7Sopenharmony_ci end 2990e5c31af7Sopenharmony_ci case int_to_uint 2991e5c31af7Sopenharmony_ci version 310 es 2992e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2993e5c31af7Sopenharmony_ci values 2994e5c31af7Sopenharmony_ci { 2995e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 2996e5c31af7Sopenharmony_ci output uint out0 = [ 1 | 2 | 2 | 0 | 0 ]; 2997e5c31af7Sopenharmony_ci } 2998e5c31af7Sopenharmony_ci 2999e5c31af7Sopenharmony_ci both "" 3000e5c31af7Sopenharmony_ci #version 310 es 3001e5c31af7Sopenharmony_ci precision highp float; 3002e5c31af7Sopenharmony_ci ${DECLARATIONS} 3003e5c31af7Sopenharmony_ci 3004e5c31af7Sopenharmony_ci void main() 3005e5c31af7Sopenharmony_ci { 3006e5c31af7Sopenharmony_ci ${SETUP} 3007e5c31af7Sopenharmony_ci out0 = 2 / in0; 3008e5c31af7Sopenharmony_ci ${OUTPUT} 3009e5c31af7Sopenharmony_ci } 3010e5c31af7Sopenharmony_ci "" 3011e5c31af7Sopenharmony_ci end 3012e5c31af7Sopenharmony_ci case int_to_vec2 3013e5c31af7Sopenharmony_ci version 310 es 3014e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3015e5c31af7Sopenharmony_ci values 3016e5c31af7Sopenharmony_ci { 3017e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 3018e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(0.5, 1.0) | vec2(1.0, 2.0) | vec2(1.0, 2.0) | vec2(0.333333333333, 0.666666666667) | vec2(0.2, 0.4) ]; 3019e5c31af7Sopenharmony_ci } 3020e5c31af7Sopenharmony_ci 3021e5c31af7Sopenharmony_ci both "" 3022e5c31af7Sopenharmony_ci #version 310 es 3023e5c31af7Sopenharmony_ci precision highp float; 3024e5c31af7Sopenharmony_ci ${DECLARATIONS} 3025e5c31af7Sopenharmony_ci 3026e5c31af7Sopenharmony_ci void main() 3027e5c31af7Sopenharmony_ci { 3028e5c31af7Sopenharmony_ci ${SETUP} 3029e5c31af7Sopenharmony_ci out0 = vec2(1.0, 2.0) / in0; 3030e5c31af7Sopenharmony_ci ${OUTPUT} 3031e5c31af7Sopenharmony_ci } 3032e5c31af7Sopenharmony_ci "" 3033e5c31af7Sopenharmony_ci end 3034e5c31af7Sopenharmony_ci case int_to_vec3 3035e5c31af7Sopenharmony_ci version 310 es 3036e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3037e5c31af7Sopenharmony_ci values 3038e5c31af7Sopenharmony_ci { 3039e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 3040e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(0.5, 1.0, 1.5) | vec3(1.0, 2.0, 3.0) | vec3(1.0, 2.0, 3.0) | vec3(0.333333333333, 0.666666666667, 1.0) | vec3(0.2, 0.4, 0.6) ]; 3041e5c31af7Sopenharmony_ci } 3042e5c31af7Sopenharmony_ci 3043e5c31af7Sopenharmony_ci both "" 3044e5c31af7Sopenharmony_ci #version 310 es 3045e5c31af7Sopenharmony_ci precision highp float; 3046e5c31af7Sopenharmony_ci ${DECLARATIONS} 3047e5c31af7Sopenharmony_ci 3048e5c31af7Sopenharmony_ci void main() 3049e5c31af7Sopenharmony_ci { 3050e5c31af7Sopenharmony_ci ${SETUP} 3051e5c31af7Sopenharmony_ci out0 = vec3(1.0, 2.0, 3.0) / in0; 3052e5c31af7Sopenharmony_ci ${OUTPUT} 3053e5c31af7Sopenharmony_ci } 3054e5c31af7Sopenharmony_ci "" 3055e5c31af7Sopenharmony_ci end 3056e5c31af7Sopenharmony_ci case int_to_vec4 3057e5c31af7Sopenharmony_ci version 310 es 3058e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3059e5c31af7Sopenharmony_ci values 3060e5c31af7Sopenharmony_ci { 3061e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 3062e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(0.5, 1.0, 1.5, 2.0) | vec4(1.0, 2.0, 3.0, 4.0) | vec4(1.0, 2.0, 3.0, 4.0) | vec4(0.333333333333, 0.666666666667, 1.0, 1.33333333333) | vec4(0.2, 0.4, 0.6, 0.8) ]; 3063e5c31af7Sopenharmony_ci } 3064e5c31af7Sopenharmony_ci 3065e5c31af7Sopenharmony_ci both "" 3066e5c31af7Sopenharmony_ci #version 310 es 3067e5c31af7Sopenharmony_ci precision highp float; 3068e5c31af7Sopenharmony_ci ${DECLARATIONS} 3069e5c31af7Sopenharmony_ci 3070e5c31af7Sopenharmony_ci void main() 3071e5c31af7Sopenharmony_ci { 3072e5c31af7Sopenharmony_ci ${SETUP} 3073e5c31af7Sopenharmony_ci out0 = vec4(1.0, 2.0, 3.0, 4.0) / in0; 3074e5c31af7Sopenharmony_ci ${OUTPUT} 3075e5c31af7Sopenharmony_ci } 3076e5c31af7Sopenharmony_ci "" 3077e5c31af7Sopenharmony_ci end 3078e5c31af7Sopenharmony_ci case int_to_uvec2 3079e5c31af7Sopenharmony_ci version 310 es 3080e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3081e5c31af7Sopenharmony_ci values 3082e5c31af7Sopenharmony_ci { 3083e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 3084e5c31af7Sopenharmony_ci output uvec2 out0 = [ uvec2(0, 1) | uvec2(1, 2) | uvec2(1, 2) | uvec2(0, 0) | uvec2(0, 0) ]; 3085e5c31af7Sopenharmony_ci } 3086e5c31af7Sopenharmony_ci 3087e5c31af7Sopenharmony_ci both "" 3088e5c31af7Sopenharmony_ci #version 310 es 3089e5c31af7Sopenharmony_ci precision highp float; 3090e5c31af7Sopenharmony_ci ${DECLARATIONS} 3091e5c31af7Sopenharmony_ci 3092e5c31af7Sopenharmony_ci void main() 3093e5c31af7Sopenharmony_ci { 3094e5c31af7Sopenharmony_ci ${SETUP} 3095e5c31af7Sopenharmony_ci out0 = uvec2(1, 2) / in0; 3096e5c31af7Sopenharmony_ci ${OUTPUT} 3097e5c31af7Sopenharmony_ci } 3098e5c31af7Sopenharmony_ci "" 3099e5c31af7Sopenharmony_ci end 3100e5c31af7Sopenharmony_ci case int_to_uvec3 3101e5c31af7Sopenharmony_ci version 310 es 3102e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3103e5c31af7Sopenharmony_ci values 3104e5c31af7Sopenharmony_ci { 3105e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 3106e5c31af7Sopenharmony_ci output uvec3 out0 = [ uvec3(0, 1, 1) | uvec3(1, 2, 3) | uvec3(1, 2, 3) | uvec3(0, 0, 1) | uvec3(0, 0, 0) ]; 3107e5c31af7Sopenharmony_ci } 3108e5c31af7Sopenharmony_ci 3109e5c31af7Sopenharmony_ci both "" 3110e5c31af7Sopenharmony_ci #version 310 es 3111e5c31af7Sopenharmony_ci precision highp float; 3112e5c31af7Sopenharmony_ci ${DECLARATIONS} 3113e5c31af7Sopenharmony_ci 3114e5c31af7Sopenharmony_ci void main() 3115e5c31af7Sopenharmony_ci { 3116e5c31af7Sopenharmony_ci ${SETUP} 3117e5c31af7Sopenharmony_ci out0 = uvec3(1, 2, 3) / in0; 3118e5c31af7Sopenharmony_ci ${OUTPUT} 3119e5c31af7Sopenharmony_ci } 3120e5c31af7Sopenharmony_ci "" 3121e5c31af7Sopenharmony_ci end 3122e5c31af7Sopenharmony_ci case int_to_uvec4 3123e5c31af7Sopenharmony_ci version 310 es 3124e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3125e5c31af7Sopenharmony_ci values 3126e5c31af7Sopenharmony_ci { 3127e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 3128e5c31af7Sopenharmony_ci output uvec4 out0 = [ uvec4(0, 1, 1, 2) | uvec4(1, 2, 3, 4) | uvec4(1, 2, 3, 4) | uvec4(0, 0, 1, 1) | uvec4(0, 0, 0, 0) ]; 3129e5c31af7Sopenharmony_ci } 3130e5c31af7Sopenharmony_ci 3131e5c31af7Sopenharmony_ci both "" 3132e5c31af7Sopenharmony_ci #version 310 es 3133e5c31af7Sopenharmony_ci precision highp float; 3134e5c31af7Sopenharmony_ci ${DECLARATIONS} 3135e5c31af7Sopenharmony_ci 3136e5c31af7Sopenharmony_ci void main() 3137e5c31af7Sopenharmony_ci { 3138e5c31af7Sopenharmony_ci ${SETUP} 3139e5c31af7Sopenharmony_ci out0 = uvec4(1, 2, 3, 4) / in0; 3140e5c31af7Sopenharmony_ci ${OUTPUT} 3141e5c31af7Sopenharmony_ci } 3142e5c31af7Sopenharmony_ci "" 3143e5c31af7Sopenharmony_ci end 3144e5c31af7Sopenharmony_ci case uint_to_float 3145e5c31af7Sopenharmony_ci version 310 es 3146e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3147e5c31af7Sopenharmony_ci values 3148e5c31af7Sopenharmony_ci { 3149e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 3150e5c31af7Sopenharmony_ci output float out0 = [ 2.0 | 0.666666666667 | 0.5 | 0.285714285714 | 0.181818181818 ]; 3151e5c31af7Sopenharmony_ci } 3152e5c31af7Sopenharmony_ci 3153e5c31af7Sopenharmony_ci both "" 3154e5c31af7Sopenharmony_ci #version 310 es 3155e5c31af7Sopenharmony_ci precision highp float; 3156e5c31af7Sopenharmony_ci ${DECLARATIONS} 3157e5c31af7Sopenharmony_ci 3158e5c31af7Sopenharmony_ci void main() 3159e5c31af7Sopenharmony_ci { 3160e5c31af7Sopenharmony_ci ${SETUP} 3161e5c31af7Sopenharmony_ci out0 = 2.0 / in0; 3162e5c31af7Sopenharmony_ci ${OUTPUT} 3163e5c31af7Sopenharmony_ci } 3164e5c31af7Sopenharmony_ci "" 3165e5c31af7Sopenharmony_ci end 3166e5c31af7Sopenharmony_ci case uint_to_vec2 3167e5c31af7Sopenharmony_ci version 310 es 3168e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3169e5c31af7Sopenharmony_ci values 3170e5c31af7Sopenharmony_ci { 3171e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 3172e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(1.0, 2.0) | vec2(0.333333333333, 0.666666666667) | vec2(0.25, 0.5) | vec2(0.142857142857, 0.285714285714) | vec2(0.0909090909091, 0.181818181818) ]; 3173e5c31af7Sopenharmony_ci } 3174e5c31af7Sopenharmony_ci 3175e5c31af7Sopenharmony_ci both "" 3176e5c31af7Sopenharmony_ci #version 310 es 3177e5c31af7Sopenharmony_ci precision highp float; 3178e5c31af7Sopenharmony_ci ${DECLARATIONS} 3179e5c31af7Sopenharmony_ci 3180e5c31af7Sopenharmony_ci void main() 3181e5c31af7Sopenharmony_ci { 3182e5c31af7Sopenharmony_ci ${SETUP} 3183e5c31af7Sopenharmony_ci out0 = vec2(1.0, 2.0) / in0; 3184e5c31af7Sopenharmony_ci ${OUTPUT} 3185e5c31af7Sopenharmony_ci } 3186e5c31af7Sopenharmony_ci "" 3187e5c31af7Sopenharmony_ci end 3188e5c31af7Sopenharmony_ci case uint_to_vec3 3189e5c31af7Sopenharmony_ci version 310 es 3190e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3191e5c31af7Sopenharmony_ci values 3192e5c31af7Sopenharmony_ci { 3193e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 3194e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(1.0, 2.0, 3.0) | vec3(0.333333333333, 0.666666666667, 1.0) | vec3(0.25, 0.5, 0.75) | vec3(0.142857142857, 0.285714285714, 0.428571428571) | vec3(0.0909090909091, 0.181818181818, 0.272727272727) ]; 3195e5c31af7Sopenharmony_ci } 3196e5c31af7Sopenharmony_ci 3197e5c31af7Sopenharmony_ci both "" 3198e5c31af7Sopenharmony_ci #version 310 es 3199e5c31af7Sopenharmony_ci precision highp float; 3200e5c31af7Sopenharmony_ci ${DECLARATIONS} 3201e5c31af7Sopenharmony_ci 3202e5c31af7Sopenharmony_ci void main() 3203e5c31af7Sopenharmony_ci { 3204e5c31af7Sopenharmony_ci ${SETUP} 3205e5c31af7Sopenharmony_ci out0 = vec3(1.0, 2.0, 3.0) / in0; 3206e5c31af7Sopenharmony_ci ${OUTPUT} 3207e5c31af7Sopenharmony_ci } 3208e5c31af7Sopenharmony_ci "" 3209e5c31af7Sopenharmony_ci end 3210e5c31af7Sopenharmony_ci case uint_to_vec4 3211e5c31af7Sopenharmony_ci version 310 es 3212e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3213e5c31af7Sopenharmony_ci values 3214e5c31af7Sopenharmony_ci { 3215e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 3216e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(1.0, 2.0, 3.0, 4.0) | vec4(0.333333333333, 0.666666666667, 1.0, 1.33333333333) | vec4(0.25, 0.5, 0.75, 1.0) | vec4(0.142857142857, 0.285714285714, 0.428571428571, 0.571428571429) | vec4(0.0909090909091, 0.181818181818, 0.272727272727, 0.363636363636) ]; 3217e5c31af7Sopenharmony_ci } 3218e5c31af7Sopenharmony_ci 3219e5c31af7Sopenharmony_ci both "" 3220e5c31af7Sopenharmony_ci #version 310 es 3221e5c31af7Sopenharmony_ci precision highp float; 3222e5c31af7Sopenharmony_ci ${DECLARATIONS} 3223e5c31af7Sopenharmony_ci 3224e5c31af7Sopenharmony_ci void main() 3225e5c31af7Sopenharmony_ci { 3226e5c31af7Sopenharmony_ci ${SETUP} 3227e5c31af7Sopenharmony_ci out0 = vec4(1.0, 2.0, 3.0, 4.0) / in0; 3228e5c31af7Sopenharmony_ci ${OUTPUT} 3229e5c31af7Sopenharmony_ci } 3230e5c31af7Sopenharmony_ci "" 3231e5c31af7Sopenharmony_ci end 3232e5c31af7Sopenharmony_ci case ivec2_to_uvec2 3233e5c31af7Sopenharmony_ci version 310 es 3234e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3235e5c31af7Sopenharmony_ci values 3236e5c31af7Sopenharmony_ci { 3237e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 3238e5c31af7Sopenharmony_ci output uvec2 out0 = [ uvec2(1, 1) | uvec2(0, 2) | uvec2(0, 0) ]; 3239e5c31af7Sopenharmony_ci } 3240e5c31af7Sopenharmony_ci 3241e5c31af7Sopenharmony_ci both "" 3242e5c31af7Sopenharmony_ci #version 310 es 3243e5c31af7Sopenharmony_ci precision highp float; 3244e5c31af7Sopenharmony_ci ${DECLARATIONS} 3245e5c31af7Sopenharmony_ci 3246e5c31af7Sopenharmony_ci void main() 3247e5c31af7Sopenharmony_ci { 3248e5c31af7Sopenharmony_ci ${SETUP} 3249e5c31af7Sopenharmony_ci out0 = uvec2(1, 2) / in0; 3250e5c31af7Sopenharmony_ci ${OUTPUT} 3251e5c31af7Sopenharmony_ci } 3252e5c31af7Sopenharmony_ci "" 3253e5c31af7Sopenharmony_ci end 3254e5c31af7Sopenharmony_ci case ivec2_to_vec2 3255e5c31af7Sopenharmony_ci version 310 es 3256e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3257e5c31af7Sopenharmony_ci values 3258e5c31af7Sopenharmony_ci { 3259e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 3260e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(1.0, 1.0) | vec2(0.5, 2.0) | vec2(0.333333333333, 0.285714285714) ]; 3261e5c31af7Sopenharmony_ci } 3262e5c31af7Sopenharmony_ci 3263e5c31af7Sopenharmony_ci both "" 3264e5c31af7Sopenharmony_ci #version 310 es 3265e5c31af7Sopenharmony_ci precision highp float; 3266e5c31af7Sopenharmony_ci ${DECLARATIONS} 3267e5c31af7Sopenharmony_ci 3268e5c31af7Sopenharmony_ci void main() 3269e5c31af7Sopenharmony_ci { 3270e5c31af7Sopenharmony_ci ${SETUP} 3271e5c31af7Sopenharmony_ci out0 = vec2(1.0, 2.0) / in0; 3272e5c31af7Sopenharmony_ci ${OUTPUT} 3273e5c31af7Sopenharmony_ci } 3274e5c31af7Sopenharmony_ci "" 3275e5c31af7Sopenharmony_ci end 3276e5c31af7Sopenharmony_ci case uvec2_to_vec2 3277e5c31af7Sopenharmony_ci version 310 es 3278e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3279e5c31af7Sopenharmony_ci values 3280e5c31af7Sopenharmony_ci { 3281e5c31af7Sopenharmony_ci input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 3282e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(0.5, 0.666666666667) | vec2(0.25, 0.333333333333) | vec2(1.0, 0.153846153846) ]; 3283e5c31af7Sopenharmony_ci } 3284e5c31af7Sopenharmony_ci 3285e5c31af7Sopenharmony_ci both "" 3286e5c31af7Sopenharmony_ci #version 310 es 3287e5c31af7Sopenharmony_ci precision highp float; 3288e5c31af7Sopenharmony_ci ${DECLARATIONS} 3289e5c31af7Sopenharmony_ci 3290e5c31af7Sopenharmony_ci void main() 3291e5c31af7Sopenharmony_ci { 3292e5c31af7Sopenharmony_ci ${SETUP} 3293e5c31af7Sopenharmony_ci out0 = vec2(1.0, 2.0) / in0; 3294e5c31af7Sopenharmony_ci ${OUTPUT} 3295e5c31af7Sopenharmony_ci } 3296e5c31af7Sopenharmony_ci "" 3297e5c31af7Sopenharmony_ci end 3298e5c31af7Sopenharmony_ci case ivec3_to_uvec3 3299e5c31af7Sopenharmony_ci version 310 es 3300e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3301e5c31af7Sopenharmony_ci values 3302e5c31af7Sopenharmony_ci { 3303e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 3304e5c31af7Sopenharmony_ci output uvec3 out0 = [ uvec3(1, 1, 1) | uvec3(0, 2, 1) | uvec3(0, 0, 1) ]; 3305e5c31af7Sopenharmony_ci } 3306e5c31af7Sopenharmony_ci 3307e5c31af7Sopenharmony_ci both "" 3308e5c31af7Sopenharmony_ci #version 310 es 3309e5c31af7Sopenharmony_ci precision highp float; 3310e5c31af7Sopenharmony_ci ${DECLARATIONS} 3311e5c31af7Sopenharmony_ci 3312e5c31af7Sopenharmony_ci void main() 3313e5c31af7Sopenharmony_ci { 3314e5c31af7Sopenharmony_ci ${SETUP} 3315e5c31af7Sopenharmony_ci out0 = uvec3(1, 2, 3) / in0; 3316e5c31af7Sopenharmony_ci ${OUTPUT} 3317e5c31af7Sopenharmony_ci } 3318e5c31af7Sopenharmony_ci "" 3319e5c31af7Sopenharmony_ci end 3320e5c31af7Sopenharmony_ci case ivec3_to_vec3 3321e5c31af7Sopenharmony_ci version 310 es 3322e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3323e5c31af7Sopenharmony_ci values 3324e5c31af7Sopenharmony_ci { 3325e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 3326e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(1.0, 1.0, 1.0) | vec3(0.5, 2.0, 1.5) | vec3(0.333333333333, 0.285714285714, 1.5) ]; 3327e5c31af7Sopenharmony_ci } 3328e5c31af7Sopenharmony_ci 3329e5c31af7Sopenharmony_ci both "" 3330e5c31af7Sopenharmony_ci #version 310 es 3331e5c31af7Sopenharmony_ci precision highp float; 3332e5c31af7Sopenharmony_ci ${DECLARATIONS} 3333e5c31af7Sopenharmony_ci 3334e5c31af7Sopenharmony_ci void main() 3335e5c31af7Sopenharmony_ci { 3336e5c31af7Sopenharmony_ci ${SETUP} 3337e5c31af7Sopenharmony_ci out0 = vec3(1.0, 2.0, 3.0) / in0; 3338e5c31af7Sopenharmony_ci ${OUTPUT} 3339e5c31af7Sopenharmony_ci } 3340e5c31af7Sopenharmony_ci "" 3341e5c31af7Sopenharmony_ci end 3342e5c31af7Sopenharmony_ci case uvec3_to_vec3 3343e5c31af7Sopenharmony_ci version 310 es 3344e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3345e5c31af7Sopenharmony_ci values 3346e5c31af7Sopenharmony_ci { 3347e5c31af7Sopenharmony_ci input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 3348e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(0.5, 0.666666666667, 0.6) | vec3(0.25, 0.333333333333, 1.5) | vec3(1.0, 0.153846153846, 0.428571428571) ]; 3349e5c31af7Sopenharmony_ci } 3350e5c31af7Sopenharmony_ci 3351e5c31af7Sopenharmony_ci both "" 3352e5c31af7Sopenharmony_ci #version 310 es 3353e5c31af7Sopenharmony_ci precision highp float; 3354e5c31af7Sopenharmony_ci ${DECLARATIONS} 3355e5c31af7Sopenharmony_ci 3356e5c31af7Sopenharmony_ci void main() 3357e5c31af7Sopenharmony_ci { 3358e5c31af7Sopenharmony_ci ${SETUP} 3359e5c31af7Sopenharmony_ci out0 = vec3(1.0, 2.0, 3.0) / in0; 3360e5c31af7Sopenharmony_ci ${OUTPUT} 3361e5c31af7Sopenharmony_ci } 3362e5c31af7Sopenharmony_ci "" 3363e5c31af7Sopenharmony_ci end 3364e5c31af7Sopenharmony_ci case ivec4_to_uvec4 3365e5c31af7Sopenharmony_ci version 310 es 3366e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3367e5c31af7Sopenharmony_ci values 3368e5c31af7Sopenharmony_ci { 3369e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 3370e5c31af7Sopenharmony_ci output uvec4 out0 = [ uvec4(1, 1, 1, 1) | uvec4(0, 2, 1, 0) | uvec4(0, 0, 1, 0) ]; 3371e5c31af7Sopenharmony_ci } 3372e5c31af7Sopenharmony_ci 3373e5c31af7Sopenharmony_ci both "" 3374e5c31af7Sopenharmony_ci #version 310 es 3375e5c31af7Sopenharmony_ci precision highp float; 3376e5c31af7Sopenharmony_ci ${DECLARATIONS} 3377e5c31af7Sopenharmony_ci 3378e5c31af7Sopenharmony_ci void main() 3379e5c31af7Sopenharmony_ci { 3380e5c31af7Sopenharmony_ci ${SETUP} 3381e5c31af7Sopenharmony_ci out0 = uvec4(1, 2, 3, 4) / in0; 3382e5c31af7Sopenharmony_ci ${OUTPUT} 3383e5c31af7Sopenharmony_ci } 3384e5c31af7Sopenharmony_ci "" 3385e5c31af7Sopenharmony_ci end 3386e5c31af7Sopenharmony_ci case ivec4_to_vec4 3387e5c31af7Sopenharmony_ci version 310 es 3388e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3389e5c31af7Sopenharmony_ci values 3390e5c31af7Sopenharmony_ci { 3391e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 3392e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(1.0, 1.0, 1.0, 1.0) | vec4(0.5, 2.0, 1.5, 0.666666666667) | vec4(0.333333333333, 0.285714285714, 1.5, 0.8) ]; 3393e5c31af7Sopenharmony_ci } 3394e5c31af7Sopenharmony_ci 3395e5c31af7Sopenharmony_ci both "" 3396e5c31af7Sopenharmony_ci #version 310 es 3397e5c31af7Sopenharmony_ci precision highp float; 3398e5c31af7Sopenharmony_ci ${DECLARATIONS} 3399e5c31af7Sopenharmony_ci 3400e5c31af7Sopenharmony_ci void main() 3401e5c31af7Sopenharmony_ci { 3402e5c31af7Sopenharmony_ci ${SETUP} 3403e5c31af7Sopenharmony_ci out0 = vec4(1.0, 2.0, 3.0, 4.0) / in0; 3404e5c31af7Sopenharmony_ci ${OUTPUT} 3405e5c31af7Sopenharmony_ci } 3406e5c31af7Sopenharmony_ci "" 3407e5c31af7Sopenharmony_ci end 3408e5c31af7Sopenharmony_ci case uvec4_to_vec4 3409e5c31af7Sopenharmony_ci version 310 es 3410e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3411e5c31af7Sopenharmony_ci values 3412e5c31af7Sopenharmony_ci { 3413e5c31af7Sopenharmony_ci input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 3414e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(0.5, 0.666666666667, 0.6, 0.5) | vec4(0.25, 0.333333333333, 1.5, 0.444444444444) | vec4(1.0, 0.153846153846, 0.428571428571, 1.0) ]; 3415e5c31af7Sopenharmony_ci } 3416e5c31af7Sopenharmony_ci 3417e5c31af7Sopenharmony_ci both "" 3418e5c31af7Sopenharmony_ci #version 310 es 3419e5c31af7Sopenharmony_ci precision highp float; 3420e5c31af7Sopenharmony_ci ${DECLARATIONS} 3421e5c31af7Sopenharmony_ci 3422e5c31af7Sopenharmony_ci void main() 3423e5c31af7Sopenharmony_ci { 3424e5c31af7Sopenharmony_ci ${SETUP} 3425e5c31af7Sopenharmony_ci out0 = vec4(1.0, 2.0, 3.0, 4.0) / in0; 3426e5c31af7Sopenharmony_ci ${OUTPUT} 3427e5c31af7Sopenharmony_ci } 3428e5c31af7Sopenharmony_ci "" 3429e5c31af7Sopenharmony_ci end 3430e5c31af7Sopenharmony_ci 3431e5c31af7Sopenharmony_ci end # div 3432e5c31af7Sopenharmony_ci 3433e5c31af7Sopenharmony_ci end # literal_before_input 3434e5c31af7Sopenharmony_ci 3435e5c31af7Sopenharmony_ciend # arithmetic 3436e5c31af7Sopenharmony_cigroup comparisons "Comparisons" 3437e5c31af7Sopenharmony_ci 3438e5c31af7Sopenharmony_ci group input_before_literal "Input before literal" 3439e5c31af7Sopenharmony_ci 3440e5c31af7Sopenharmony_ci group equal "Equal" 3441e5c31af7Sopenharmony_ci 3442e5c31af7Sopenharmony_ci case int_to_float 3443e5c31af7Sopenharmony_ci version 310 es 3444e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3445e5c31af7Sopenharmony_ci values 3446e5c31af7Sopenharmony_ci { 3447e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 3448e5c31af7Sopenharmony_ci output bool out0 = [ true | false | false | false | false ]; 3449e5c31af7Sopenharmony_ci } 3450e5c31af7Sopenharmony_ci 3451e5c31af7Sopenharmony_ci both "" 3452e5c31af7Sopenharmony_ci #version 310 es 3453e5c31af7Sopenharmony_ci precision highp float; 3454e5c31af7Sopenharmony_ci ${DECLARATIONS} 3455e5c31af7Sopenharmony_ci 3456e5c31af7Sopenharmony_ci void main() 3457e5c31af7Sopenharmony_ci { 3458e5c31af7Sopenharmony_ci ${SETUP} 3459e5c31af7Sopenharmony_ci out0 = in0 == 2.0; 3460e5c31af7Sopenharmony_ci ${OUTPUT} 3461e5c31af7Sopenharmony_ci } 3462e5c31af7Sopenharmony_ci "" 3463e5c31af7Sopenharmony_ci end 3464e5c31af7Sopenharmony_ci case int_to_uint 3465e5c31af7Sopenharmony_ci version 310 es 3466e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3467e5c31af7Sopenharmony_ci values 3468e5c31af7Sopenharmony_ci { 3469e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 3470e5c31af7Sopenharmony_ci output bool out0 = [ true | false | false | false | false ]; 3471e5c31af7Sopenharmony_ci } 3472e5c31af7Sopenharmony_ci 3473e5c31af7Sopenharmony_ci both "" 3474e5c31af7Sopenharmony_ci #version 310 es 3475e5c31af7Sopenharmony_ci precision highp float; 3476e5c31af7Sopenharmony_ci ${DECLARATIONS} 3477e5c31af7Sopenharmony_ci 3478e5c31af7Sopenharmony_ci void main() 3479e5c31af7Sopenharmony_ci { 3480e5c31af7Sopenharmony_ci ${SETUP} 3481e5c31af7Sopenharmony_ci out0 = in0 == 2; 3482e5c31af7Sopenharmony_ci ${OUTPUT} 3483e5c31af7Sopenharmony_ci } 3484e5c31af7Sopenharmony_ci "" 3485e5c31af7Sopenharmony_ci end 3486e5c31af7Sopenharmony_ci case uint_to_float 3487e5c31af7Sopenharmony_ci version 310 es 3488e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3489e5c31af7Sopenharmony_ci values 3490e5c31af7Sopenharmony_ci { 3491e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 3492e5c31af7Sopenharmony_ci output bool out0 = [ false | false | false | false | false ]; 3493e5c31af7Sopenharmony_ci } 3494e5c31af7Sopenharmony_ci 3495e5c31af7Sopenharmony_ci both "" 3496e5c31af7Sopenharmony_ci #version 310 es 3497e5c31af7Sopenharmony_ci precision highp float; 3498e5c31af7Sopenharmony_ci ${DECLARATIONS} 3499e5c31af7Sopenharmony_ci 3500e5c31af7Sopenharmony_ci void main() 3501e5c31af7Sopenharmony_ci { 3502e5c31af7Sopenharmony_ci ${SETUP} 3503e5c31af7Sopenharmony_ci out0 = in0 == 2.0; 3504e5c31af7Sopenharmony_ci ${OUTPUT} 3505e5c31af7Sopenharmony_ci } 3506e5c31af7Sopenharmony_ci "" 3507e5c31af7Sopenharmony_ci end 3508e5c31af7Sopenharmony_ci case ivec2_to_uvec2 3509e5c31af7Sopenharmony_ci version 310 es 3510e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3511e5c31af7Sopenharmony_ci values 3512e5c31af7Sopenharmony_ci { 3513e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 3514e5c31af7Sopenharmony_ci output bool out0 = [ true | false | false ]; 3515e5c31af7Sopenharmony_ci } 3516e5c31af7Sopenharmony_ci 3517e5c31af7Sopenharmony_ci both "" 3518e5c31af7Sopenharmony_ci #version 310 es 3519e5c31af7Sopenharmony_ci precision highp float; 3520e5c31af7Sopenharmony_ci ${DECLARATIONS} 3521e5c31af7Sopenharmony_ci 3522e5c31af7Sopenharmony_ci void main() 3523e5c31af7Sopenharmony_ci { 3524e5c31af7Sopenharmony_ci ${SETUP} 3525e5c31af7Sopenharmony_ci out0 = in0 == uvec2(1, 2); 3526e5c31af7Sopenharmony_ci ${OUTPUT} 3527e5c31af7Sopenharmony_ci } 3528e5c31af7Sopenharmony_ci "" 3529e5c31af7Sopenharmony_ci end 3530e5c31af7Sopenharmony_ci case ivec2_to_vec2 3531e5c31af7Sopenharmony_ci version 310 es 3532e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3533e5c31af7Sopenharmony_ci values 3534e5c31af7Sopenharmony_ci { 3535e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 3536e5c31af7Sopenharmony_ci output bool out0 = [ true | false | false ]; 3537e5c31af7Sopenharmony_ci } 3538e5c31af7Sopenharmony_ci 3539e5c31af7Sopenharmony_ci both "" 3540e5c31af7Sopenharmony_ci #version 310 es 3541e5c31af7Sopenharmony_ci precision highp float; 3542e5c31af7Sopenharmony_ci ${DECLARATIONS} 3543e5c31af7Sopenharmony_ci 3544e5c31af7Sopenharmony_ci void main() 3545e5c31af7Sopenharmony_ci { 3546e5c31af7Sopenharmony_ci ${SETUP} 3547e5c31af7Sopenharmony_ci out0 = in0 == vec2(1.0, 2.0); 3548e5c31af7Sopenharmony_ci ${OUTPUT} 3549e5c31af7Sopenharmony_ci } 3550e5c31af7Sopenharmony_ci "" 3551e5c31af7Sopenharmony_ci end 3552e5c31af7Sopenharmony_ci case uvec2_to_vec2 3553e5c31af7Sopenharmony_ci version 310 es 3554e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3555e5c31af7Sopenharmony_ci values 3556e5c31af7Sopenharmony_ci { 3557e5c31af7Sopenharmony_ci input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 3558e5c31af7Sopenharmony_ci output bool out0 = [ false | false | false ]; 3559e5c31af7Sopenharmony_ci } 3560e5c31af7Sopenharmony_ci 3561e5c31af7Sopenharmony_ci both "" 3562e5c31af7Sopenharmony_ci #version 310 es 3563e5c31af7Sopenharmony_ci precision highp float; 3564e5c31af7Sopenharmony_ci ${DECLARATIONS} 3565e5c31af7Sopenharmony_ci 3566e5c31af7Sopenharmony_ci void main() 3567e5c31af7Sopenharmony_ci { 3568e5c31af7Sopenharmony_ci ${SETUP} 3569e5c31af7Sopenharmony_ci out0 = in0 == vec2(1.0, 2.0); 3570e5c31af7Sopenharmony_ci ${OUTPUT} 3571e5c31af7Sopenharmony_ci } 3572e5c31af7Sopenharmony_ci "" 3573e5c31af7Sopenharmony_ci end 3574e5c31af7Sopenharmony_ci case ivec3_to_uvec3 3575e5c31af7Sopenharmony_ci version 310 es 3576e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3577e5c31af7Sopenharmony_ci values 3578e5c31af7Sopenharmony_ci { 3579e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 3580e5c31af7Sopenharmony_ci output bool out0 = [ true | false | false ]; 3581e5c31af7Sopenharmony_ci } 3582e5c31af7Sopenharmony_ci 3583e5c31af7Sopenharmony_ci both "" 3584e5c31af7Sopenharmony_ci #version 310 es 3585e5c31af7Sopenharmony_ci precision highp float; 3586e5c31af7Sopenharmony_ci ${DECLARATIONS} 3587e5c31af7Sopenharmony_ci 3588e5c31af7Sopenharmony_ci void main() 3589e5c31af7Sopenharmony_ci { 3590e5c31af7Sopenharmony_ci ${SETUP} 3591e5c31af7Sopenharmony_ci out0 = in0 == uvec3(1, 2, 3); 3592e5c31af7Sopenharmony_ci ${OUTPUT} 3593e5c31af7Sopenharmony_ci } 3594e5c31af7Sopenharmony_ci "" 3595e5c31af7Sopenharmony_ci end 3596e5c31af7Sopenharmony_ci case ivec3_to_vec3 3597e5c31af7Sopenharmony_ci version 310 es 3598e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3599e5c31af7Sopenharmony_ci values 3600e5c31af7Sopenharmony_ci { 3601e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 3602e5c31af7Sopenharmony_ci output bool out0 = [ true | false | false ]; 3603e5c31af7Sopenharmony_ci } 3604e5c31af7Sopenharmony_ci 3605e5c31af7Sopenharmony_ci both "" 3606e5c31af7Sopenharmony_ci #version 310 es 3607e5c31af7Sopenharmony_ci precision highp float; 3608e5c31af7Sopenharmony_ci ${DECLARATIONS} 3609e5c31af7Sopenharmony_ci 3610e5c31af7Sopenharmony_ci void main() 3611e5c31af7Sopenharmony_ci { 3612e5c31af7Sopenharmony_ci ${SETUP} 3613e5c31af7Sopenharmony_ci out0 = in0 == vec3(1.0, 2.0, 3.0); 3614e5c31af7Sopenharmony_ci ${OUTPUT} 3615e5c31af7Sopenharmony_ci } 3616e5c31af7Sopenharmony_ci "" 3617e5c31af7Sopenharmony_ci end 3618e5c31af7Sopenharmony_ci case uvec3_to_vec3 3619e5c31af7Sopenharmony_ci version 310 es 3620e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3621e5c31af7Sopenharmony_ci values 3622e5c31af7Sopenharmony_ci { 3623e5c31af7Sopenharmony_ci input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 3624e5c31af7Sopenharmony_ci output bool out0 = [ false | false | false ]; 3625e5c31af7Sopenharmony_ci } 3626e5c31af7Sopenharmony_ci 3627e5c31af7Sopenharmony_ci both "" 3628e5c31af7Sopenharmony_ci #version 310 es 3629e5c31af7Sopenharmony_ci precision highp float; 3630e5c31af7Sopenharmony_ci ${DECLARATIONS} 3631e5c31af7Sopenharmony_ci 3632e5c31af7Sopenharmony_ci void main() 3633e5c31af7Sopenharmony_ci { 3634e5c31af7Sopenharmony_ci ${SETUP} 3635e5c31af7Sopenharmony_ci out0 = in0 == vec3(1.0, 2.0, 3.0); 3636e5c31af7Sopenharmony_ci ${OUTPUT} 3637e5c31af7Sopenharmony_ci } 3638e5c31af7Sopenharmony_ci "" 3639e5c31af7Sopenharmony_ci end 3640e5c31af7Sopenharmony_ci case ivec4_to_uvec4 3641e5c31af7Sopenharmony_ci version 310 es 3642e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3643e5c31af7Sopenharmony_ci values 3644e5c31af7Sopenharmony_ci { 3645e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 3646e5c31af7Sopenharmony_ci output bool out0 = [ true | false | false ]; 3647e5c31af7Sopenharmony_ci } 3648e5c31af7Sopenharmony_ci 3649e5c31af7Sopenharmony_ci both "" 3650e5c31af7Sopenharmony_ci #version 310 es 3651e5c31af7Sopenharmony_ci precision highp float; 3652e5c31af7Sopenharmony_ci ${DECLARATIONS} 3653e5c31af7Sopenharmony_ci 3654e5c31af7Sopenharmony_ci void main() 3655e5c31af7Sopenharmony_ci { 3656e5c31af7Sopenharmony_ci ${SETUP} 3657e5c31af7Sopenharmony_ci out0 = in0 == uvec4(1, 2, 3, 4); 3658e5c31af7Sopenharmony_ci ${OUTPUT} 3659e5c31af7Sopenharmony_ci } 3660e5c31af7Sopenharmony_ci "" 3661e5c31af7Sopenharmony_ci end 3662e5c31af7Sopenharmony_ci case ivec4_to_vec4 3663e5c31af7Sopenharmony_ci version 310 es 3664e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3665e5c31af7Sopenharmony_ci values 3666e5c31af7Sopenharmony_ci { 3667e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 3668e5c31af7Sopenharmony_ci output bool out0 = [ true | false | false ]; 3669e5c31af7Sopenharmony_ci } 3670e5c31af7Sopenharmony_ci 3671e5c31af7Sopenharmony_ci both "" 3672e5c31af7Sopenharmony_ci #version 310 es 3673e5c31af7Sopenharmony_ci precision highp float; 3674e5c31af7Sopenharmony_ci ${DECLARATIONS} 3675e5c31af7Sopenharmony_ci 3676e5c31af7Sopenharmony_ci void main() 3677e5c31af7Sopenharmony_ci { 3678e5c31af7Sopenharmony_ci ${SETUP} 3679e5c31af7Sopenharmony_ci out0 = in0 == vec4(1.0, 2.0, 3.0, 4.0); 3680e5c31af7Sopenharmony_ci ${OUTPUT} 3681e5c31af7Sopenharmony_ci } 3682e5c31af7Sopenharmony_ci "" 3683e5c31af7Sopenharmony_ci end 3684e5c31af7Sopenharmony_ci case uvec4_to_vec4 3685e5c31af7Sopenharmony_ci version 310 es 3686e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3687e5c31af7Sopenharmony_ci values 3688e5c31af7Sopenharmony_ci { 3689e5c31af7Sopenharmony_ci input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 3690e5c31af7Sopenharmony_ci output bool out0 = [ false | false | false ]; 3691e5c31af7Sopenharmony_ci } 3692e5c31af7Sopenharmony_ci 3693e5c31af7Sopenharmony_ci both "" 3694e5c31af7Sopenharmony_ci #version 310 es 3695e5c31af7Sopenharmony_ci precision highp float; 3696e5c31af7Sopenharmony_ci ${DECLARATIONS} 3697e5c31af7Sopenharmony_ci 3698e5c31af7Sopenharmony_ci void main() 3699e5c31af7Sopenharmony_ci { 3700e5c31af7Sopenharmony_ci ${SETUP} 3701e5c31af7Sopenharmony_ci out0 = in0 == vec4(1.0, 2.0, 3.0, 4.0); 3702e5c31af7Sopenharmony_ci ${OUTPUT} 3703e5c31af7Sopenharmony_ci } 3704e5c31af7Sopenharmony_ci "" 3705e5c31af7Sopenharmony_ci end 3706e5c31af7Sopenharmony_ci 3707e5c31af7Sopenharmony_ci end # equal 3708e5c31af7Sopenharmony_ci group not_equal "Not equal" 3709e5c31af7Sopenharmony_ci 3710e5c31af7Sopenharmony_ci case int_to_float 3711e5c31af7Sopenharmony_ci version 310 es 3712e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3713e5c31af7Sopenharmony_ci values 3714e5c31af7Sopenharmony_ci { 3715e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 3716e5c31af7Sopenharmony_ci output bool out0 = [ false | true | true | true | true ]; 3717e5c31af7Sopenharmony_ci } 3718e5c31af7Sopenharmony_ci 3719e5c31af7Sopenharmony_ci both "" 3720e5c31af7Sopenharmony_ci #version 310 es 3721e5c31af7Sopenharmony_ci precision highp float; 3722e5c31af7Sopenharmony_ci ${DECLARATIONS} 3723e5c31af7Sopenharmony_ci 3724e5c31af7Sopenharmony_ci void main() 3725e5c31af7Sopenharmony_ci { 3726e5c31af7Sopenharmony_ci ${SETUP} 3727e5c31af7Sopenharmony_ci out0 = in0 != 2.0; 3728e5c31af7Sopenharmony_ci ${OUTPUT} 3729e5c31af7Sopenharmony_ci } 3730e5c31af7Sopenharmony_ci "" 3731e5c31af7Sopenharmony_ci end 3732e5c31af7Sopenharmony_ci case int_to_uint 3733e5c31af7Sopenharmony_ci version 310 es 3734e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3735e5c31af7Sopenharmony_ci values 3736e5c31af7Sopenharmony_ci { 3737e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 3738e5c31af7Sopenharmony_ci output bool out0 = [ false | true | true | true | true ]; 3739e5c31af7Sopenharmony_ci } 3740e5c31af7Sopenharmony_ci 3741e5c31af7Sopenharmony_ci both "" 3742e5c31af7Sopenharmony_ci #version 310 es 3743e5c31af7Sopenharmony_ci precision highp float; 3744e5c31af7Sopenharmony_ci ${DECLARATIONS} 3745e5c31af7Sopenharmony_ci 3746e5c31af7Sopenharmony_ci void main() 3747e5c31af7Sopenharmony_ci { 3748e5c31af7Sopenharmony_ci ${SETUP} 3749e5c31af7Sopenharmony_ci out0 = in0 != 2; 3750e5c31af7Sopenharmony_ci ${OUTPUT} 3751e5c31af7Sopenharmony_ci } 3752e5c31af7Sopenharmony_ci "" 3753e5c31af7Sopenharmony_ci end 3754e5c31af7Sopenharmony_ci case uint_to_float 3755e5c31af7Sopenharmony_ci version 310 es 3756e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3757e5c31af7Sopenharmony_ci values 3758e5c31af7Sopenharmony_ci { 3759e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 3760e5c31af7Sopenharmony_ci output bool out0 = [ true | true | true | true | true ]; 3761e5c31af7Sopenharmony_ci } 3762e5c31af7Sopenharmony_ci 3763e5c31af7Sopenharmony_ci both "" 3764e5c31af7Sopenharmony_ci #version 310 es 3765e5c31af7Sopenharmony_ci precision highp float; 3766e5c31af7Sopenharmony_ci ${DECLARATIONS} 3767e5c31af7Sopenharmony_ci 3768e5c31af7Sopenharmony_ci void main() 3769e5c31af7Sopenharmony_ci { 3770e5c31af7Sopenharmony_ci ${SETUP} 3771e5c31af7Sopenharmony_ci out0 = in0 != 2.0; 3772e5c31af7Sopenharmony_ci ${OUTPUT} 3773e5c31af7Sopenharmony_ci } 3774e5c31af7Sopenharmony_ci "" 3775e5c31af7Sopenharmony_ci end 3776e5c31af7Sopenharmony_ci case ivec2_to_uvec2 3777e5c31af7Sopenharmony_ci version 310 es 3778e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3779e5c31af7Sopenharmony_ci values 3780e5c31af7Sopenharmony_ci { 3781e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 3782e5c31af7Sopenharmony_ci output bool out0 = [ false | true | true ]; 3783e5c31af7Sopenharmony_ci } 3784e5c31af7Sopenharmony_ci 3785e5c31af7Sopenharmony_ci both "" 3786e5c31af7Sopenharmony_ci #version 310 es 3787e5c31af7Sopenharmony_ci precision highp float; 3788e5c31af7Sopenharmony_ci ${DECLARATIONS} 3789e5c31af7Sopenharmony_ci 3790e5c31af7Sopenharmony_ci void main() 3791e5c31af7Sopenharmony_ci { 3792e5c31af7Sopenharmony_ci ${SETUP} 3793e5c31af7Sopenharmony_ci out0 = in0 != uvec2(1, 2); 3794e5c31af7Sopenharmony_ci ${OUTPUT} 3795e5c31af7Sopenharmony_ci } 3796e5c31af7Sopenharmony_ci "" 3797e5c31af7Sopenharmony_ci end 3798e5c31af7Sopenharmony_ci case ivec2_to_vec2 3799e5c31af7Sopenharmony_ci version 310 es 3800e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3801e5c31af7Sopenharmony_ci values 3802e5c31af7Sopenharmony_ci { 3803e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 3804e5c31af7Sopenharmony_ci output bool out0 = [ false | true | true ]; 3805e5c31af7Sopenharmony_ci } 3806e5c31af7Sopenharmony_ci 3807e5c31af7Sopenharmony_ci both "" 3808e5c31af7Sopenharmony_ci #version 310 es 3809e5c31af7Sopenharmony_ci precision highp float; 3810e5c31af7Sopenharmony_ci ${DECLARATIONS} 3811e5c31af7Sopenharmony_ci 3812e5c31af7Sopenharmony_ci void main() 3813e5c31af7Sopenharmony_ci { 3814e5c31af7Sopenharmony_ci ${SETUP} 3815e5c31af7Sopenharmony_ci out0 = in0 != vec2(1.0, 2.0); 3816e5c31af7Sopenharmony_ci ${OUTPUT} 3817e5c31af7Sopenharmony_ci } 3818e5c31af7Sopenharmony_ci "" 3819e5c31af7Sopenharmony_ci end 3820e5c31af7Sopenharmony_ci case uvec2_to_vec2 3821e5c31af7Sopenharmony_ci version 310 es 3822e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3823e5c31af7Sopenharmony_ci values 3824e5c31af7Sopenharmony_ci { 3825e5c31af7Sopenharmony_ci input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 3826e5c31af7Sopenharmony_ci output bool out0 = [ true | true | true ]; 3827e5c31af7Sopenharmony_ci } 3828e5c31af7Sopenharmony_ci 3829e5c31af7Sopenharmony_ci both "" 3830e5c31af7Sopenharmony_ci #version 310 es 3831e5c31af7Sopenharmony_ci precision highp float; 3832e5c31af7Sopenharmony_ci ${DECLARATIONS} 3833e5c31af7Sopenharmony_ci 3834e5c31af7Sopenharmony_ci void main() 3835e5c31af7Sopenharmony_ci { 3836e5c31af7Sopenharmony_ci ${SETUP} 3837e5c31af7Sopenharmony_ci out0 = in0 != vec2(1.0, 2.0); 3838e5c31af7Sopenharmony_ci ${OUTPUT} 3839e5c31af7Sopenharmony_ci } 3840e5c31af7Sopenharmony_ci "" 3841e5c31af7Sopenharmony_ci end 3842e5c31af7Sopenharmony_ci case ivec3_to_uvec3 3843e5c31af7Sopenharmony_ci version 310 es 3844e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3845e5c31af7Sopenharmony_ci values 3846e5c31af7Sopenharmony_ci { 3847e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 3848e5c31af7Sopenharmony_ci output bool out0 = [ false | true | true ]; 3849e5c31af7Sopenharmony_ci } 3850e5c31af7Sopenharmony_ci 3851e5c31af7Sopenharmony_ci both "" 3852e5c31af7Sopenharmony_ci #version 310 es 3853e5c31af7Sopenharmony_ci precision highp float; 3854e5c31af7Sopenharmony_ci ${DECLARATIONS} 3855e5c31af7Sopenharmony_ci 3856e5c31af7Sopenharmony_ci void main() 3857e5c31af7Sopenharmony_ci { 3858e5c31af7Sopenharmony_ci ${SETUP} 3859e5c31af7Sopenharmony_ci out0 = in0 != uvec3(1, 2, 3); 3860e5c31af7Sopenharmony_ci ${OUTPUT} 3861e5c31af7Sopenharmony_ci } 3862e5c31af7Sopenharmony_ci "" 3863e5c31af7Sopenharmony_ci end 3864e5c31af7Sopenharmony_ci case ivec3_to_vec3 3865e5c31af7Sopenharmony_ci version 310 es 3866e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3867e5c31af7Sopenharmony_ci values 3868e5c31af7Sopenharmony_ci { 3869e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 3870e5c31af7Sopenharmony_ci output bool out0 = [ false | true | true ]; 3871e5c31af7Sopenharmony_ci } 3872e5c31af7Sopenharmony_ci 3873e5c31af7Sopenharmony_ci both "" 3874e5c31af7Sopenharmony_ci #version 310 es 3875e5c31af7Sopenharmony_ci precision highp float; 3876e5c31af7Sopenharmony_ci ${DECLARATIONS} 3877e5c31af7Sopenharmony_ci 3878e5c31af7Sopenharmony_ci void main() 3879e5c31af7Sopenharmony_ci { 3880e5c31af7Sopenharmony_ci ${SETUP} 3881e5c31af7Sopenharmony_ci out0 = in0 != vec3(1.0, 2.0, 3.0); 3882e5c31af7Sopenharmony_ci ${OUTPUT} 3883e5c31af7Sopenharmony_ci } 3884e5c31af7Sopenharmony_ci "" 3885e5c31af7Sopenharmony_ci end 3886e5c31af7Sopenharmony_ci case uvec3_to_vec3 3887e5c31af7Sopenharmony_ci version 310 es 3888e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3889e5c31af7Sopenharmony_ci values 3890e5c31af7Sopenharmony_ci { 3891e5c31af7Sopenharmony_ci input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 3892e5c31af7Sopenharmony_ci output bool out0 = [ true | true | true ]; 3893e5c31af7Sopenharmony_ci } 3894e5c31af7Sopenharmony_ci 3895e5c31af7Sopenharmony_ci both "" 3896e5c31af7Sopenharmony_ci #version 310 es 3897e5c31af7Sopenharmony_ci precision highp float; 3898e5c31af7Sopenharmony_ci ${DECLARATIONS} 3899e5c31af7Sopenharmony_ci 3900e5c31af7Sopenharmony_ci void main() 3901e5c31af7Sopenharmony_ci { 3902e5c31af7Sopenharmony_ci ${SETUP} 3903e5c31af7Sopenharmony_ci out0 = in0 != vec3(1.0, 2.0, 3.0); 3904e5c31af7Sopenharmony_ci ${OUTPUT} 3905e5c31af7Sopenharmony_ci } 3906e5c31af7Sopenharmony_ci "" 3907e5c31af7Sopenharmony_ci end 3908e5c31af7Sopenharmony_ci case ivec4_to_uvec4 3909e5c31af7Sopenharmony_ci version 310 es 3910e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3911e5c31af7Sopenharmony_ci values 3912e5c31af7Sopenharmony_ci { 3913e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 3914e5c31af7Sopenharmony_ci output bool out0 = [ false | true | true ]; 3915e5c31af7Sopenharmony_ci } 3916e5c31af7Sopenharmony_ci 3917e5c31af7Sopenharmony_ci both "" 3918e5c31af7Sopenharmony_ci #version 310 es 3919e5c31af7Sopenharmony_ci precision highp float; 3920e5c31af7Sopenharmony_ci ${DECLARATIONS} 3921e5c31af7Sopenharmony_ci 3922e5c31af7Sopenharmony_ci void main() 3923e5c31af7Sopenharmony_ci { 3924e5c31af7Sopenharmony_ci ${SETUP} 3925e5c31af7Sopenharmony_ci out0 = in0 != uvec4(1, 2, 3, 4); 3926e5c31af7Sopenharmony_ci ${OUTPUT} 3927e5c31af7Sopenharmony_ci } 3928e5c31af7Sopenharmony_ci "" 3929e5c31af7Sopenharmony_ci end 3930e5c31af7Sopenharmony_ci case ivec4_to_vec4 3931e5c31af7Sopenharmony_ci version 310 es 3932e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3933e5c31af7Sopenharmony_ci values 3934e5c31af7Sopenharmony_ci { 3935e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 3936e5c31af7Sopenharmony_ci output bool out0 = [ false | true | true ]; 3937e5c31af7Sopenharmony_ci } 3938e5c31af7Sopenharmony_ci 3939e5c31af7Sopenharmony_ci both "" 3940e5c31af7Sopenharmony_ci #version 310 es 3941e5c31af7Sopenharmony_ci precision highp float; 3942e5c31af7Sopenharmony_ci ${DECLARATIONS} 3943e5c31af7Sopenharmony_ci 3944e5c31af7Sopenharmony_ci void main() 3945e5c31af7Sopenharmony_ci { 3946e5c31af7Sopenharmony_ci ${SETUP} 3947e5c31af7Sopenharmony_ci out0 = in0 != vec4(1.0, 2.0, 3.0, 4.0); 3948e5c31af7Sopenharmony_ci ${OUTPUT} 3949e5c31af7Sopenharmony_ci } 3950e5c31af7Sopenharmony_ci "" 3951e5c31af7Sopenharmony_ci end 3952e5c31af7Sopenharmony_ci case uvec4_to_vec4 3953e5c31af7Sopenharmony_ci version 310 es 3954e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3955e5c31af7Sopenharmony_ci values 3956e5c31af7Sopenharmony_ci { 3957e5c31af7Sopenharmony_ci input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 3958e5c31af7Sopenharmony_ci output bool out0 = [ true | true | true ]; 3959e5c31af7Sopenharmony_ci } 3960e5c31af7Sopenharmony_ci 3961e5c31af7Sopenharmony_ci both "" 3962e5c31af7Sopenharmony_ci #version 310 es 3963e5c31af7Sopenharmony_ci precision highp float; 3964e5c31af7Sopenharmony_ci ${DECLARATIONS} 3965e5c31af7Sopenharmony_ci 3966e5c31af7Sopenharmony_ci void main() 3967e5c31af7Sopenharmony_ci { 3968e5c31af7Sopenharmony_ci ${SETUP} 3969e5c31af7Sopenharmony_ci out0 = in0 != vec4(1.0, 2.0, 3.0, 4.0); 3970e5c31af7Sopenharmony_ci ${OUTPUT} 3971e5c31af7Sopenharmony_ci } 3972e5c31af7Sopenharmony_ci "" 3973e5c31af7Sopenharmony_ci end 3974e5c31af7Sopenharmony_ci 3975e5c31af7Sopenharmony_ci end # not_equal 3976e5c31af7Sopenharmony_ci group less "Less than" 3977e5c31af7Sopenharmony_ci 3978e5c31af7Sopenharmony_ci case int_to_float 3979e5c31af7Sopenharmony_ci version 310 es 3980e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3981e5c31af7Sopenharmony_ci values 3982e5c31af7Sopenharmony_ci { 3983e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 3984e5c31af7Sopenharmony_ci output bool out0 = [ false | true | true | false | false ]; 3985e5c31af7Sopenharmony_ci } 3986e5c31af7Sopenharmony_ci 3987e5c31af7Sopenharmony_ci both "" 3988e5c31af7Sopenharmony_ci #version 310 es 3989e5c31af7Sopenharmony_ci precision highp float; 3990e5c31af7Sopenharmony_ci ${DECLARATIONS} 3991e5c31af7Sopenharmony_ci 3992e5c31af7Sopenharmony_ci void main() 3993e5c31af7Sopenharmony_ci { 3994e5c31af7Sopenharmony_ci ${SETUP} 3995e5c31af7Sopenharmony_ci out0 = in0 < 2.0; 3996e5c31af7Sopenharmony_ci ${OUTPUT} 3997e5c31af7Sopenharmony_ci } 3998e5c31af7Sopenharmony_ci "" 3999e5c31af7Sopenharmony_ci end 4000e5c31af7Sopenharmony_ci case int_to_uint 4001e5c31af7Sopenharmony_ci version 310 es 4002e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4003e5c31af7Sopenharmony_ci values 4004e5c31af7Sopenharmony_ci { 4005e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 4006e5c31af7Sopenharmony_ci output bool out0 = [ false | true | true | false | false ]; 4007e5c31af7Sopenharmony_ci } 4008e5c31af7Sopenharmony_ci 4009e5c31af7Sopenharmony_ci both "" 4010e5c31af7Sopenharmony_ci #version 310 es 4011e5c31af7Sopenharmony_ci precision highp float; 4012e5c31af7Sopenharmony_ci ${DECLARATIONS} 4013e5c31af7Sopenharmony_ci 4014e5c31af7Sopenharmony_ci void main() 4015e5c31af7Sopenharmony_ci { 4016e5c31af7Sopenharmony_ci ${SETUP} 4017e5c31af7Sopenharmony_ci out0 = in0 < 2; 4018e5c31af7Sopenharmony_ci ${OUTPUT} 4019e5c31af7Sopenharmony_ci } 4020e5c31af7Sopenharmony_ci "" 4021e5c31af7Sopenharmony_ci end 4022e5c31af7Sopenharmony_ci case uint_to_float 4023e5c31af7Sopenharmony_ci version 310 es 4024e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4025e5c31af7Sopenharmony_ci values 4026e5c31af7Sopenharmony_ci { 4027e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 4028e5c31af7Sopenharmony_ci output bool out0 = [ true | false | false | false | false ]; 4029e5c31af7Sopenharmony_ci } 4030e5c31af7Sopenharmony_ci 4031e5c31af7Sopenharmony_ci both "" 4032e5c31af7Sopenharmony_ci #version 310 es 4033e5c31af7Sopenharmony_ci precision highp float; 4034e5c31af7Sopenharmony_ci ${DECLARATIONS} 4035e5c31af7Sopenharmony_ci 4036e5c31af7Sopenharmony_ci void main() 4037e5c31af7Sopenharmony_ci { 4038e5c31af7Sopenharmony_ci ${SETUP} 4039e5c31af7Sopenharmony_ci out0 = in0 < 2.0; 4040e5c31af7Sopenharmony_ci ${OUTPUT} 4041e5c31af7Sopenharmony_ci } 4042e5c31af7Sopenharmony_ci "" 4043e5c31af7Sopenharmony_ci end 4044e5c31af7Sopenharmony_ci 4045e5c31af7Sopenharmony_ci end # less 4046e5c31af7Sopenharmony_ci group greater "Greater than" 4047e5c31af7Sopenharmony_ci 4048e5c31af7Sopenharmony_ci case int_to_float 4049e5c31af7Sopenharmony_ci version 310 es 4050e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4051e5c31af7Sopenharmony_ci values 4052e5c31af7Sopenharmony_ci { 4053e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 4054e5c31af7Sopenharmony_ci output bool out0 = [ false | false | false | true | true ]; 4055e5c31af7Sopenharmony_ci } 4056e5c31af7Sopenharmony_ci 4057e5c31af7Sopenharmony_ci both "" 4058e5c31af7Sopenharmony_ci #version 310 es 4059e5c31af7Sopenharmony_ci precision highp float; 4060e5c31af7Sopenharmony_ci ${DECLARATIONS} 4061e5c31af7Sopenharmony_ci 4062e5c31af7Sopenharmony_ci void main() 4063e5c31af7Sopenharmony_ci { 4064e5c31af7Sopenharmony_ci ${SETUP} 4065e5c31af7Sopenharmony_ci out0 = in0 > 2.0; 4066e5c31af7Sopenharmony_ci ${OUTPUT} 4067e5c31af7Sopenharmony_ci } 4068e5c31af7Sopenharmony_ci "" 4069e5c31af7Sopenharmony_ci end 4070e5c31af7Sopenharmony_ci case int_to_uint 4071e5c31af7Sopenharmony_ci version 310 es 4072e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4073e5c31af7Sopenharmony_ci values 4074e5c31af7Sopenharmony_ci { 4075e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 4076e5c31af7Sopenharmony_ci output bool out0 = [ false | false | false | true | true ]; 4077e5c31af7Sopenharmony_ci } 4078e5c31af7Sopenharmony_ci 4079e5c31af7Sopenharmony_ci both "" 4080e5c31af7Sopenharmony_ci #version 310 es 4081e5c31af7Sopenharmony_ci precision highp float; 4082e5c31af7Sopenharmony_ci ${DECLARATIONS} 4083e5c31af7Sopenharmony_ci 4084e5c31af7Sopenharmony_ci void main() 4085e5c31af7Sopenharmony_ci { 4086e5c31af7Sopenharmony_ci ${SETUP} 4087e5c31af7Sopenharmony_ci out0 = in0 > 2; 4088e5c31af7Sopenharmony_ci ${OUTPUT} 4089e5c31af7Sopenharmony_ci } 4090e5c31af7Sopenharmony_ci "" 4091e5c31af7Sopenharmony_ci end 4092e5c31af7Sopenharmony_ci case uint_to_float 4093e5c31af7Sopenharmony_ci version 310 es 4094e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4095e5c31af7Sopenharmony_ci values 4096e5c31af7Sopenharmony_ci { 4097e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 4098e5c31af7Sopenharmony_ci output bool out0 = [ false | true | true | true | true ]; 4099e5c31af7Sopenharmony_ci } 4100e5c31af7Sopenharmony_ci 4101e5c31af7Sopenharmony_ci both "" 4102e5c31af7Sopenharmony_ci #version 310 es 4103e5c31af7Sopenharmony_ci precision highp float; 4104e5c31af7Sopenharmony_ci ${DECLARATIONS} 4105e5c31af7Sopenharmony_ci 4106e5c31af7Sopenharmony_ci void main() 4107e5c31af7Sopenharmony_ci { 4108e5c31af7Sopenharmony_ci ${SETUP} 4109e5c31af7Sopenharmony_ci out0 = in0 > 2.0; 4110e5c31af7Sopenharmony_ci ${OUTPUT} 4111e5c31af7Sopenharmony_ci } 4112e5c31af7Sopenharmony_ci "" 4113e5c31af7Sopenharmony_ci end 4114e5c31af7Sopenharmony_ci 4115e5c31af7Sopenharmony_ci end # greater 4116e5c31af7Sopenharmony_ci group less_or_equal "Less than or equal" 4117e5c31af7Sopenharmony_ci 4118e5c31af7Sopenharmony_ci case int_to_float 4119e5c31af7Sopenharmony_ci version 310 es 4120e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4121e5c31af7Sopenharmony_ci values 4122e5c31af7Sopenharmony_ci { 4123e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 4124e5c31af7Sopenharmony_ci output bool out0 = [ true | true | true | false | false ]; 4125e5c31af7Sopenharmony_ci } 4126e5c31af7Sopenharmony_ci 4127e5c31af7Sopenharmony_ci both "" 4128e5c31af7Sopenharmony_ci #version 310 es 4129e5c31af7Sopenharmony_ci precision highp float; 4130e5c31af7Sopenharmony_ci ${DECLARATIONS} 4131e5c31af7Sopenharmony_ci 4132e5c31af7Sopenharmony_ci void main() 4133e5c31af7Sopenharmony_ci { 4134e5c31af7Sopenharmony_ci ${SETUP} 4135e5c31af7Sopenharmony_ci out0 = in0 <= 2.0; 4136e5c31af7Sopenharmony_ci ${OUTPUT} 4137e5c31af7Sopenharmony_ci } 4138e5c31af7Sopenharmony_ci "" 4139e5c31af7Sopenharmony_ci end 4140e5c31af7Sopenharmony_ci case int_to_uint 4141e5c31af7Sopenharmony_ci version 310 es 4142e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4143e5c31af7Sopenharmony_ci values 4144e5c31af7Sopenharmony_ci { 4145e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 4146e5c31af7Sopenharmony_ci output bool out0 = [ true | true | true | false | false ]; 4147e5c31af7Sopenharmony_ci } 4148e5c31af7Sopenharmony_ci 4149e5c31af7Sopenharmony_ci both "" 4150e5c31af7Sopenharmony_ci #version 310 es 4151e5c31af7Sopenharmony_ci precision highp float; 4152e5c31af7Sopenharmony_ci ${DECLARATIONS} 4153e5c31af7Sopenharmony_ci 4154e5c31af7Sopenharmony_ci void main() 4155e5c31af7Sopenharmony_ci { 4156e5c31af7Sopenharmony_ci ${SETUP} 4157e5c31af7Sopenharmony_ci out0 = in0 <= 2; 4158e5c31af7Sopenharmony_ci ${OUTPUT} 4159e5c31af7Sopenharmony_ci } 4160e5c31af7Sopenharmony_ci "" 4161e5c31af7Sopenharmony_ci end 4162e5c31af7Sopenharmony_ci case uint_to_float 4163e5c31af7Sopenharmony_ci version 310 es 4164e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4165e5c31af7Sopenharmony_ci values 4166e5c31af7Sopenharmony_ci { 4167e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 4168e5c31af7Sopenharmony_ci output bool out0 = [ true | false | false | false | false ]; 4169e5c31af7Sopenharmony_ci } 4170e5c31af7Sopenharmony_ci 4171e5c31af7Sopenharmony_ci both "" 4172e5c31af7Sopenharmony_ci #version 310 es 4173e5c31af7Sopenharmony_ci precision highp float; 4174e5c31af7Sopenharmony_ci ${DECLARATIONS} 4175e5c31af7Sopenharmony_ci 4176e5c31af7Sopenharmony_ci void main() 4177e5c31af7Sopenharmony_ci { 4178e5c31af7Sopenharmony_ci ${SETUP} 4179e5c31af7Sopenharmony_ci out0 = in0 <= 2.0; 4180e5c31af7Sopenharmony_ci ${OUTPUT} 4181e5c31af7Sopenharmony_ci } 4182e5c31af7Sopenharmony_ci "" 4183e5c31af7Sopenharmony_ci end 4184e5c31af7Sopenharmony_ci 4185e5c31af7Sopenharmony_ci end # less_or_equal 4186e5c31af7Sopenharmony_ci group greater_or_equal "Greater than or equal" 4187e5c31af7Sopenharmony_ci 4188e5c31af7Sopenharmony_ci case int_to_float 4189e5c31af7Sopenharmony_ci version 310 es 4190e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4191e5c31af7Sopenharmony_ci values 4192e5c31af7Sopenharmony_ci { 4193e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 4194e5c31af7Sopenharmony_ci output bool out0 = [ true | false | false | true | true ]; 4195e5c31af7Sopenharmony_ci } 4196e5c31af7Sopenharmony_ci 4197e5c31af7Sopenharmony_ci both "" 4198e5c31af7Sopenharmony_ci #version 310 es 4199e5c31af7Sopenharmony_ci precision highp float; 4200e5c31af7Sopenharmony_ci ${DECLARATIONS} 4201e5c31af7Sopenharmony_ci 4202e5c31af7Sopenharmony_ci void main() 4203e5c31af7Sopenharmony_ci { 4204e5c31af7Sopenharmony_ci ${SETUP} 4205e5c31af7Sopenharmony_ci out0 = in0 >= 2.0; 4206e5c31af7Sopenharmony_ci ${OUTPUT} 4207e5c31af7Sopenharmony_ci } 4208e5c31af7Sopenharmony_ci "" 4209e5c31af7Sopenharmony_ci end 4210e5c31af7Sopenharmony_ci case int_to_uint 4211e5c31af7Sopenharmony_ci version 310 es 4212e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4213e5c31af7Sopenharmony_ci values 4214e5c31af7Sopenharmony_ci { 4215e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 4216e5c31af7Sopenharmony_ci output bool out0 = [ true | false | false | true | true ]; 4217e5c31af7Sopenharmony_ci } 4218e5c31af7Sopenharmony_ci 4219e5c31af7Sopenharmony_ci both "" 4220e5c31af7Sopenharmony_ci #version 310 es 4221e5c31af7Sopenharmony_ci precision highp float; 4222e5c31af7Sopenharmony_ci ${DECLARATIONS} 4223e5c31af7Sopenharmony_ci 4224e5c31af7Sopenharmony_ci void main() 4225e5c31af7Sopenharmony_ci { 4226e5c31af7Sopenharmony_ci ${SETUP} 4227e5c31af7Sopenharmony_ci out0 = in0 >= 2; 4228e5c31af7Sopenharmony_ci ${OUTPUT} 4229e5c31af7Sopenharmony_ci } 4230e5c31af7Sopenharmony_ci "" 4231e5c31af7Sopenharmony_ci end 4232e5c31af7Sopenharmony_ci case uint_to_float 4233e5c31af7Sopenharmony_ci version 310 es 4234e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4235e5c31af7Sopenharmony_ci values 4236e5c31af7Sopenharmony_ci { 4237e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 4238e5c31af7Sopenharmony_ci output bool out0 = [ false | true | true | true | true ]; 4239e5c31af7Sopenharmony_ci } 4240e5c31af7Sopenharmony_ci 4241e5c31af7Sopenharmony_ci both "" 4242e5c31af7Sopenharmony_ci #version 310 es 4243e5c31af7Sopenharmony_ci precision highp float; 4244e5c31af7Sopenharmony_ci ${DECLARATIONS} 4245e5c31af7Sopenharmony_ci 4246e5c31af7Sopenharmony_ci void main() 4247e5c31af7Sopenharmony_ci { 4248e5c31af7Sopenharmony_ci ${SETUP} 4249e5c31af7Sopenharmony_ci out0 = in0 >= 2.0; 4250e5c31af7Sopenharmony_ci ${OUTPUT} 4251e5c31af7Sopenharmony_ci } 4252e5c31af7Sopenharmony_ci "" 4253e5c31af7Sopenharmony_ci end 4254e5c31af7Sopenharmony_ci 4255e5c31af7Sopenharmony_ci end # greater_or_equal 4256e5c31af7Sopenharmony_ci 4257e5c31af7Sopenharmony_ci end # input_before_literal 4258e5c31af7Sopenharmony_ci group literal_before_input "Literal before input" 4259e5c31af7Sopenharmony_ci 4260e5c31af7Sopenharmony_ci group equal "Equal" 4261e5c31af7Sopenharmony_ci 4262e5c31af7Sopenharmony_ci case int_to_float 4263e5c31af7Sopenharmony_ci version 310 es 4264e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4265e5c31af7Sopenharmony_ci values 4266e5c31af7Sopenharmony_ci { 4267e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 4268e5c31af7Sopenharmony_ci output bool out0 = [ true | false | false | false | false ]; 4269e5c31af7Sopenharmony_ci } 4270e5c31af7Sopenharmony_ci 4271e5c31af7Sopenharmony_ci both "" 4272e5c31af7Sopenharmony_ci #version 310 es 4273e5c31af7Sopenharmony_ci precision highp float; 4274e5c31af7Sopenharmony_ci ${DECLARATIONS} 4275e5c31af7Sopenharmony_ci 4276e5c31af7Sopenharmony_ci void main() 4277e5c31af7Sopenharmony_ci { 4278e5c31af7Sopenharmony_ci ${SETUP} 4279e5c31af7Sopenharmony_ci out0 = 2.0 == in0; 4280e5c31af7Sopenharmony_ci ${OUTPUT} 4281e5c31af7Sopenharmony_ci } 4282e5c31af7Sopenharmony_ci "" 4283e5c31af7Sopenharmony_ci end 4284e5c31af7Sopenharmony_ci case int_to_uint 4285e5c31af7Sopenharmony_ci version 310 es 4286e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4287e5c31af7Sopenharmony_ci values 4288e5c31af7Sopenharmony_ci { 4289e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 4290e5c31af7Sopenharmony_ci output bool out0 = [ true | false | false | false | false ]; 4291e5c31af7Sopenharmony_ci } 4292e5c31af7Sopenharmony_ci 4293e5c31af7Sopenharmony_ci both "" 4294e5c31af7Sopenharmony_ci #version 310 es 4295e5c31af7Sopenharmony_ci precision highp float; 4296e5c31af7Sopenharmony_ci ${DECLARATIONS} 4297e5c31af7Sopenharmony_ci 4298e5c31af7Sopenharmony_ci void main() 4299e5c31af7Sopenharmony_ci { 4300e5c31af7Sopenharmony_ci ${SETUP} 4301e5c31af7Sopenharmony_ci out0 = 2 == in0; 4302e5c31af7Sopenharmony_ci ${OUTPUT} 4303e5c31af7Sopenharmony_ci } 4304e5c31af7Sopenharmony_ci "" 4305e5c31af7Sopenharmony_ci end 4306e5c31af7Sopenharmony_ci case uint_to_float 4307e5c31af7Sopenharmony_ci version 310 es 4308e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4309e5c31af7Sopenharmony_ci values 4310e5c31af7Sopenharmony_ci { 4311e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 4312e5c31af7Sopenharmony_ci output bool out0 = [ false | false | false | false | false ]; 4313e5c31af7Sopenharmony_ci } 4314e5c31af7Sopenharmony_ci 4315e5c31af7Sopenharmony_ci both "" 4316e5c31af7Sopenharmony_ci #version 310 es 4317e5c31af7Sopenharmony_ci precision highp float; 4318e5c31af7Sopenharmony_ci ${DECLARATIONS} 4319e5c31af7Sopenharmony_ci 4320e5c31af7Sopenharmony_ci void main() 4321e5c31af7Sopenharmony_ci { 4322e5c31af7Sopenharmony_ci ${SETUP} 4323e5c31af7Sopenharmony_ci out0 = 2.0 == in0; 4324e5c31af7Sopenharmony_ci ${OUTPUT} 4325e5c31af7Sopenharmony_ci } 4326e5c31af7Sopenharmony_ci "" 4327e5c31af7Sopenharmony_ci end 4328e5c31af7Sopenharmony_ci case ivec2_to_uvec2 4329e5c31af7Sopenharmony_ci version 310 es 4330e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4331e5c31af7Sopenharmony_ci values 4332e5c31af7Sopenharmony_ci { 4333e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 4334e5c31af7Sopenharmony_ci output bool out0 = [ true | false | false ]; 4335e5c31af7Sopenharmony_ci } 4336e5c31af7Sopenharmony_ci 4337e5c31af7Sopenharmony_ci both "" 4338e5c31af7Sopenharmony_ci #version 310 es 4339e5c31af7Sopenharmony_ci precision highp float; 4340e5c31af7Sopenharmony_ci ${DECLARATIONS} 4341e5c31af7Sopenharmony_ci 4342e5c31af7Sopenharmony_ci void main() 4343e5c31af7Sopenharmony_ci { 4344e5c31af7Sopenharmony_ci ${SETUP} 4345e5c31af7Sopenharmony_ci out0 = uvec2(1, 2) == in0; 4346e5c31af7Sopenharmony_ci ${OUTPUT} 4347e5c31af7Sopenharmony_ci } 4348e5c31af7Sopenharmony_ci "" 4349e5c31af7Sopenharmony_ci end 4350e5c31af7Sopenharmony_ci case ivec2_to_vec2 4351e5c31af7Sopenharmony_ci version 310 es 4352e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4353e5c31af7Sopenharmony_ci values 4354e5c31af7Sopenharmony_ci { 4355e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 4356e5c31af7Sopenharmony_ci output bool out0 = [ true | false | false ]; 4357e5c31af7Sopenharmony_ci } 4358e5c31af7Sopenharmony_ci 4359e5c31af7Sopenharmony_ci both "" 4360e5c31af7Sopenharmony_ci #version 310 es 4361e5c31af7Sopenharmony_ci precision highp float; 4362e5c31af7Sopenharmony_ci ${DECLARATIONS} 4363e5c31af7Sopenharmony_ci 4364e5c31af7Sopenharmony_ci void main() 4365e5c31af7Sopenharmony_ci { 4366e5c31af7Sopenharmony_ci ${SETUP} 4367e5c31af7Sopenharmony_ci out0 = vec2(1.0, 2.0) == in0; 4368e5c31af7Sopenharmony_ci ${OUTPUT} 4369e5c31af7Sopenharmony_ci } 4370e5c31af7Sopenharmony_ci "" 4371e5c31af7Sopenharmony_ci end 4372e5c31af7Sopenharmony_ci case uvec2_to_vec2 4373e5c31af7Sopenharmony_ci version 310 es 4374e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4375e5c31af7Sopenharmony_ci values 4376e5c31af7Sopenharmony_ci { 4377e5c31af7Sopenharmony_ci input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 4378e5c31af7Sopenharmony_ci output bool out0 = [ false | false | false ]; 4379e5c31af7Sopenharmony_ci } 4380e5c31af7Sopenharmony_ci 4381e5c31af7Sopenharmony_ci both "" 4382e5c31af7Sopenharmony_ci #version 310 es 4383e5c31af7Sopenharmony_ci precision highp float; 4384e5c31af7Sopenharmony_ci ${DECLARATIONS} 4385e5c31af7Sopenharmony_ci 4386e5c31af7Sopenharmony_ci void main() 4387e5c31af7Sopenharmony_ci { 4388e5c31af7Sopenharmony_ci ${SETUP} 4389e5c31af7Sopenharmony_ci out0 = vec2(1.0, 2.0) == in0; 4390e5c31af7Sopenharmony_ci ${OUTPUT} 4391e5c31af7Sopenharmony_ci } 4392e5c31af7Sopenharmony_ci "" 4393e5c31af7Sopenharmony_ci end 4394e5c31af7Sopenharmony_ci case ivec3_to_uvec3 4395e5c31af7Sopenharmony_ci version 310 es 4396e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4397e5c31af7Sopenharmony_ci values 4398e5c31af7Sopenharmony_ci { 4399e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 4400e5c31af7Sopenharmony_ci output bool out0 = [ true | false | false ]; 4401e5c31af7Sopenharmony_ci } 4402e5c31af7Sopenharmony_ci 4403e5c31af7Sopenharmony_ci both "" 4404e5c31af7Sopenharmony_ci #version 310 es 4405e5c31af7Sopenharmony_ci precision highp float; 4406e5c31af7Sopenharmony_ci ${DECLARATIONS} 4407e5c31af7Sopenharmony_ci 4408e5c31af7Sopenharmony_ci void main() 4409e5c31af7Sopenharmony_ci { 4410e5c31af7Sopenharmony_ci ${SETUP} 4411e5c31af7Sopenharmony_ci out0 = uvec3(1, 2, 3) == in0; 4412e5c31af7Sopenharmony_ci ${OUTPUT} 4413e5c31af7Sopenharmony_ci } 4414e5c31af7Sopenharmony_ci "" 4415e5c31af7Sopenharmony_ci end 4416e5c31af7Sopenharmony_ci case ivec3_to_vec3 4417e5c31af7Sopenharmony_ci version 310 es 4418e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4419e5c31af7Sopenharmony_ci values 4420e5c31af7Sopenharmony_ci { 4421e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 4422e5c31af7Sopenharmony_ci output bool out0 = [ true | false | false ]; 4423e5c31af7Sopenharmony_ci } 4424e5c31af7Sopenharmony_ci 4425e5c31af7Sopenharmony_ci both "" 4426e5c31af7Sopenharmony_ci #version 310 es 4427e5c31af7Sopenharmony_ci precision highp float; 4428e5c31af7Sopenharmony_ci ${DECLARATIONS} 4429e5c31af7Sopenharmony_ci 4430e5c31af7Sopenharmony_ci void main() 4431e5c31af7Sopenharmony_ci { 4432e5c31af7Sopenharmony_ci ${SETUP} 4433e5c31af7Sopenharmony_ci out0 = vec3(1.0, 2.0, 3.0) == in0; 4434e5c31af7Sopenharmony_ci ${OUTPUT} 4435e5c31af7Sopenharmony_ci } 4436e5c31af7Sopenharmony_ci "" 4437e5c31af7Sopenharmony_ci end 4438e5c31af7Sopenharmony_ci case uvec3_to_vec3 4439e5c31af7Sopenharmony_ci version 310 es 4440e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4441e5c31af7Sopenharmony_ci values 4442e5c31af7Sopenharmony_ci { 4443e5c31af7Sopenharmony_ci input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 4444e5c31af7Sopenharmony_ci output bool out0 = [ false | false | false ]; 4445e5c31af7Sopenharmony_ci } 4446e5c31af7Sopenharmony_ci 4447e5c31af7Sopenharmony_ci both "" 4448e5c31af7Sopenharmony_ci #version 310 es 4449e5c31af7Sopenharmony_ci precision highp float; 4450e5c31af7Sopenharmony_ci ${DECLARATIONS} 4451e5c31af7Sopenharmony_ci 4452e5c31af7Sopenharmony_ci void main() 4453e5c31af7Sopenharmony_ci { 4454e5c31af7Sopenharmony_ci ${SETUP} 4455e5c31af7Sopenharmony_ci out0 = vec3(1.0, 2.0, 3.0) == in0; 4456e5c31af7Sopenharmony_ci ${OUTPUT} 4457e5c31af7Sopenharmony_ci } 4458e5c31af7Sopenharmony_ci "" 4459e5c31af7Sopenharmony_ci end 4460e5c31af7Sopenharmony_ci case ivec4_to_uvec4 4461e5c31af7Sopenharmony_ci version 310 es 4462e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4463e5c31af7Sopenharmony_ci values 4464e5c31af7Sopenharmony_ci { 4465e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 4466e5c31af7Sopenharmony_ci output bool out0 = [ true | false | false ]; 4467e5c31af7Sopenharmony_ci } 4468e5c31af7Sopenharmony_ci 4469e5c31af7Sopenharmony_ci both "" 4470e5c31af7Sopenharmony_ci #version 310 es 4471e5c31af7Sopenharmony_ci precision highp float; 4472e5c31af7Sopenharmony_ci ${DECLARATIONS} 4473e5c31af7Sopenharmony_ci 4474e5c31af7Sopenharmony_ci void main() 4475e5c31af7Sopenharmony_ci { 4476e5c31af7Sopenharmony_ci ${SETUP} 4477e5c31af7Sopenharmony_ci out0 = uvec4(1, 2, 3, 4) == in0; 4478e5c31af7Sopenharmony_ci ${OUTPUT} 4479e5c31af7Sopenharmony_ci } 4480e5c31af7Sopenharmony_ci "" 4481e5c31af7Sopenharmony_ci end 4482e5c31af7Sopenharmony_ci case ivec4_to_vec4 4483e5c31af7Sopenharmony_ci version 310 es 4484e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4485e5c31af7Sopenharmony_ci values 4486e5c31af7Sopenharmony_ci { 4487e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 4488e5c31af7Sopenharmony_ci output bool out0 = [ true | false | false ]; 4489e5c31af7Sopenharmony_ci } 4490e5c31af7Sopenharmony_ci 4491e5c31af7Sopenharmony_ci both "" 4492e5c31af7Sopenharmony_ci #version 310 es 4493e5c31af7Sopenharmony_ci precision highp float; 4494e5c31af7Sopenharmony_ci ${DECLARATIONS} 4495e5c31af7Sopenharmony_ci 4496e5c31af7Sopenharmony_ci void main() 4497e5c31af7Sopenharmony_ci { 4498e5c31af7Sopenharmony_ci ${SETUP} 4499e5c31af7Sopenharmony_ci out0 = vec4(1.0, 2.0, 3.0, 4.0) == in0; 4500e5c31af7Sopenharmony_ci ${OUTPUT} 4501e5c31af7Sopenharmony_ci } 4502e5c31af7Sopenharmony_ci "" 4503e5c31af7Sopenharmony_ci end 4504e5c31af7Sopenharmony_ci case uvec4_to_vec4 4505e5c31af7Sopenharmony_ci version 310 es 4506e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4507e5c31af7Sopenharmony_ci values 4508e5c31af7Sopenharmony_ci { 4509e5c31af7Sopenharmony_ci input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 4510e5c31af7Sopenharmony_ci output bool out0 = [ false | false | false ]; 4511e5c31af7Sopenharmony_ci } 4512e5c31af7Sopenharmony_ci 4513e5c31af7Sopenharmony_ci both "" 4514e5c31af7Sopenharmony_ci #version 310 es 4515e5c31af7Sopenharmony_ci precision highp float; 4516e5c31af7Sopenharmony_ci ${DECLARATIONS} 4517e5c31af7Sopenharmony_ci 4518e5c31af7Sopenharmony_ci void main() 4519e5c31af7Sopenharmony_ci { 4520e5c31af7Sopenharmony_ci ${SETUP} 4521e5c31af7Sopenharmony_ci out0 = vec4(1.0, 2.0, 3.0, 4.0) == in0; 4522e5c31af7Sopenharmony_ci ${OUTPUT} 4523e5c31af7Sopenharmony_ci } 4524e5c31af7Sopenharmony_ci "" 4525e5c31af7Sopenharmony_ci end 4526e5c31af7Sopenharmony_ci 4527e5c31af7Sopenharmony_ci end # equal 4528e5c31af7Sopenharmony_ci group not_equal "Not equal" 4529e5c31af7Sopenharmony_ci 4530e5c31af7Sopenharmony_ci case int_to_float 4531e5c31af7Sopenharmony_ci version 310 es 4532e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4533e5c31af7Sopenharmony_ci values 4534e5c31af7Sopenharmony_ci { 4535e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 4536e5c31af7Sopenharmony_ci output bool out0 = [ false | true | true | true | true ]; 4537e5c31af7Sopenharmony_ci } 4538e5c31af7Sopenharmony_ci 4539e5c31af7Sopenharmony_ci both "" 4540e5c31af7Sopenharmony_ci #version 310 es 4541e5c31af7Sopenharmony_ci precision highp float; 4542e5c31af7Sopenharmony_ci ${DECLARATIONS} 4543e5c31af7Sopenharmony_ci 4544e5c31af7Sopenharmony_ci void main() 4545e5c31af7Sopenharmony_ci { 4546e5c31af7Sopenharmony_ci ${SETUP} 4547e5c31af7Sopenharmony_ci out0 = 2.0 != in0; 4548e5c31af7Sopenharmony_ci ${OUTPUT} 4549e5c31af7Sopenharmony_ci } 4550e5c31af7Sopenharmony_ci "" 4551e5c31af7Sopenharmony_ci end 4552e5c31af7Sopenharmony_ci case int_to_uint 4553e5c31af7Sopenharmony_ci version 310 es 4554e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4555e5c31af7Sopenharmony_ci values 4556e5c31af7Sopenharmony_ci { 4557e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 4558e5c31af7Sopenharmony_ci output bool out0 = [ false | true | true | true | true ]; 4559e5c31af7Sopenharmony_ci } 4560e5c31af7Sopenharmony_ci 4561e5c31af7Sopenharmony_ci both "" 4562e5c31af7Sopenharmony_ci #version 310 es 4563e5c31af7Sopenharmony_ci precision highp float; 4564e5c31af7Sopenharmony_ci ${DECLARATIONS} 4565e5c31af7Sopenharmony_ci 4566e5c31af7Sopenharmony_ci void main() 4567e5c31af7Sopenharmony_ci { 4568e5c31af7Sopenharmony_ci ${SETUP} 4569e5c31af7Sopenharmony_ci out0 = 2 != in0; 4570e5c31af7Sopenharmony_ci ${OUTPUT} 4571e5c31af7Sopenharmony_ci } 4572e5c31af7Sopenharmony_ci "" 4573e5c31af7Sopenharmony_ci end 4574e5c31af7Sopenharmony_ci case uint_to_float 4575e5c31af7Sopenharmony_ci version 310 es 4576e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4577e5c31af7Sopenharmony_ci values 4578e5c31af7Sopenharmony_ci { 4579e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 4580e5c31af7Sopenharmony_ci output bool out0 = [ true | true | true | true | true ]; 4581e5c31af7Sopenharmony_ci } 4582e5c31af7Sopenharmony_ci 4583e5c31af7Sopenharmony_ci both "" 4584e5c31af7Sopenharmony_ci #version 310 es 4585e5c31af7Sopenharmony_ci precision highp float; 4586e5c31af7Sopenharmony_ci ${DECLARATIONS} 4587e5c31af7Sopenharmony_ci 4588e5c31af7Sopenharmony_ci void main() 4589e5c31af7Sopenharmony_ci { 4590e5c31af7Sopenharmony_ci ${SETUP} 4591e5c31af7Sopenharmony_ci out0 = 2.0 != in0; 4592e5c31af7Sopenharmony_ci ${OUTPUT} 4593e5c31af7Sopenharmony_ci } 4594e5c31af7Sopenharmony_ci "" 4595e5c31af7Sopenharmony_ci end 4596e5c31af7Sopenharmony_ci case ivec2_to_uvec2 4597e5c31af7Sopenharmony_ci version 310 es 4598e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4599e5c31af7Sopenharmony_ci values 4600e5c31af7Sopenharmony_ci { 4601e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 4602e5c31af7Sopenharmony_ci output bool out0 = [ false | true | true ]; 4603e5c31af7Sopenharmony_ci } 4604e5c31af7Sopenharmony_ci 4605e5c31af7Sopenharmony_ci both "" 4606e5c31af7Sopenharmony_ci #version 310 es 4607e5c31af7Sopenharmony_ci precision highp float; 4608e5c31af7Sopenharmony_ci ${DECLARATIONS} 4609e5c31af7Sopenharmony_ci 4610e5c31af7Sopenharmony_ci void main() 4611e5c31af7Sopenharmony_ci { 4612e5c31af7Sopenharmony_ci ${SETUP} 4613e5c31af7Sopenharmony_ci out0 = uvec2(1, 2) != in0; 4614e5c31af7Sopenharmony_ci ${OUTPUT} 4615e5c31af7Sopenharmony_ci } 4616e5c31af7Sopenharmony_ci "" 4617e5c31af7Sopenharmony_ci end 4618e5c31af7Sopenharmony_ci case ivec2_to_vec2 4619e5c31af7Sopenharmony_ci version 310 es 4620e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4621e5c31af7Sopenharmony_ci values 4622e5c31af7Sopenharmony_ci { 4623e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 4624e5c31af7Sopenharmony_ci output bool out0 = [ false | true | true ]; 4625e5c31af7Sopenharmony_ci } 4626e5c31af7Sopenharmony_ci 4627e5c31af7Sopenharmony_ci both "" 4628e5c31af7Sopenharmony_ci #version 310 es 4629e5c31af7Sopenharmony_ci precision highp float; 4630e5c31af7Sopenharmony_ci ${DECLARATIONS} 4631e5c31af7Sopenharmony_ci 4632e5c31af7Sopenharmony_ci void main() 4633e5c31af7Sopenharmony_ci { 4634e5c31af7Sopenharmony_ci ${SETUP} 4635e5c31af7Sopenharmony_ci out0 = vec2(1.0, 2.0) != in0; 4636e5c31af7Sopenharmony_ci ${OUTPUT} 4637e5c31af7Sopenharmony_ci } 4638e5c31af7Sopenharmony_ci "" 4639e5c31af7Sopenharmony_ci end 4640e5c31af7Sopenharmony_ci case uvec2_to_vec2 4641e5c31af7Sopenharmony_ci version 310 es 4642e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4643e5c31af7Sopenharmony_ci values 4644e5c31af7Sopenharmony_ci { 4645e5c31af7Sopenharmony_ci input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 4646e5c31af7Sopenharmony_ci output bool out0 = [ true | true | true ]; 4647e5c31af7Sopenharmony_ci } 4648e5c31af7Sopenharmony_ci 4649e5c31af7Sopenharmony_ci both "" 4650e5c31af7Sopenharmony_ci #version 310 es 4651e5c31af7Sopenharmony_ci precision highp float; 4652e5c31af7Sopenharmony_ci ${DECLARATIONS} 4653e5c31af7Sopenharmony_ci 4654e5c31af7Sopenharmony_ci void main() 4655e5c31af7Sopenharmony_ci { 4656e5c31af7Sopenharmony_ci ${SETUP} 4657e5c31af7Sopenharmony_ci out0 = vec2(1.0, 2.0) != in0; 4658e5c31af7Sopenharmony_ci ${OUTPUT} 4659e5c31af7Sopenharmony_ci } 4660e5c31af7Sopenharmony_ci "" 4661e5c31af7Sopenharmony_ci end 4662e5c31af7Sopenharmony_ci case ivec3_to_uvec3 4663e5c31af7Sopenharmony_ci version 310 es 4664e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4665e5c31af7Sopenharmony_ci values 4666e5c31af7Sopenharmony_ci { 4667e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 4668e5c31af7Sopenharmony_ci output bool out0 = [ false | true | true ]; 4669e5c31af7Sopenharmony_ci } 4670e5c31af7Sopenharmony_ci 4671e5c31af7Sopenharmony_ci both "" 4672e5c31af7Sopenharmony_ci #version 310 es 4673e5c31af7Sopenharmony_ci precision highp float; 4674e5c31af7Sopenharmony_ci ${DECLARATIONS} 4675e5c31af7Sopenharmony_ci 4676e5c31af7Sopenharmony_ci void main() 4677e5c31af7Sopenharmony_ci { 4678e5c31af7Sopenharmony_ci ${SETUP} 4679e5c31af7Sopenharmony_ci out0 = uvec3(1, 2, 3) != in0; 4680e5c31af7Sopenharmony_ci ${OUTPUT} 4681e5c31af7Sopenharmony_ci } 4682e5c31af7Sopenharmony_ci "" 4683e5c31af7Sopenharmony_ci end 4684e5c31af7Sopenharmony_ci case ivec3_to_vec3 4685e5c31af7Sopenharmony_ci version 310 es 4686e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4687e5c31af7Sopenharmony_ci values 4688e5c31af7Sopenharmony_ci { 4689e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 4690e5c31af7Sopenharmony_ci output bool out0 = [ false | true | true ]; 4691e5c31af7Sopenharmony_ci } 4692e5c31af7Sopenharmony_ci 4693e5c31af7Sopenharmony_ci both "" 4694e5c31af7Sopenharmony_ci #version 310 es 4695e5c31af7Sopenharmony_ci precision highp float; 4696e5c31af7Sopenharmony_ci ${DECLARATIONS} 4697e5c31af7Sopenharmony_ci 4698e5c31af7Sopenharmony_ci void main() 4699e5c31af7Sopenharmony_ci { 4700e5c31af7Sopenharmony_ci ${SETUP} 4701e5c31af7Sopenharmony_ci out0 = vec3(1.0, 2.0, 3.0) != in0; 4702e5c31af7Sopenharmony_ci ${OUTPUT} 4703e5c31af7Sopenharmony_ci } 4704e5c31af7Sopenharmony_ci "" 4705e5c31af7Sopenharmony_ci end 4706e5c31af7Sopenharmony_ci case uvec3_to_vec3 4707e5c31af7Sopenharmony_ci version 310 es 4708e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4709e5c31af7Sopenharmony_ci values 4710e5c31af7Sopenharmony_ci { 4711e5c31af7Sopenharmony_ci input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 4712e5c31af7Sopenharmony_ci output bool out0 = [ true | true | true ]; 4713e5c31af7Sopenharmony_ci } 4714e5c31af7Sopenharmony_ci 4715e5c31af7Sopenharmony_ci both "" 4716e5c31af7Sopenharmony_ci #version 310 es 4717e5c31af7Sopenharmony_ci precision highp float; 4718e5c31af7Sopenharmony_ci ${DECLARATIONS} 4719e5c31af7Sopenharmony_ci 4720e5c31af7Sopenharmony_ci void main() 4721e5c31af7Sopenharmony_ci { 4722e5c31af7Sopenharmony_ci ${SETUP} 4723e5c31af7Sopenharmony_ci out0 = vec3(1.0, 2.0, 3.0) != in0; 4724e5c31af7Sopenharmony_ci ${OUTPUT} 4725e5c31af7Sopenharmony_ci } 4726e5c31af7Sopenharmony_ci "" 4727e5c31af7Sopenharmony_ci end 4728e5c31af7Sopenharmony_ci case ivec4_to_uvec4 4729e5c31af7Sopenharmony_ci version 310 es 4730e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4731e5c31af7Sopenharmony_ci values 4732e5c31af7Sopenharmony_ci { 4733e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 4734e5c31af7Sopenharmony_ci output bool out0 = [ false | true | true ]; 4735e5c31af7Sopenharmony_ci } 4736e5c31af7Sopenharmony_ci 4737e5c31af7Sopenharmony_ci both "" 4738e5c31af7Sopenharmony_ci #version 310 es 4739e5c31af7Sopenharmony_ci precision highp float; 4740e5c31af7Sopenharmony_ci ${DECLARATIONS} 4741e5c31af7Sopenharmony_ci 4742e5c31af7Sopenharmony_ci void main() 4743e5c31af7Sopenharmony_ci { 4744e5c31af7Sopenharmony_ci ${SETUP} 4745e5c31af7Sopenharmony_ci out0 = uvec4(1, 2, 3, 4) != in0; 4746e5c31af7Sopenharmony_ci ${OUTPUT} 4747e5c31af7Sopenharmony_ci } 4748e5c31af7Sopenharmony_ci "" 4749e5c31af7Sopenharmony_ci end 4750e5c31af7Sopenharmony_ci case ivec4_to_vec4 4751e5c31af7Sopenharmony_ci version 310 es 4752e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4753e5c31af7Sopenharmony_ci values 4754e5c31af7Sopenharmony_ci { 4755e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 4756e5c31af7Sopenharmony_ci output bool out0 = [ false | true | true ]; 4757e5c31af7Sopenharmony_ci } 4758e5c31af7Sopenharmony_ci 4759e5c31af7Sopenharmony_ci both "" 4760e5c31af7Sopenharmony_ci #version 310 es 4761e5c31af7Sopenharmony_ci precision highp float; 4762e5c31af7Sopenharmony_ci ${DECLARATIONS} 4763e5c31af7Sopenharmony_ci 4764e5c31af7Sopenharmony_ci void main() 4765e5c31af7Sopenharmony_ci { 4766e5c31af7Sopenharmony_ci ${SETUP} 4767e5c31af7Sopenharmony_ci out0 = vec4(1.0, 2.0, 3.0, 4.0) != in0; 4768e5c31af7Sopenharmony_ci ${OUTPUT} 4769e5c31af7Sopenharmony_ci } 4770e5c31af7Sopenharmony_ci "" 4771e5c31af7Sopenharmony_ci end 4772e5c31af7Sopenharmony_ci case uvec4_to_vec4 4773e5c31af7Sopenharmony_ci version 310 es 4774e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4775e5c31af7Sopenharmony_ci values 4776e5c31af7Sopenharmony_ci { 4777e5c31af7Sopenharmony_ci input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 4778e5c31af7Sopenharmony_ci output bool out0 = [ true | true | true ]; 4779e5c31af7Sopenharmony_ci } 4780e5c31af7Sopenharmony_ci 4781e5c31af7Sopenharmony_ci both "" 4782e5c31af7Sopenharmony_ci #version 310 es 4783e5c31af7Sopenharmony_ci precision highp float; 4784e5c31af7Sopenharmony_ci ${DECLARATIONS} 4785e5c31af7Sopenharmony_ci 4786e5c31af7Sopenharmony_ci void main() 4787e5c31af7Sopenharmony_ci { 4788e5c31af7Sopenharmony_ci ${SETUP} 4789e5c31af7Sopenharmony_ci out0 = vec4(1.0, 2.0, 3.0, 4.0) != in0; 4790e5c31af7Sopenharmony_ci ${OUTPUT} 4791e5c31af7Sopenharmony_ci } 4792e5c31af7Sopenharmony_ci "" 4793e5c31af7Sopenharmony_ci end 4794e5c31af7Sopenharmony_ci 4795e5c31af7Sopenharmony_ci end # not_equal 4796e5c31af7Sopenharmony_ci group less "Less than" 4797e5c31af7Sopenharmony_ci 4798e5c31af7Sopenharmony_ci case int_to_float 4799e5c31af7Sopenharmony_ci version 310 es 4800e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4801e5c31af7Sopenharmony_ci values 4802e5c31af7Sopenharmony_ci { 4803e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 4804e5c31af7Sopenharmony_ci output bool out0 = [ false | false | false | true | true ]; 4805e5c31af7Sopenharmony_ci } 4806e5c31af7Sopenharmony_ci 4807e5c31af7Sopenharmony_ci both "" 4808e5c31af7Sopenharmony_ci #version 310 es 4809e5c31af7Sopenharmony_ci precision highp float; 4810e5c31af7Sopenharmony_ci ${DECLARATIONS} 4811e5c31af7Sopenharmony_ci 4812e5c31af7Sopenharmony_ci void main() 4813e5c31af7Sopenharmony_ci { 4814e5c31af7Sopenharmony_ci ${SETUP} 4815e5c31af7Sopenharmony_ci out0 = 2.0 < in0; 4816e5c31af7Sopenharmony_ci ${OUTPUT} 4817e5c31af7Sopenharmony_ci } 4818e5c31af7Sopenharmony_ci "" 4819e5c31af7Sopenharmony_ci end 4820e5c31af7Sopenharmony_ci case int_to_uint 4821e5c31af7Sopenharmony_ci version 310 es 4822e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4823e5c31af7Sopenharmony_ci values 4824e5c31af7Sopenharmony_ci { 4825e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 4826e5c31af7Sopenharmony_ci output bool out0 = [ false | false | false | true | true ]; 4827e5c31af7Sopenharmony_ci } 4828e5c31af7Sopenharmony_ci 4829e5c31af7Sopenharmony_ci both "" 4830e5c31af7Sopenharmony_ci #version 310 es 4831e5c31af7Sopenharmony_ci precision highp float; 4832e5c31af7Sopenharmony_ci ${DECLARATIONS} 4833e5c31af7Sopenharmony_ci 4834e5c31af7Sopenharmony_ci void main() 4835e5c31af7Sopenharmony_ci { 4836e5c31af7Sopenharmony_ci ${SETUP} 4837e5c31af7Sopenharmony_ci out0 = 2 < in0; 4838e5c31af7Sopenharmony_ci ${OUTPUT} 4839e5c31af7Sopenharmony_ci } 4840e5c31af7Sopenharmony_ci "" 4841e5c31af7Sopenharmony_ci end 4842e5c31af7Sopenharmony_ci case uint_to_float 4843e5c31af7Sopenharmony_ci version 310 es 4844e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4845e5c31af7Sopenharmony_ci values 4846e5c31af7Sopenharmony_ci { 4847e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 4848e5c31af7Sopenharmony_ci output bool out0 = [ false | true | true | true | true ]; 4849e5c31af7Sopenharmony_ci } 4850e5c31af7Sopenharmony_ci 4851e5c31af7Sopenharmony_ci both "" 4852e5c31af7Sopenharmony_ci #version 310 es 4853e5c31af7Sopenharmony_ci precision highp float; 4854e5c31af7Sopenharmony_ci ${DECLARATIONS} 4855e5c31af7Sopenharmony_ci 4856e5c31af7Sopenharmony_ci void main() 4857e5c31af7Sopenharmony_ci { 4858e5c31af7Sopenharmony_ci ${SETUP} 4859e5c31af7Sopenharmony_ci out0 = 2.0 < in0; 4860e5c31af7Sopenharmony_ci ${OUTPUT} 4861e5c31af7Sopenharmony_ci } 4862e5c31af7Sopenharmony_ci "" 4863e5c31af7Sopenharmony_ci end 4864e5c31af7Sopenharmony_ci 4865e5c31af7Sopenharmony_ci end # less 4866e5c31af7Sopenharmony_ci group greater "Greater than" 4867e5c31af7Sopenharmony_ci 4868e5c31af7Sopenharmony_ci case int_to_float 4869e5c31af7Sopenharmony_ci version 310 es 4870e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4871e5c31af7Sopenharmony_ci values 4872e5c31af7Sopenharmony_ci { 4873e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 4874e5c31af7Sopenharmony_ci output bool out0 = [ false | true | true | false | false ]; 4875e5c31af7Sopenharmony_ci } 4876e5c31af7Sopenharmony_ci 4877e5c31af7Sopenharmony_ci both "" 4878e5c31af7Sopenharmony_ci #version 310 es 4879e5c31af7Sopenharmony_ci precision highp float; 4880e5c31af7Sopenharmony_ci ${DECLARATIONS} 4881e5c31af7Sopenharmony_ci 4882e5c31af7Sopenharmony_ci void main() 4883e5c31af7Sopenharmony_ci { 4884e5c31af7Sopenharmony_ci ${SETUP} 4885e5c31af7Sopenharmony_ci out0 = 2.0 > in0; 4886e5c31af7Sopenharmony_ci ${OUTPUT} 4887e5c31af7Sopenharmony_ci } 4888e5c31af7Sopenharmony_ci "" 4889e5c31af7Sopenharmony_ci end 4890e5c31af7Sopenharmony_ci case int_to_uint 4891e5c31af7Sopenharmony_ci version 310 es 4892e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4893e5c31af7Sopenharmony_ci values 4894e5c31af7Sopenharmony_ci { 4895e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 4896e5c31af7Sopenharmony_ci output bool out0 = [ false | true | true | false | false ]; 4897e5c31af7Sopenharmony_ci } 4898e5c31af7Sopenharmony_ci 4899e5c31af7Sopenharmony_ci both "" 4900e5c31af7Sopenharmony_ci #version 310 es 4901e5c31af7Sopenharmony_ci precision highp float; 4902e5c31af7Sopenharmony_ci ${DECLARATIONS} 4903e5c31af7Sopenharmony_ci 4904e5c31af7Sopenharmony_ci void main() 4905e5c31af7Sopenharmony_ci { 4906e5c31af7Sopenharmony_ci ${SETUP} 4907e5c31af7Sopenharmony_ci out0 = 2 > in0; 4908e5c31af7Sopenharmony_ci ${OUTPUT} 4909e5c31af7Sopenharmony_ci } 4910e5c31af7Sopenharmony_ci "" 4911e5c31af7Sopenharmony_ci end 4912e5c31af7Sopenharmony_ci case uint_to_float 4913e5c31af7Sopenharmony_ci version 310 es 4914e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4915e5c31af7Sopenharmony_ci values 4916e5c31af7Sopenharmony_ci { 4917e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 4918e5c31af7Sopenharmony_ci output bool out0 = [ true | false | false | false | false ]; 4919e5c31af7Sopenharmony_ci } 4920e5c31af7Sopenharmony_ci 4921e5c31af7Sopenharmony_ci both "" 4922e5c31af7Sopenharmony_ci #version 310 es 4923e5c31af7Sopenharmony_ci precision highp float; 4924e5c31af7Sopenharmony_ci ${DECLARATIONS} 4925e5c31af7Sopenharmony_ci 4926e5c31af7Sopenharmony_ci void main() 4927e5c31af7Sopenharmony_ci { 4928e5c31af7Sopenharmony_ci ${SETUP} 4929e5c31af7Sopenharmony_ci out0 = 2.0 > in0; 4930e5c31af7Sopenharmony_ci ${OUTPUT} 4931e5c31af7Sopenharmony_ci } 4932e5c31af7Sopenharmony_ci "" 4933e5c31af7Sopenharmony_ci end 4934e5c31af7Sopenharmony_ci 4935e5c31af7Sopenharmony_ci end # greater 4936e5c31af7Sopenharmony_ci group less_or_equal "Less than or equal" 4937e5c31af7Sopenharmony_ci 4938e5c31af7Sopenharmony_ci case int_to_float 4939e5c31af7Sopenharmony_ci version 310 es 4940e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4941e5c31af7Sopenharmony_ci values 4942e5c31af7Sopenharmony_ci { 4943e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 4944e5c31af7Sopenharmony_ci output bool out0 = [ true | false | false | true | true ]; 4945e5c31af7Sopenharmony_ci } 4946e5c31af7Sopenharmony_ci 4947e5c31af7Sopenharmony_ci both "" 4948e5c31af7Sopenharmony_ci #version 310 es 4949e5c31af7Sopenharmony_ci precision highp float; 4950e5c31af7Sopenharmony_ci ${DECLARATIONS} 4951e5c31af7Sopenharmony_ci 4952e5c31af7Sopenharmony_ci void main() 4953e5c31af7Sopenharmony_ci { 4954e5c31af7Sopenharmony_ci ${SETUP} 4955e5c31af7Sopenharmony_ci out0 = 2.0 <= in0; 4956e5c31af7Sopenharmony_ci ${OUTPUT} 4957e5c31af7Sopenharmony_ci } 4958e5c31af7Sopenharmony_ci "" 4959e5c31af7Sopenharmony_ci end 4960e5c31af7Sopenharmony_ci case int_to_uint 4961e5c31af7Sopenharmony_ci version 310 es 4962e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4963e5c31af7Sopenharmony_ci values 4964e5c31af7Sopenharmony_ci { 4965e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 4966e5c31af7Sopenharmony_ci output bool out0 = [ true | false | false | true | true ]; 4967e5c31af7Sopenharmony_ci } 4968e5c31af7Sopenharmony_ci 4969e5c31af7Sopenharmony_ci both "" 4970e5c31af7Sopenharmony_ci #version 310 es 4971e5c31af7Sopenharmony_ci precision highp float; 4972e5c31af7Sopenharmony_ci ${DECLARATIONS} 4973e5c31af7Sopenharmony_ci 4974e5c31af7Sopenharmony_ci void main() 4975e5c31af7Sopenharmony_ci { 4976e5c31af7Sopenharmony_ci ${SETUP} 4977e5c31af7Sopenharmony_ci out0 = 2 <= in0; 4978e5c31af7Sopenharmony_ci ${OUTPUT} 4979e5c31af7Sopenharmony_ci } 4980e5c31af7Sopenharmony_ci "" 4981e5c31af7Sopenharmony_ci end 4982e5c31af7Sopenharmony_ci case uint_to_float 4983e5c31af7Sopenharmony_ci version 310 es 4984e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4985e5c31af7Sopenharmony_ci values 4986e5c31af7Sopenharmony_ci { 4987e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 4988e5c31af7Sopenharmony_ci output bool out0 = [ false | true | true | true | true ]; 4989e5c31af7Sopenharmony_ci } 4990e5c31af7Sopenharmony_ci 4991e5c31af7Sopenharmony_ci both "" 4992e5c31af7Sopenharmony_ci #version 310 es 4993e5c31af7Sopenharmony_ci precision highp float; 4994e5c31af7Sopenharmony_ci ${DECLARATIONS} 4995e5c31af7Sopenharmony_ci 4996e5c31af7Sopenharmony_ci void main() 4997e5c31af7Sopenharmony_ci { 4998e5c31af7Sopenharmony_ci ${SETUP} 4999e5c31af7Sopenharmony_ci out0 = 2.0 <= in0; 5000e5c31af7Sopenharmony_ci ${OUTPUT} 5001e5c31af7Sopenharmony_ci } 5002e5c31af7Sopenharmony_ci "" 5003e5c31af7Sopenharmony_ci end 5004e5c31af7Sopenharmony_ci 5005e5c31af7Sopenharmony_ci end # less_or_equal 5006e5c31af7Sopenharmony_ci group greater_or_equal "Greater than or equal" 5007e5c31af7Sopenharmony_ci 5008e5c31af7Sopenharmony_ci case int_to_float 5009e5c31af7Sopenharmony_ci version 310 es 5010e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5011e5c31af7Sopenharmony_ci values 5012e5c31af7Sopenharmony_ci { 5013e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 5014e5c31af7Sopenharmony_ci output bool out0 = [ true | true | true | false | false ]; 5015e5c31af7Sopenharmony_ci } 5016e5c31af7Sopenharmony_ci 5017e5c31af7Sopenharmony_ci both "" 5018e5c31af7Sopenharmony_ci #version 310 es 5019e5c31af7Sopenharmony_ci precision highp float; 5020e5c31af7Sopenharmony_ci ${DECLARATIONS} 5021e5c31af7Sopenharmony_ci 5022e5c31af7Sopenharmony_ci void main() 5023e5c31af7Sopenharmony_ci { 5024e5c31af7Sopenharmony_ci ${SETUP} 5025e5c31af7Sopenharmony_ci out0 = 2.0 >= in0; 5026e5c31af7Sopenharmony_ci ${OUTPUT} 5027e5c31af7Sopenharmony_ci } 5028e5c31af7Sopenharmony_ci "" 5029e5c31af7Sopenharmony_ci end 5030e5c31af7Sopenharmony_ci case int_to_uint 5031e5c31af7Sopenharmony_ci version 310 es 5032e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5033e5c31af7Sopenharmony_ci values 5034e5c31af7Sopenharmony_ci { 5035e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 5036e5c31af7Sopenharmony_ci output bool out0 = [ true | true | true | false | false ]; 5037e5c31af7Sopenharmony_ci } 5038e5c31af7Sopenharmony_ci 5039e5c31af7Sopenharmony_ci both "" 5040e5c31af7Sopenharmony_ci #version 310 es 5041e5c31af7Sopenharmony_ci precision highp float; 5042e5c31af7Sopenharmony_ci ${DECLARATIONS} 5043e5c31af7Sopenharmony_ci 5044e5c31af7Sopenharmony_ci void main() 5045e5c31af7Sopenharmony_ci { 5046e5c31af7Sopenharmony_ci ${SETUP} 5047e5c31af7Sopenharmony_ci out0 = 2 >= in0; 5048e5c31af7Sopenharmony_ci ${OUTPUT} 5049e5c31af7Sopenharmony_ci } 5050e5c31af7Sopenharmony_ci "" 5051e5c31af7Sopenharmony_ci end 5052e5c31af7Sopenharmony_ci case uint_to_float 5053e5c31af7Sopenharmony_ci version 310 es 5054e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5055e5c31af7Sopenharmony_ci values 5056e5c31af7Sopenharmony_ci { 5057e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 5058e5c31af7Sopenharmony_ci output bool out0 = [ true | false | false | false | false ]; 5059e5c31af7Sopenharmony_ci } 5060e5c31af7Sopenharmony_ci 5061e5c31af7Sopenharmony_ci both "" 5062e5c31af7Sopenharmony_ci #version 310 es 5063e5c31af7Sopenharmony_ci precision highp float; 5064e5c31af7Sopenharmony_ci ${DECLARATIONS} 5065e5c31af7Sopenharmony_ci 5066e5c31af7Sopenharmony_ci void main() 5067e5c31af7Sopenharmony_ci { 5068e5c31af7Sopenharmony_ci ${SETUP} 5069e5c31af7Sopenharmony_ci out0 = 2.0 >= in0; 5070e5c31af7Sopenharmony_ci ${OUTPUT} 5071e5c31af7Sopenharmony_ci } 5072e5c31af7Sopenharmony_ci "" 5073e5c31af7Sopenharmony_ci end 5074e5c31af7Sopenharmony_ci 5075e5c31af7Sopenharmony_ci end # greater_or_equal 5076e5c31af7Sopenharmony_ci 5077e5c31af7Sopenharmony_ci end # literal_before_input 5078e5c31af7Sopenharmony_ci 5079e5c31af7Sopenharmony_ciend # comparisons 5080e5c31af7Sopenharmony_cigroup array_subscripts "Array subscripts" 5081e5c31af7Sopenharmony_ci 5082e5c31af7Sopenharmony_ci group input_before_subscript "Input before subscript" 5083e5c31af7Sopenharmony_ci 5084e5c31af7Sopenharmony_ci case int_to_float 5085e5c31af7Sopenharmony_ci version 310 es 5086e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5087e5c31af7Sopenharmony_ci values 5088e5c31af7Sopenharmony_ci { 5089e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 5090e5c31af7Sopenharmony_ci output float out0 = [ 3.0 | 2.0 | 2.0 | 4.0 | 6.0 ]; 5091e5c31af7Sopenharmony_ci } 5092e5c31af7Sopenharmony_ci 5093e5c31af7Sopenharmony_ci both "" 5094e5c31af7Sopenharmony_ci #version 310 es 5095e5c31af7Sopenharmony_ci precision highp float; 5096e5c31af7Sopenharmony_ci ${DECLARATIONS} 5097e5c31af7Sopenharmony_ci 5098e5c31af7Sopenharmony_ci void main() 5099e5c31af7Sopenharmony_ci { 5100e5c31af7Sopenharmony_ci ${SETUP} 5101e5c31af7Sopenharmony_ci float[] x = float[] (2.0, 1.0, 1.0, 3.0, 5.0); 5102e5c31af7Sopenharmony_ci out0 = in0 + x[1]; 5103e5c31af7Sopenharmony_ci ${OUTPUT} 5104e5c31af7Sopenharmony_ci } 5105e5c31af7Sopenharmony_ci "" 5106e5c31af7Sopenharmony_ci end 5107e5c31af7Sopenharmony_ci case int_to_uint 5108e5c31af7Sopenharmony_ci version 310 es 5109e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5110e5c31af7Sopenharmony_ci values 5111e5c31af7Sopenharmony_ci { 5112e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 5113e5c31af7Sopenharmony_ci output uint out0 = [ 5 | 4 | 4 | 6 | 8 ]; 5114e5c31af7Sopenharmony_ci } 5115e5c31af7Sopenharmony_ci 5116e5c31af7Sopenharmony_ci both "" 5117e5c31af7Sopenharmony_ci #version 310 es 5118e5c31af7Sopenharmony_ci precision highp float; 5119e5c31af7Sopenharmony_ci ${DECLARATIONS} 5120e5c31af7Sopenharmony_ci 5121e5c31af7Sopenharmony_ci void main() 5122e5c31af7Sopenharmony_ci { 5123e5c31af7Sopenharmony_ci ${SETUP} 5124e5c31af7Sopenharmony_ci uint[] x = uint[] (1, 3, 4, 7, 11); 5125e5c31af7Sopenharmony_ci out0 = in0 + x[1]; 5126e5c31af7Sopenharmony_ci ${OUTPUT} 5127e5c31af7Sopenharmony_ci } 5128e5c31af7Sopenharmony_ci "" 5129e5c31af7Sopenharmony_ci end 5130e5c31af7Sopenharmony_ci case int_to_vec2 5131e5c31af7Sopenharmony_ci version 310 es 5132e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5133e5c31af7Sopenharmony_ci values 5134e5c31af7Sopenharmony_ci { 5135e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 5136e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(4.0, 3.0) | vec2(3.0, 2.0) | vec2(3.0, 2.0) | vec2(5.0, 4.0) | vec2(7.0, 6.0) ]; 5137e5c31af7Sopenharmony_ci } 5138e5c31af7Sopenharmony_ci 5139e5c31af7Sopenharmony_ci both "" 5140e5c31af7Sopenharmony_ci #version 310 es 5141e5c31af7Sopenharmony_ci precision highp float; 5142e5c31af7Sopenharmony_ci ${DECLARATIONS} 5143e5c31af7Sopenharmony_ci 5144e5c31af7Sopenharmony_ci void main() 5145e5c31af7Sopenharmony_ci { 5146e5c31af7Sopenharmony_ci ${SETUP} 5147e5c31af7Sopenharmony_ci vec2[] x = vec2[] (vec2(1.0, 2.0), vec2(2.0, 1.0), vec2(3.0, 7.0)); 5148e5c31af7Sopenharmony_ci out0 = in0 + x[1]; 5149e5c31af7Sopenharmony_ci ${OUTPUT} 5150e5c31af7Sopenharmony_ci } 5151e5c31af7Sopenharmony_ci "" 5152e5c31af7Sopenharmony_ci end 5153e5c31af7Sopenharmony_ci case int_to_vec3 5154e5c31af7Sopenharmony_ci version 310 es 5155e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5156e5c31af7Sopenharmony_ci values 5157e5c31af7Sopenharmony_ci { 5158e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 5159e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(4.0, 3.0, 4.0) | vec3(3.0, 2.0, 3.0) | vec3(3.0, 2.0, 3.0) | vec3(5.0, 4.0, 5.0) | vec3(7.0, 6.0, 7.0) ]; 5160e5c31af7Sopenharmony_ci } 5161e5c31af7Sopenharmony_ci 5162e5c31af7Sopenharmony_ci both "" 5163e5c31af7Sopenharmony_ci #version 310 es 5164e5c31af7Sopenharmony_ci precision highp float; 5165e5c31af7Sopenharmony_ci ${DECLARATIONS} 5166e5c31af7Sopenharmony_ci 5167e5c31af7Sopenharmony_ci void main() 5168e5c31af7Sopenharmony_ci { 5169e5c31af7Sopenharmony_ci ${SETUP} 5170e5c31af7Sopenharmony_ci vec3[] x = vec3[] (vec3(1.0, 2.0, 3.0), vec3(2.0, 1.0, 2.0), vec3(3.0, 7.0, 2.0)); 5171e5c31af7Sopenharmony_ci out0 = in0 + x[1]; 5172e5c31af7Sopenharmony_ci ${OUTPUT} 5173e5c31af7Sopenharmony_ci } 5174e5c31af7Sopenharmony_ci "" 5175e5c31af7Sopenharmony_ci end 5176e5c31af7Sopenharmony_ci case int_to_vec4 5177e5c31af7Sopenharmony_ci version 310 es 5178e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5179e5c31af7Sopenharmony_ci values 5180e5c31af7Sopenharmony_ci { 5181e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 5182e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(4.0, 3.0, 4.0, 8.0) | vec4(3.0, 2.0, 3.0, 7.0) | vec4(3.0, 2.0, 3.0, 7.0) | vec4(5.0, 4.0, 5.0, 9.0) | vec4(7.0, 6.0, 7.0, 11.0) ]; 5183e5c31af7Sopenharmony_ci } 5184e5c31af7Sopenharmony_ci 5185e5c31af7Sopenharmony_ci both "" 5186e5c31af7Sopenharmony_ci #version 310 es 5187e5c31af7Sopenharmony_ci precision highp float; 5188e5c31af7Sopenharmony_ci ${DECLARATIONS} 5189e5c31af7Sopenharmony_ci 5190e5c31af7Sopenharmony_ci void main() 5191e5c31af7Sopenharmony_ci { 5192e5c31af7Sopenharmony_ci ${SETUP} 5193e5c31af7Sopenharmony_ci vec4[] x = vec4[] (vec4(1.0, 2.0, 3.0, 4.0), vec4(2.0, 1.0, 2.0, 6.0), vec4(3.0, 7.0, 2.0, 5.0)); 5194e5c31af7Sopenharmony_ci out0 = in0 + x[1]; 5195e5c31af7Sopenharmony_ci ${OUTPUT} 5196e5c31af7Sopenharmony_ci } 5197e5c31af7Sopenharmony_ci "" 5198e5c31af7Sopenharmony_ci end 5199e5c31af7Sopenharmony_ci case int_to_uvec2 5200e5c31af7Sopenharmony_ci version 310 es 5201e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5202e5c31af7Sopenharmony_ci values 5203e5c31af7Sopenharmony_ci { 5204e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 5205e5c31af7Sopenharmony_ci output uvec2 out0 = [ uvec2(6, 8) | uvec2(5, 7) | uvec2(5, 7) | uvec2(7, 9) | uvec2(9, 11) ]; 5206e5c31af7Sopenharmony_ci } 5207e5c31af7Sopenharmony_ci 5208e5c31af7Sopenharmony_ci both "" 5209e5c31af7Sopenharmony_ci #version 310 es 5210e5c31af7Sopenharmony_ci precision highp float; 5211e5c31af7Sopenharmony_ci ${DECLARATIONS} 5212e5c31af7Sopenharmony_ci 5213e5c31af7Sopenharmony_ci void main() 5214e5c31af7Sopenharmony_ci { 5215e5c31af7Sopenharmony_ci ${SETUP} 5216e5c31af7Sopenharmony_ci uvec2[] x = uvec2[] (uvec2(2, 3), uvec2(4, 6), uvec2(1, 13)); 5217e5c31af7Sopenharmony_ci out0 = in0 + x[1]; 5218e5c31af7Sopenharmony_ci ${OUTPUT} 5219e5c31af7Sopenharmony_ci } 5220e5c31af7Sopenharmony_ci "" 5221e5c31af7Sopenharmony_ci end 5222e5c31af7Sopenharmony_ci case int_to_uvec3 5223e5c31af7Sopenharmony_ci version 310 es 5224e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5225e5c31af7Sopenharmony_ci values 5226e5c31af7Sopenharmony_ci { 5227e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 5228e5c31af7Sopenharmony_ci output uvec3 out0 = [ uvec3(6, 8, 4) | uvec3(5, 7, 3) | uvec3(5, 7, 3) | uvec3(7, 9, 5) | uvec3(9, 11, 7) ]; 5229e5c31af7Sopenharmony_ci } 5230e5c31af7Sopenharmony_ci 5231e5c31af7Sopenharmony_ci both "" 5232e5c31af7Sopenharmony_ci #version 310 es 5233e5c31af7Sopenharmony_ci precision highp float; 5234e5c31af7Sopenharmony_ci ${DECLARATIONS} 5235e5c31af7Sopenharmony_ci 5236e5c31af7Sopenharmony_ci void main() 5237e5c31af7Sopenharmony_ci { 5238e5c31af7Sopenharmony_ci ${SETUP} 5239e5c31af7Sopenharmony_ci uvec3[] x = uvec3[] (uvec3(2, 3, 5), uvec3(4, 6, 2), uvec3(1, 13, 7)); 5240e5c31af7Sopenharmony_ci out0 = in0 + x[1]; 5241e5c31af7Sopenharmony_ci ${OUTPUT} 5242e5c31af7Sopenharmony_ci } 5243e5c31af7Sopenharmony_ci "" 5244e5c31af7Sopenharmony_ci end 5245e5c31af7Sopenharmony_ci case int_to_uvec4 5246e5c31af7Sopenharmony_ci version 310 es 5247e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5248e5c31af7Sopenharmony_ci values 5249e5c31af7Sopenharmony_ci { 5250e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 5251e5c31af7Sopenharmony_ci output uvec4 out0 = [ uvec4(6, 8, 4, 11) | uvec4(5, 7, 3, 10) | uvec4(5, 7, 3, 10) | uvec4(7, 9, 5, 12) | uvec4(9, 11, 7, 14) ]; 5252e5c31af7Sopenharmony_ci } 5253e5c31af7Sopenharmony_ci 5254e5c31af7Sopenharmony_ci both "" 5255e5c31af7Sopenharmony_ci #version 310 es 5256e5c31af7Sopenharmony_ci precision highp float; 5257e5c31af7Sopenharmony_ci ${DECLARATIONS} 5258e5c31af7Sopenharmony_ci 5259e5c31af7Sopenharmony_ci void main() 5260e5c31af7Sopenharmony_ci { 5261e5c31af7Sopenharmony_ci ${SETUP} 5262e5c31af7Sopenharmony_ci uvec4[] x = uvec4[] (uvec4(2, 3, 5, 8), uvec4(4, 6, 2, 9), uvec4(1, 13, 7, 4)); 5263e5c31af7Sopenharmony_ci out0 = in0 + x[1]; 5264e5c31af7Sopenharmony_ci ${OUTPUT} 5265e5c31af7Sopenharmony_ci } 5266e5c31af7Sopenharmony_ci "" 5267e5c31af7Sopenharmony_ci end 5268e5c31af7Sopenharmony_ci case uint_to_float 5269e5c31af7Sopenharmony_ci version 310 es 5270e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5271e5c31af7Sopenharmony_ci values 5272e5c31af7Sopenharmony_ci { 5273e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 5274e5c31af7Sopenharmony_ci output float out0 = [ 2.0 | 4.0 | 5.0 | 8.0 | 12.0 ]; 5275e5c31af7Sopenharmony_ci } 5276e5c31af7Sopenharmony_ci 5277e5c31af7Sopenharmony_ci both "" 5278e5c31af7Sopenharmony_ci #version 310 es 5279e5c31af7Sopenharmony_ci precision highp float; 5280e5c31af7Sopenharmony_ci ${DECLARATIONS} 5281e5c31af7Sopenharmony_ci 5282e5c31af7Sopenharmony_ci void main() 5283e5c31af7Sopenharmony_ci { 5284e5c31af7Sopenharmony_ci ${SETUP} 5285e5c31af7Sopenharmony_ci float[] x = float[] (2.0, 1.0, 1.0, 3.0, 5.0); 5286e5c31af7Sopenharmony_ci out0 = in0 + x[1]; 5287e5c31af7Sopenharmony_ci ${OUTPUT} 5288e5c31af7Sopenharmony_ci } 5289e5c31af7Sopenharmony_ci "" 5290e5c31af7Sopenharmony_ci end 5291e5c31af7Sopenharmony_ci case uint_to_vec2 5292e5c31af7Sopenharmony_ci version 310 es 5293e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5294e5c31af7Sopenharmony_ci values 5295e5c31af7Sopenharmony_ci { 5296e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 5297e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(3.0, 2.0) | vec2(5.0, 4.0) | vec2(6.0, 5.0) | vec2(9.0, 8.0) | vec2(13.0, 12.0) ]; 5298e5c31af7Sopenharmony_ci } 5299e5c31af7Sopenharmony_ci 5300e5c31af7Sopenharmony_ci both "" 5301e5c31af7Sopenharmony_ci #version 310 es 5302e5c31af7Sopenharmony_ci precision highp float; 5303e5c31af7Sopenharmony_ci ${DECLARATIONS} 5304e5c31af7Sopenharmony_ci 5305e5c31af7Sopenharmony_ci void main() 5306e5c31af7Sopenharmony_ci { 5307e5c31af7Sopenharmony_ci ${SETUP} 5308e5c31af7Sopenharmony_ci vec2[] x = vec2[] (vec2(1.0, 2.0), vec2(2.0, 1.0), vec2(3.0, 7.0)); 5309e5c31af7Sopenharmony_ci out0 = in0 + x[1]; 5310e5c31af7Sopenharmony_ci ${OUTPUT} 5311e5c31af7Sopenharmony_ci } 5312e5c31af7Sopenharmony_ci "" 5313e5c31af7Sopenharmony_ci end 5314e5c31af7Sopenharmony_ci case uint_to_vec3 5315e5c31af7Sopenharmony_ci version 310 es 5316e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5317e5c31af7Sopenharmony_ci values 5318e5c31af7Sopenharmony_ci { 5319e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 5320e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(3.0, 2.0, 3.0) | vec3(5.0, 4.0, 5.0) | vec3(6.0, 5.0, 6.0) | vec3(9.0, 8.0, 9.0) | vec3(13.0, 12.0, 13.0) ]; 5321e5c31af7Sopenharmony_ci } 5322e5c31af7Sopenharmony_ci 5323e5c31af7Sopenharmony_ci both "" 5324e5c31af7Sopenharmony_ci #version 310 es 5325e5c31af7Sopenharmony_ci precision highp float; 5326e5c31af7Sopenharmony_ci ${DECLARATIONS} 5327e5c31af7Sopenharmony_ci 5328e5c31af7Sopenharmony_ci void main() 5329e5c31af7Sopenharmony_ci { 5330e5c31af7Sopenharmony_ci ${SETUP} 5331e5c31af7Sopenharmony_ci vec3[] x = vec3[] (vec3(1.0, 2.0, 3.0), vec3(2.0, 1.0, 2.0), vec3(3.0, 7.0, 2.0)); 5332e5c31af7Sopenharmony_ci out0 = in0 + x[1]; 5333e5c31af7Sopenharmony_ci ${OUTPUT} 5334e5c31af7Sopenharmony_ci } 5335e5c31af7Sopenharmony_ci "" 5336e5c31af7Sopenharmony_ci end 5337e5c31af7Sopenharmony_ci case uint_to_vec4 5338e5c31af7Sopenharmony_ci version 310 es 5339e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5340e5c31af7Sopenharmony_ci values 5341e5c31af7Sopenharmony_ci { 5342e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 5343e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(3.0, 2.0, 3.0, 7.0) | vec4(5.0, 4.0, 5.0, 9.0) | vec4(6.0, 5.0, 6.0, 10.0) | vec4(9.0, 8.0, 9.0, 13.0) | vec4(13.0, 12.0, 13.0, 17.0) ]; 5344e5c31af7Sopenharmony_ci } 5345e5c31af7Sopenharmony_ci 5346e5c31af7Sopenharmony_ci both "" 5347e5c31af7Sopenharmony_ci #version 310 es 5348e5c31af7Sopenharmony_ci precision highp float; 5349e5c31af7Sopenharmony_ci ${DECLARATIONS} 5350e5c31af7Sopenharmony_ci 5351e5c31af7Sopenharmony_ci void main() 5352e5c31af7Sopenharmony_ci { 5353e5c31af7Sopenharmony_ci ${SETUP} 5354e5c31af7Sopenharmony_ci vec4[] x = vec4[] (vec4(1.0, 2.0, 3.0, 4.0), vec4(2.0, 1.0, 2.0, 6.0), vec4(3.0, 7.0, 2.0, 5.0)); 5355e5c31af7Sopenharmony_ci out0 = in0 + x[1]; 5356e5c31af7Sopenharmony_ci ${OUTPUT} 5357e5c31af7Sopenharmony_ci } 5358e5c31af7Sopenharmony_ci "" 5359e5c31af7Sopenharmony_ci end 5360e5c31af7Sopenharmony_ci case ivec2_to_uvec2 5361e5c31af7Sopenharmony_ci version 310 es 5362e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5363e5c31af7Sopenharmony_ci values 5364e5c31af7Sopenharmony_ci { 5365e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 5366e5c31af7Sopenharmony_ci output uvec2 out0 = [ uvec2(5, 8) | uvec2(6, 7) | uvec2(7, 13) ]; 5367e5c31af7Sopenharmony_ci } 5368e5c31af7Sopenharmony_ci 5369e5c31af7Sopenharmony_ci both "" 5370e5c31af7Sopenharmony_ci #version 310 es 5371e5c31af7Sopenharmony_ci precision highp float; 5372e5c31af7Sopenharmony_ci ${DECLARATIONS} 5373e5c31af7Sopenharmony_ci 5374e5c31af7Sopenharmony_ci void main() 5375e5c31af7Sopenharmony_ci { 5376e5c31af7Sopenharmony_ci ${SETUP} 5377e5c31af7Sopenharmony_ci uvec2[] x = uvec2[] (uvec2(2, 3), uvec2(4, 6), uvec2(1, 13)); 5378e5c31af7Sopenharmony_ci out0 = in0 + x[1]; 5379e5c31af7Sopenharmony_ci ${OUTPUT} 5380e5c31af7Sopenharmony_ci } 5381e5c31af7Sopenharmony_ci "" 5382e5c31af7Sopenharmony_ci end 5383e5c31af7Sopenharmony_ci case ivec2_to_vec2 5384e5c31af7Sopenharmony_ci version 310 es 5385e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5386e5c31af7Sopenharmony_ci values 5387e5c31af7Sopenharmony_ci { 5388e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 5389e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(3.0, 3.0) | vec2(4.0, 2.0) | vec2(5.0, 8.0) ]; 5390e5c31af7Sopenharmony_ci } 5391e5c31af7Sopenharmony_ci 5392e5c31af7Sopenharmony_ci both "" 5393e5c31af7Sopenharmony_ci #version 310 es 5394e5c31af7Sopenharmony_ci precision highp float; 5395e5c31af7Sopenharmony_ci ${DECLARATIONS} 5396e5c31af7Sopenharmony_ci 5397e5c31af7Sopenharmony_ci void main() 5398e5c31af7Sopenharmony_ci { 5399e5c31af7Sopenharmony_ci ${SETUP} 5400e5c31af7Sopenharmony_ci vec2[] x = vec2[] (vec2(1.0, 2.0), vec2(2.0, 1.0), vec2(3.0, 7.0)); 5401e5c31af7Sopenharmony_ci out0 = in0 + x[1]; 5402e5c31af7Sopenharmony_ci ${OUTPUT} 5403e5c31af7Sopenharmony_ci } 5404e5c31af7Sopenharmony_ci "" 5405e5c31af7Sopenharmony_ci end 5406e5c31af7Sopenharmony_ci case uvec2_to_vec2 5407e5c31af7Sopenharmony_ci version 310 es 5408e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5409e5c31af7Sopenharmony_ci values 5410e5c31af7Sopenharmony_ci { 5411e5c31af7Sopenharmony_ci input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 5412e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(4.0, 4.0) | vec2(6.0, 7.0) | vec2(3.0, 14.0) ]; 5413e5c31af7Sopenharmony_ci } 5414e5c31af7Sopenharmony_ci 5415e5c31af7Sopenharmony_ci both "" 5416e5c31af7Sopenharmony_ci #version 310 es 5417e5c31af7Sopenharmony_ci precision highp float; 5418e5c31af7Sopenharmony_ci ${DECLARATIONS} 5419e5c31af7Sopenharmony_ci 5420e5c31af7Sopenharmony_ci void main() 5421e5c31af7Sopenharmony_ci { 5422e5c31af7Sopenharmony_ci ${SETUP} 5423e5c31af7Sopenharmony_ci vec2[] x = vec2[] (vec2(1.0, 2.0), vec2(2.0, 1.0), vec2(3.0, 7.0)); 5424e5c31af7Sopenharmony_ci out0 = in0 + x[1]; 5425e5c31af7Sopenharmony_ci ${OUTPUT} 5426e5c31af7Sopenharmony_ci } 5427e5c31af7Sopenharmony_ci "" 5428e5c31af7Sopenharmony_ci end 5429e5c31af7Sopenharmony_ci case ivec3_to_uvec3 5430e5c31af7Sopenharmony_ci version 310 es 5431e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5432e5c31af7Sopenharmony_ci values 5433e5c31af7Sopenharmony_ci { 5434e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 5435e5c31af7Sopenharmony_ci output uvec3 out0 = [ uvec3(5, 8, 5) | uvec3(6, 7, 4) | uvec3(7, 13, 4) ]; 5436e5c31af7Sopenharmony_ci } 5437e5c31af7Sopenharmony_ci 5438e5c31af7Sopenharmony_ci both "" 5439e5c31af7Sopenharmony_ci #version 310 es 5440e5c31af7Sopenharmony_ci precision highp float; 5441e5c31af7Sopenharmony_ci ${DECLARATIONS} 5442e5c31af7Sopenharmony_ci 5443e5c31af7Sopenharmony_ci void main() 5444e5c31af7Sopenharmony_ci { 5445e5c31af7Sopenharmony_ci ${SETUP} 5446e5c31af7Sopenharmony_ci uvec3[] x = uvec3[] (uvec3(2, 3, 5), uvec3(4, 6, 2), uvec3(1, 13, 7)); 5447e5c31af7Sopenharmony_ci out0 = in0 + x[1]; 5448e5c31af7Sopenharmony_ci ${OUTPUT} 5449e5c31af7Sopenharmony_ci } 5450e5c31af7Sopenharmony_ci "" 5451e5c31af7Sopenharmony_ci end 5452e5c31af7Sopenharmony_ci case ivec3_to_vec3 5453e5c31af7Sopenharmony_ci version 310 es 5454e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5455e5c31af7Sopenharmony_ci values 5456e5c31af7Sopenharmony_ci { 5457e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 5458e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(3.0, 3.0, 5.0) | vec3(4.0, 2.0, 4.0) | vec3(5.0, 8.0, 4.0) ]; 5459e5c31af7Sopenharmony_ci } 5460e5c31af7Sopenharmony_ci 5461e5c31af7Sopenharmony_ci both "" 5462e5c31af7Sopenharmony_ci #version 310 es 5463e5c31af7Sopenharmony_ci precision highp float; 5464e5c31af7Sopenharmony_ci ${DECLARATIONS} 5465e5c31af7Sopenharmony_ci 5466e5c31af7Sopenharmony_ci void main() 5467e5c31af7Sopenharmony_ci { 5468e5c31af7Sopenharmony_ci ${SETUP} 5469e5c31af7Sopenharmony_ci vec3[] x = vec3[] (vec3(1.0, 2.0, 3.0), vec3(2.0, 1.0, 2.0), vec3(3.0, 7.0, 2.0)); 5470e5c31af7Sopenharmony_ci out0 = in0 + x[1]; 5471e5c31af7Sopenharmony_ci ${OUTPUT} 5472e5c31af7Sopenharmony_ci } 5473e5c31af7Sopenharmony_ci "" 5474e5c31af7Sopenharmony_ci end 5475e5c31af7Sopenharmony_ci case uvec3_to_vec3 5476e5c31af7Sopenharmony_ci version 310 es 5477e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5478e5c31af7Sopenharmony_ci values 5479e5c31af7Sopenharmony_ci { 5480e5c31af7Sopenharmony_ci input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 5481e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(4.0, 4.0, 7.0) | vec3(6.0, 7.0, 4.0) | vec3(3.0, 14.0, 9.0) ]; 5482e5c31af7Sopenharmony_ci } 5483e5c31af7Sopenharmony_ci 5484e5c31af7Sopenharmony_ci both "" 5485e5c31af7Sopenharmony_ci #version 310 es 5486e5c31af7Sopenharmony_ci precision highp float; 5487e5c31af7Sopenharmony_ci ${DECLARATIONS} 5488e5c31af7Sopenharmony_ci 5489e5c31af7Sopenharmony_ci void main() 5490e5c31af7Sopenharmony_ci { 5491e5c31af7Sopenharmony_ci ${SETUP} 5492e5c31af7Sopenharmony_ci vec3[] x = vec3[] (vec3(1.0, 2.0, 3.0), vec3(2.0, 1.0, 2.0), vec3(3.0, 7.0, 2.0)); 5493e5c31af7Sopenharmony_ci out0 = in0 + x[1]; 5494e5c31af7Sopenharmony_ci ${OUTPUT} 5495e5c31af7Sopenharmony_ci } 5496e5c31af7Sopenharmony_ci "" 5497e5c31af7Sopenharmony_ci end 5498e5c31af7Sopenharmony_ci case ivec4_to_uvec4 5499e5c31af7Sopenharmony_ci version 310 es 5500e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5501e5c31af7Sopenharmony_ci values 5502e5c31af7Sopenharmony_ci { 5503e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 5504e5c31af7Sopenharmony_ci output uvec4 out0 = [ uvec4(5, 8, 5, 13) | uvec4(6, 7, 4, 15) | uvec4(7, 13, 4, 14) ]; 5505e5c31af7Sopenharmony_ci } 5506e5c31af7Sopenharmony_ci 5507e5c31af7Sopenharmony_ci both "" 5508e5c31af7Sopenharmony_ci #version 310 es 5509e5c31af7Sopenharmony_ci precision highp float; 5510e5c31af7Sopenharmony_ci ${DECLARATIONS} 5511e5c31af7Sopenharmony_ci 5512e5c31af7Sopenharmony_ci void main() 5513e5c31af7Sopenharmony_ci { 5514e5c31af7Sopenharmony_ci ${SETUP} 5515e5c31af7Sopenharmony_ci uvec4[] x = uvec4[] (uvec4(2, 3, 5, 8), uvec4(4, 6, 2, 9), uvec4(1, 13, 7, 4)); 5516e5c31af7Sopenharmony_ci out0 = in0 + x[1]; 5517e5c31af7Sopenharmony_ci ${OUTPUT} 5518e5c31af7Sopenharmony_ci } 5519e5c31af7Sopenharmony_ci "" 5520e5c31af7Sopenharmony_ci end 5521e5c31af7Sopenharmony_ci case ivec4_to_vec4 5522e5c31af7Sopenharmony_ci version 310 es 5523e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5524e5c31af7Sopenharmony_ci values 5525e5c31af7Sopenharmony_ci { 5526e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 5527e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(3.0, 3.0, 5.0, 10.0) | vec4(4.0, 2.0, 4.0, 12.0) | vec4(5.0, 8.0, 4.0, 11.0) ]; 5528e5c31af7Sopenharmony_ci } 5529e5c31af7Sopenharmony_ci 5530e5c31af7Sopenharmony_ci both "" 5531e5c31af7Sopenharmony_ci #version 310 es 5532e5c31af7Sopenharmony_ci precision highp float; 5533e5c31af7Sopenharmony_ci ${DECLARATIONS} 5534e5c31af7Sopenharmony_ci 5535e5c31af7Sopenharmony_ci void main() 5536e5c31af7Sopenharmony_ci { 5537e5c31af7Sopenharmony_ci ${SETUP} 5538e5c31af7Sopenharmony_ci vec4[] x = vec4[] (vec4(1.0, 2.0, 3.0, 4.0), vec4(2.0, 1.0, 2.0, 6.0), vec4(3.0, 7.0, 2.0, 5.0)); 5539e5c31af7Sopenharmony_ci out0 = in0 + x[1]; 5540e5c31af7Sopenharmony_ci ${OUTPUT} 5541e5c31af7Sopenharmony_ci } 5542e5c31af7Sopenharmony_ci "" 5543e5c31af7Sopenharmony_ci end 5544e5c31af7Sopenharmony_ci case uvec4_to_vec4 5545e5c31af7Sopenharmony_ci version 310 es 5546e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5547e5c31af7Sopenharmony_ci values 5548e5c31af7Sopenharmony_ci { 5549e5c31af7Sopenharmony_ci input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 5550e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(4.0, 4.0, 7.0, 14.0) | vec4(6.0, 7.0, 4.0, 15.0) | vec4(3.0, 14.0, 9.0, 10.0) ]; 5551e5c31af7Sopenharmony_ci } 5552e5c31af7Sopenharmony_ci 5553e5c31af7Sopenharmony_ci both "" 5554e5c31af7Sopenharmony_ci #version 310 es 5555e5c31af7Sopenharmony_ci precision highp float; 5556e5c31af7Sopenharmony_ci ${DECLARATIONS} 5557e5c31af7Sopenharmony_ci 5558e5c31af7Sopenharmony_ci void main() 5559e5c31af7Sopenharmony_ci { 5560e5c31af7Sopenharmony_ci ${SETUP} 5561e5c31af7Sopenharmony_ci vec4[] x = vec4[] (vec4(1.0, 2.0, 3.0, 4.0), vec4(2.0, 1.0, 2.0, 6.0), vec4(3.0, 7.0, 2.0, 5.0)); 5562e5c31af7Sopenharmony_ci out0 = in0 + x[1]; 5563e5c31af7Sopenharmony_ci ${OUTPUT} 5564e5c31af7Sopenharmony_ci } 5565e5c31af7Sopenharmony_ci "" 5566e5c31af7Sopenharmony_ci end 5567e5c31af7Sopenharmony_ci 5568e5c31af7Sopenharmony_ci end # input_before_subscript 5569e5c31af7Sopenharmony_ci group subscript_before_input "Subscript before input" 5570e5c31af7Sopenharmony_ci 5571e5c31af7Sopenharmony_ci case int_to_float 5572e5c31af7Sopenharmony_ci version 310 es 5573e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5574e5c31af7Sopenharmony_ci values 5575e5c31af7Sopenharmony_ci { 5576e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 5577e5c31af7Sopenharmony_ci output float out0 = [ 3.0 | 2.0 | 2.0 | 4.0 | 6.0 ]; 5578e5c31af7Sopenharmony_ci } 5579e5c31af7Sopenharmony_ci 5580e5c31af7Sopenharmony_ci both "" 5581e5c31af7Sopenharmony_ci #version 310 es 5582e5c31af7Sopenharmony_ci precision highp float; 5583e5c31af7Sopenharmony_ci ${DECLARATIONS} 5584e5c31af7Sopenharmony_ci 5585e5c31af7Sopenharmony_ci void main() 5586e5c31af7Sopenharmony_ci { 5587e5c31af7Sopenharmony_ci ${SETUP} 5588e5c31af7Sopenharmony_ci float[] x = float[] (2.0, 1.0, 1.0, 3.0, 5.0); 5589e5c31af7Sopenharmony_ci out0 = x[1] + in0; 5590e5c31af7Sopenharmony_ci ${OUTPUT} 5591e5c31af7Sopenharmony_ci } 5592e5c31af7Sopenharmony_ci "" 5593e5c31af7Sopenharmony_ci end 5594e5c31af7Sopenharmony_ci case int_to_uint 5595e5c31af7Sopenharmony_ci version 310 es 5596e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5597e5c31af7Sopenharmony_ci values 5598e5c31af7Sopenharmony_ci { 5599e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 5600e5c31af7Sopenharmony_ci output uint out0 = [ 5 | 4 | 4 | 6 | 8 ]; 5601e5c31af7Sopenharmony_ci } 5602e5c31af7Sopenharmony_ci 5603e5c31af7Sopenharmony_ci both "" 5604e5c31af7Sopenharmony_ci #version 310 es 5605e5c31af7Sopenharmony_ci precision highp float; 5606e5c31af7Sopenharmony_ci ${DECLARATIONS} 5607e5c31af7Sopenharmony_ci 5608e5c31af7Sopenharmony_ci void main() 5609e5c31af7Sopenharmony_ci { 5610e5c31af7Sopenharmony_ci ${SETUP} 5611e5c31af7Sopenharmony_ci uint[] x = uint[] (1, 3, 4, 7, 11); 5612e5c31af7Sopenharmony_ci out0 = x[1] + in0; 5613e5c31af7Sopenharmony_ci ${OUTPUT} 5614e5c31af7Sopenharmony_ci } 5615e5c31af7Sopenharmony_ci "" 5616e5c31af7Sopenharmony_ci end 5617e5c31af7Sopenharmony_ci case int_to_vec2 5618e5c31af7Sopenharmony_ci version 310 es 5619e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5620e5c31af7Sopenharmony_ci values 5621e5c31af7Sopenharmony_ci { 5622e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 5623e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(4.0, 3.0) | vec2(3.0, 2.0) | vec2(3.0, 2.0) | vec2(5.0, 4.0) | vec2(7.0, 6.0) ]; 5624e5c31af7Sopenharmony_ci } 5625e5c31af7Sopenharmony_ci 5626e5c31af7Sopenharmony_ci both "" 5627e5c31af7Sopenharmony_ci #version 310 es 5628e5c31af7Sopenharmony_ci precision highp float; 5629e5c31af7Sopenharmony_ci ${DECLARATIONS} 5630e5c31af7Sopenharmony_ci 5631e5c31af7Sopenharmony_ci void main() 5632e5c31af7Sopenharmony_ci { 5633e5c31af7Sopenharmony_ci ${SETUP} 5634e5c31af7Sopenharmony_ci vec2[] x = vec2[] (vec2(1.0, 2.0), vec2(2.0, 1.0), vec2(3.0, 7.0)); 5635e5c31af7Sopenharmony_ci out0 = x[1] + in0; 5636e5c31af7Sopenharmony_ci ${OUTPUT} 5637e5c31af7Sopenharmony_ci } 5638e5c31af7Sopenharmony_ci "" 5639e5c31af7Sopenharmony_ci end 5640e5c31af7Sopenharmony_ci case int_to_vec3 5641e5c31af7Sopenharmony_ci version 310 es 5642e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5643e5c31af7Sopenharmony_ci values 5644e5c31af7Sopenharmony_ci { 5645e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 5646e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(4.0, 3.0, 4.0) | vec3(3.0, 2.0, 3.0) | vec3(3.0, 2.0, 3.0) | vec3(5.0, 4.0, 5.0) | vec3(7.0, 6.0, 7.0) ]; 5647e5c31af7Sopenharmony_ci } 5648e5c31af7Sopenharmony_ci 5649e5c31af7Sopenharmony_ci both "" 5650e5c31af7Sopenharmony_ci #version 310 es 5651e5c31af7Sopenharmony_ci precision highp float; 5652e5c31af7Sopenharmony_ci ${DECLARATIONS} 5653e5c31af7Sopenharmony_ci 5654e5c31af7Sopenharmony_ci void main() 5655e5c31af7Sopenharmony_ci { 5656e5c31af7Sopenharmony_ci ${SETUP} 5657e5c31af7Sopenharmony_ci vec3[] x = vec3[] (vec3(1.0, 2.0, 3.0), vec3(2.0, 1.0, 2.0), vec3(3.0, 7.0, 2.0)); 5658e5c31af7Sopenharmony_ci out0 = x[1] + in0; 5659e5c31af7Sopenharmony_ci ${OUTPUT} 5660e5c31af7Sopenharmony_ci } 5661e5c31af7Sopenharmony_ci "" 5662e5c31af7Sopenharmony_ci end 5663e5c31af7Sopenharmony_ci case int_to_vec4 5664e5c31af7Sopenharmony_ci version 310 es 5665e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5666e5c31af7Sopenharmony_ci values 5667e5c31af7Sopenharmony_ci { 5668e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 5669e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(4.0, 3.0, 4.0, 8.0) | vec4(3.0, 2.0, 3.0, 7.0) | vec4(3.0, 2.0, 3.0, 7.0) | vec4(5.0, 4.0, 5.0, 9.0) | vec4(7.0, 6.0, 7.0, 11.0) ]; 5670e5c31af7Sopenharmony_ci } 5671e5c31af7Sopenharmony_ci 5672e5c31af7Sopenharmony_ci both "" 5673e5c31af7Sopenharmony_ci #version 310 es 5674e5c31af7Sopenharmony_ci precision highp float; 5675e5c31af7Sopenharmony_ci ${DECLARATIONS} 5676e5c31af7Sopenharmony_ci 5677e5c31af7Sopenharmony_ci void main() 5678e5c31af7Sopenharmony_ci { 5679e5c31af7Sopenharmony_ci ${SETUP} 5680e5c31af7Sopenharmony_ci vec4[] x = vec4[] (vec4(1.0, 2.0, 3.0, 4.0), vec4(2.0, 1.0, 2.0, 6.0), vec4(3.0, 7.0, 2.0, 5.0)); 5681e5c31af7Sopenharmony_ci out0 = x[1] + in0; 5682e5c31af7Sopenharmony_ci ${OUTPUT} 5683e5c31af7Sopenharmony_ci } 5684e5c31af7Sopenharmony_ci "" 5685e5c31af7Sopenharmony_ci end 5686e5c31af7Sopenharmony_ci case int_to_uvec2 5687e5c31af7Sopenharmony_ci version 310 es 5688e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5689e5c31af7Sopenharmony_ci values 5690e5c31af7Sopenharmony_ci { 5691e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 5692e5c31af7Sopenharmony_ci output uvec2 out0 = [ uvec2(6, 8) | uvec2(5, 7) | uvec2(5, 7) | uvec2(7, 9) | uvec2(9, 11) ]; 5693e5c31af7Sopenharmony_ci } 5694e5c31af7Sopenharmony_ci 5695e5c31af7Sopenharmony_ci both "" 5696e5c31af7Sopenharmony_ci #version 310 es 5697e5c31af7Sopenharmony_ci precision highp float; 5698e5c31af7Sopenharmony_ci ${DECLARATIONS} 5699e5c31af7Sopenharmony_ci 5700e5c31af7Sopenharmony_ci void main() 5701e5c31af7Sopenharmony_ci { 5702e5c31af7Sopenharmony_ci ${SETUP} 5703e5c31af7Sopenharmony_ci uvec2[] x = uvec2[] (uvec2(2, 3), uvec2(4, 6), uvec2(1, 13)); 5704e5c31af7Sopenharmony_ci out0 = x[1] + in0; 5705e5c31af7Sopenharmony_ci ${OUTPUT} 5706e5c31af7Sopenharmony_ci } 5707e5c31af7Sopenharmony_ci "" 5708e5c31af7Sopenharmony_ci end 5709e5c31af7Sopenharmony_ci case int_to_uvec3 5710e5c31af7Sopenharmony_ci version 310 es 5711e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5712e5c31af7Sopenharmony_ci values 5713e5c31af7Sopenharmony_ci { 5714e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 5715e5c31af7Sopenharmony_ci output uvec3 out0 = [ uvec3(6, 8, 4) | uvec3(5, 7, 3) | uvec3(5, 7, 3) | uvec3(7, 9, 5) | uvec3(9, 11, 7) ]; 5716e5c31af7Sopenharmony_ci } 5717e5c31af7Sopenharmony_ci 5718e5c31af7Sopenharmony_ci both "" 5719e5c31af7Sopenharmony_ci #version 310 es 5720e5c31af7Sopenharmony_ci precision highp float; 5721e5c31af7Sopenharmony_ci ${DECLARATIONS} 5722e5c31af7Sopenharmony_ci 5723e5c31af7Sopenharmony_ci void main() 5724e5c31af7Sopenharmony_ci { 5725e5c31af7Sopenharmony_ci ${SETUP} 5726e5c31af7Sopenharmony_ci uvec3[] x = uvec3[] (uvec3(2, 3, 5), uvec3(4, 6, 2), uvec3(1, 13, 7)); 5727e5c31af7Sopenharmony_ci out0 = x[1] + in0; 5728e5c31af7Sopenharmony_ci ${OUTPUT} 5729e5c31af7Sopenharmony_ci } 5730e5c31af7Sopenharmony_ci "" 5731e5c31af7Sopenharmony_ci end 5732e5c31af7Sopenharmony_ci case int_to_uvec4 5733e5c31af7Sopenharmony_ci version 310 es 5734e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5735e5c31af7Sopenharmony_ci values 5736e5c31af7Sopenharmony_ci { 5737e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 5738e5c31af7Sopenharmony_ci output uvec4 out0 = [ uvec4(6, 8, 4, 11) | uvec4(5, 7, 3, 10) | uvec4(5, 7, 3, 10) | uvec4(7, 9, 5, 12) | uvec4(9, 11, 7, 14) ]; 5739e5c31af7Sopenharmony_ci } 5740e5c31af7Sopenharmony_ci 5741e5c31af7Sopenharmony_ci both "" 5742e5c31af7Sopenharmony_ci #version 310 es 5743e5c31af7Sopenharmony_ci precision highp float; 5744e5c31af7Sopenharmony_ci ${DECLARATIONS} 5745e5c31af7Sopenharmony_ci 5746e5c31af7Sopenharmony_ci void main() 5747e5c31af7Sopenharmony_ci { 5748e5c31af7Sopenharmony_ci ${SETUP} 5749e5c31af7Sopenharmony_ci uvec4[] x = uvec4[] (uvec4(2, 3, 5, 8), uvec4(4, 6, 2, 9), uvec4(1, 13, 7, 4)); 5750e5c31af7Sopenharmony_ci out0 = x[1] + in0; 5751e5c31af7Sopenharmony_ci ${OUTPUT} 5752e5c31af7Sopenharmony_ci } 5753e5c31af7Sopenharmony_ci "" 5754e5c31af7Sopenharmony_ci end 5755e5c31af7Sopenharmony_ci case uint_to_float 5756e5c31af7Sopenharmony_ci version 310 es 5757e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5758e5c31af7Sopenharmony_ci values 5759e5c31af7Sopenharmony_ci { 5760e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 5761e5c31af7Sopenharmony_ci output float out0 = [ 2.0 | 4.0 | 5.0 | 8.0 | 12.0 ]; 5762e5c31af7Sopenharmony_ci } 5763e5c31af7Sopenharmony_ci 5764e5c31af7Sopenharmony_ci both "" 5765e5c31af7Sopenharmony_ci #version 310 es 5766e5c31af7Sopenharmony_ci precision highp float; 5767e5c31af7Sopenharmony_ci ${DECLARATIONS} 5768e5c31af7Sopenharmony_ci 5769e5c31af7Sopenharmony_ci void main() 5770e5c31af7Sopenharmony_ci { 5771e5c31af7Sopenharmony_ci ${SETUP} 5772e5c31af7Sopenharmony_ci float[] x = float[] (2.0, 1.0, 1.0, 3.0, 5.0); 5773e5c31af7Sopenharmony_ci out0 = x[1] + in0; 5774e5c31af7Sopenharmony_ci ${OUTPUT} 5775e5c31af7Sopenharmony_ci } 5776e5c31af7Sopenharmony_ci "" 5777e5c31af7Sopenharmony_ci end 5778e5c31af7Sopenharmony_ci case uint_to_vec2 5779e5c31af7Sopenharmony_ci version 310 es 5780e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5781e5c31af7Sopenharmony_ci values 5782e5c31af7Sopenharmony_ci { 5783e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 5784e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(3.0, 2.0) | vec2(5.0, 4.0) | vec2(6.0, 5.0) | vec2(9.0, 8.0) | vec2(13.0, 12.0) ]; 5785e5c31af7Sopenharmony_ci } 5786e5c31af7Sopenharmony_ci 5787e5c31af7Sopenharmony_ci both "" 5788e5c31af7Sopenharmony_ci #version 310 es 5789e5c31af7Sopenharmony_ci precision highp float; 5790e5c31af7Sopenharmony_ci ${DECLARATIONS} 5791e5c31af7Sopenharmony_ci 5792e5c31af7Sopenharmony_ci void main() 5793e5c31af7Sopenharmony_ci { 5794e5c31af7Sopenharmony_ci ${SETUP} 5795e5c31af7Sopenharmony_ci vec2[] x = vec2[] (vec2(1.0, 2.0), vec2(2.0, 1.0), vec2(3.0, 7.0)); 5796e5c31af7Sopenharmony_ci out0 = x[1] + in0; 5797e5c31af7Sopenharmony_ci ${OUTPUT} 5798e5c31af7Sopenharmony_ci } 5799e5c31af7Sopenharmony_ci "" 5800e5c31af7Sopenharmony_ci end 5801e5c31af7Sopenharmony_ci case uint_to_vec3 5802e5c31af7Sopenharmony_ci version 310 es 5803e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5804e5c31af7Sopenharmony_ci values 5805e5c31af7Sopenharmony_ci { 5806e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 5807e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(3.0, 2.0, 3.0) | vec3(5.0, 4.0, 5.0) | vec3(6.0, 5.0, 6.0) | vec3(9.0, 8.0, 9.0) | vec3(13.0, 12.0, 13.0) ]; 5808e5c31af7Sopenharmony_ci } 5809e5c31af7Sopenharmony_ci 5810e5c31af7Sopenharmony_ci both "" 5811e5c31af7Sopenharmony_ci #version 310 es 5812e5c31af7Sopenharmony_ci precision highp float; 5813e5c31af7Sopenharmony_ci ${DECLARATIONS} 5814e5c31af7Sopenharmony_ci 5815e5c31af7Sopenharmony_ci void main() 5816e5c31af7Sopenharmony_ci { 5817e5c31af7Sopenharmony_ci ${SETUP} 5818e5c31af7Sopenharmony_ci vec3[] x = vec3[] (vec3(1.0, 2.0, 3.0), vec3(2.0, 1.0, 2.0), vec3(3.0, 7.0, 2.0)); 5819e5c31af7Sopenharmony_ci out0 = x[1] + in0; 5820e5c31af7Sopenharmony_ci ${OUTPUT} 5821e5c31af7Sopenharmony_ci } 5822e5c31af7Sopenharmony_ci "" 5823e5c31af7Sopenharmony_ci end 5824e5c31af7Sopenharmony_ci case uint_to_vec4 5825e5c31af7Sopenharmony_ci version 310 es 5826e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5827e5c31af7Sopenharmony_ci values 5828e5c31af7Sopenharmony_ci { 5829e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 5830e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(3.0, 2.0, 3.0, 7.0) | vec4(5.0, 4.0, 5.0, 9.0) | vec4(6.0, 5.0, 6.0, 10.0) | vec4(9.0, 8.0, 9.0, 13.0) | vec4(13.0, 12.0, 13.0, 17.0) ]; 5831e5c31af7Sopenharmony_ci } 5832e5c31af7Sopenharmony_ci 5833e5c31af7Sopenharmony_ci both "" 5834e5c31af7Sopenharmony_ci #version 310 es 5835e5c31af7Sopenharmony_ci precision highp float; 5836e5c31af7Sopenharmony_ci ${DECLARATIONS} 5837e5c31af7Sopenharmony_ci 5838e5c31af7Sopenharmony_ci void main() 5839e5c31af7Sopenharmony_ci { 5840e5c31af7Sopenharmony_ci ${SETUP} 5841e5c31af7Sopenharmony_ci vec4[] x = vec4[] (vec4(1.0, 2.0, 3.0, 4.0), vec4(2.0, 1.0, 2.0, 6.0), vec4(3.0, 7.0, 2.0, 5.0)); 5842e5c31af7Sopenharmony_ci out0 = x[1] + in0; 5843e5c31af7Sopenharmony_ci ${OUTPUT} 5844e5c31af7Sopenharmony_ci } 5845e5c31af7Sopenharmony_ci "" 5846e5c31af7Sopenharmony_ci end 5847e5c31af7Sopenharmony_ci case ivec2_to_uvec2 5848e5c31af7Sopenharmony_ci version 310 es 5849e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5850e5c31af7Sopenharmony_ci values 5851e5c31af7Sopenharmony_ci { 5852e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 5853e5c31af7Sopenharmony_ci output uvec2 out0 = [ uvec2(5, 8) | uvec2(6, 7) | uvec2(7, 13) ]; 5854e5c31af7Sopenharmony_ci } 5855e5c31af7Sopenharmony_ci 5856e5c31af7Sopenharmony_ci both "" 5857e5c31af7Sopenharmony_ci #version 310 es 5858e5c31af7Sopenharmony_ci precision highp float; 5859e5c31af7Sopenharmony_ci ${DECLARATIONS} 5860e5c31af7Sopenharmony_ci 5861e5c31af7Sopenharmony_ci void main() 5862e5c31af7Sopenharmony_ci { 5863e5c31af7Sopenharmony_ci ${SETUP} 5864e5c31af7Sopenharmony_ci uvec2[] x = uvec2[] (uvec2(2, 3), uvec2(4, 6), uvec2(1, 13)); 5865e5c31af7Sopenharmony_ci out0 = x[1] + in0; 5866e5c31af7Sopenharmony_ci ${OUTPUT} 5867e5c31af7Sopenharmony_ci } 5868e5c31af7Sopenharmony_ci "" 5869e5c31af7Sopenharmony_ci end 5870e5c31af7Sopenharmony_ci case ivec2_to_vec2 5871e5c31af7Sopenharmony_ci version 310 es 5872e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5873e5c31af7Sopenharmony_ci values 5874e5c31af7Sopenharmony_ci { 5875e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 5876e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(3.0, 3.0) | vec2(4.0, 2.0) | vec2(5.0, 8.0) ]; 5877e5c31af7Sopenharmony_ci } 5878e5c31af7Sopenharmony_ci 5879e5c31af7Sopenharmony_ci both "" 5880e5c31af7Sopenharmony_ci #version 310 es 5881e5c31af7Sopenharmony_ci precision highp float; 5882e5c31af7Sopenharmony_ci ${DECLARATIONS} 5883e5c31af7Sopenharmony_ci 5884e5c31af7Sopenharmony_ci void main() 5885e5c31af7Sopenharmony_ci { 5886e5c31af7Sopenharmony_ci ${SETUP} 5887e5c31af7Sopenharmony_ci vec2[] x = vec2[] (vec2(1.0, 2.0), vec2(2.0, 1.0), vec2(3.0, 7.0)); 5888e5c31af7Sopenharmony_ci out0 = x[1] + in0; 5889e5c31af7Sopenharmony_ci ${OUTPUT} 5890e5c31af7Sopenharmony_ci } 5891e5c31af7Sopenharmony_ci "" 5892e5c31af7Sopenharmony_ci end 5893e5c31af7Sopenharmony_ci case uvec2_to_vec2 5894e5c31af7Sopenharmony_ci version 310 es 5895e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5896e5c31af7Sopenharmony_ci values 5897e5c31af7Sopenharmony_ci { 5898e5c31af7Sopenharmony_ci input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 5899e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(4.0, 4.0) | vec2(6.0, 7.0) | vec2(3.0, 14.0) ]; 5900e5c31af7Sopenharmony_ci } 5901e5c31af7Sopenharmony_ci 5902e5c31af7Sopenharmony_ci both "" 5903e5c31af7Sopenharmony_ci #version 310 es 5904e5c31af7Sopenharmony_ci precision highp float; 5905e5c31af7Sopenharmony_ci ${DECLARATIONS} 5906e5c31af7Sopenharmony_ci 5907e5c31af7Sopenharmony_ci void main() 5908e5c31af7Sopenharmony_ci { 5909e5c31af7Sopenharmony_ci ${SETUP} 5910e5c31af7Sopenharmony_ci vec2[] x = vec2[] (vec2(1.0, 2.0), vec2(2.0, 1.0), vec2(3.0, 7.0)); 5911e5c31af7Sopenharmony_ci out0 = x[1] + in0; 5912e5c31af7Sopenharmony_ci ${OUTPUT} 5913e5c31af7Sopenharmony_ci } 5914e5c31af7Sopenharmony_ci "" 5915e5c31af7Sopenharmony_ci end 5916e5c31af7Sopenharmony_ci case ivec3_to_uvec3 5917e5c31af7Sopenharmony_ci version 310 es 5918e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5919e5c31af7Sopenharmony_ci values 5920e5c31af7Sopenharmony_ci { 5921e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 5922e5c31af7Sopenharmony_ci output uvec3 out0 = [ uvec3(5, 8, 5) | uvec3(6, 7, 4) | uvec3(7, 13, 4) ]; 5923e5c31af7Sopenharmony_ci } 5924e5c31af7Sopenharmony_ci 5925e5c31af7Sopenharmony_ci both "" 5926e5c31af7Sopenharmony_ci #version 310 es 5927e5c31af7Sopenharmony_ci precision highp float; 5928e5c31af7Sopenharmony_ci ${DECLARATIONS} 5929e5c31af7Sopenharmony_ci 5930e5c31af7Sopenharmony_ci void main() 5931e5c31af7Sopenharmony_ci { 5932e5c31af7Sopenharmony_ci ${SETUP} 5933e5c31af7Sopenharmony_ci uvec3[] x = uvec3[] (uvec3(2, 3, 5), uvec3(4, 6, 2), uvec3(1, 13, 7)); 5934e5c31af7Sopenharmony_ci out0 = x[1] + in0; 5935e5c31af7Sopenharmony_ci ${OUTPUT} 5936e5c31af7Sopenharmony_ci } 5937e5c31af7Sopenharmony_ci "" 5938e5c31af7Sopenharmony_ci end 5939e5c31af7Sopenharmony_ci case ivec3_to_vec3 5940e5c31af7Sopenharmony_ci version 310 es 5941e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5942e5c31af7Sopenharmony_ci values 5943e5c31af7Sopenharmony_ci { 5944e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 5945e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(3.0, 3.0, 5.0) | vec3(4.0, 2.0, 4.0) | vec3(5.0, 8.0, 4.0) ]; 5946e5c31af7Sopenharmony_ci } 5947e5c31af7Sopenharmony_ci 5948e5c31af7Sopenharmony_ci both "" 5949e5c31af7Sopenharmony_ci #version 310 es 5950e5c31af7Sopenharmony_ci precision highp float; 5951e5c31af7Sopenharmony_ci ${DECLARATIONS} 5952e5c31af7Sopenharmony_ci 5953e5c31af7Sopenharmony_ci void main() 5954e5c31af7Sopenharmony_ci { 5955e5c31af7Sopenharmony_ci ${SETUP} 5956e5c31af7Sopenharmony_ci vec3[] x = vec3[] (vec3(1.0, 2.0, 3.0), vec3(2.0, 1.0, 2.0), vec3(3.0, 7.0, 2.0)); 5957e5c31af7Sopenharmony_ci out0 = x[1] + in0; 5958e5c31af7Sopenharmony_ci ${OUTPUT} 5959e5c31af7Sopenharmony_ci } 5960e5c31af7Sopenharmony_ci "" 5961e5c31af7Sopenharmony_ci end 5962e5c31af7Sopenharmony_ci case uvec3_to_vec3 5963e5c31af7Sopenharmony_ci version 310 es 5964e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5965e5c31af7Sopenharmony_ci values 5966e5c31af7Sopenharmony_ci { 5967e5c31af7Sopenharmony_ci input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 5968e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(4.0, 4.0, 7.0) | vec3(6.0, 7.0, 4.0) | vec3(3.0, 14.0, 9.0) ]; 5969e5c31af7Sopenharmony_ci } 5970e5c31af7Sopenharmony_ci 5971e5c31af7Sopenharmony_ci both "" 5972e5c31af7Sopenharmony_ci #version 310 es 5973e5c31af7Sopenharmony_ci precision highp float; 5974e5c31af7Sopenharmony_ci ${DECLARATIONS} 5975e5c31af7Sopenharmony_ci 5976e5c31af7Sopenharmony_ci void main() 5977e5c31af7Sopenharmony_ci { 5978e5c31af7Sopenharmony_ci ${SETUP} 5979e5c31af7Sopenharmony_ci vec3[] x = vec3[] (vec3(1.0, 2.0, 3.0), vec3(2.0, 1.0, 2.0), vec3(3.0, 7.0, 2.0)); 5980e5c31af7Sopenharmony_ci out0 = x[1] + in0; 5981e5c31af7Sopenharmony_ci ${OUTPUT} 5982e5c31af7Sopenharmony_ci } 5983e5c31af7Sopenharmony_ci "" 5984e5c31af7Sopenharmony_ci end 5985e5c31af7Sopenharmony_ci case ivec4_to_uvec4 5986e5c31af7Sopenharmony_ci version 310 es 5987e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5988e5c31af7Sopenharmony_ci values 5989e5c31af7Sopenharmony_ci { 5990e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 5991e5c31af7Sopenharmony_ci output uvec4 out0 = [ uvec4(5, 8, 5, 13) | uvec4(6, 7, 4, 15) | uvec4(7, 13, 4, 14) ]; 5992e5c31af7Sopenharmony_ci } 5993e5c31af7Sopenharmony_ci 5994e5c31af7Sopenharmony_ci both "" 5995e5c31af7Sopenharmony_ci #version 310 es 5996e5c31af7Sopenharmony_ci precision highp float; 5997e5c31af7Sopenharmony_ci ${DECLARATIONS} 5998e5c31af7Sopenharmony_ci 5999e5c31af7Sopenharmony_ci void main() 6000e5c31af7Sopenharmony_ci { 6001e5c31af7Sopenharmony_ci ${SETUP} 6002e5c31af7Sopenharmony_ci uvec4[] x = uvec4[] (uvec4(2, 3, 5, 8), uvec4(4, 6, 2, 9), uvec4(1, 13, 7, 4)); 6003e5c31af7Sopenharmony_ci out0 = x[1] + in0; 6004e5c31af7Sopenharmony_ci ${OUTPUT} 6005e5c31af7Sopenharmony_ci } 6006e5c31af7Sopenharmony_ci "" 6007e5c31af7Sopenharmony_ci end 6008e5c31af7Sopenharmony_ci case ivec4_to_vec4 6009e5c31af7Sopenharmony_ci version 310 es 6010e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6011e5c31af7Sopenharmony_ci values 6012e5c31af7Sopenharmony_ci { 6013e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 6014e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(3.0, 3.0, 5.0, 10.0) | vec4(4.0, 2.0, 4.0, 12.0) | vec4(5.0, 8.0, 4.0, 11.0) ]; 6015e5c31af7Sopenharmony_ci } 6016e5c31af7Sopenharmony_ci 6017e5c31af7Sopenharmony_ci both "" 6018e5c31af7Sopenharmony_ci #version 310 es 6019e5c31af7Sopenharmony_ci precision highp float; 6020e5c31af7Sopenharmony_ci ${DECLARATIONS} 6021e5c31af7Sopenharmony_ci 6022e5c31af7Sopenharmony_ci void main() 6023e5c31af7Sopenharmony_ci { 6024e5c31af7Sopenharmony_ci ${SETUP} 6025e5c31af7Sopenharmony_ci vec4[] x = vec4[] (vec4(1.0, 2.0, 3.0, 4.0), vec4(2.0, 1.0, 2.0, 6.0), vec4(3.0, 7.0, 2.0, 5.0)); 6026e5c31af7Sopenharmony_ci out0 = x[1] + in0; 6027e5c31af7Sopenharmony_ci ${OUTPUT} 6028e5c31af7Sopenharmony_ci } 6029e5c31af7Sopenharmony_ci "" 6030e5c31af7Sopenharmony_ci end 6031e5c31af7Sopenharmony_ci case uvec4_to_vec4 6032e5c31af7Sopenharmony_ci version 310 es 6033e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6034e5c31af7Sopenharmony_ci values 6035e5c31af7Sopenharmony_ci { 6036e5c31af7Sopenharmony_ci input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 6037e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(4.0, 4.0, 7.0, 14.0) | vec4(6.0, 7.0, 4.0, 15.0) | vec4(3.0, 14.0, 9.0, 10.0) ]; 6038e5c31af7Sopenharmony_ci } 6039e5c31af7Sopenharmony_ci 6040e5c31af7Sopenharmony_ci both "" 6041e5c31af7Sopenharmony_ci #version 310 es 6042e5c31af7Sopenharmony_ci precision highp float; 6043e5c31af7Sopenharmony_ci ${DECLARATIONS} 6044e5c31af7Sopenharmony_ci 6045e5c31af7Sopenharmony_ci void main() 6046e5c31af7Sopenharmony_ci { 6047e5c31af7Sopenharmony_ci ${SETUP} 6048e5c31af7Sopenharmony_ci vec4[] x = vec4[] (vec4(1.0, 2.0, 3.0, 4.0), vec4(2.0, 1.0, 2.0, 6.0), vec4(3.0, 7.0, 2.0, 5.0)); 6049e5c31af7Sopenharmony_ci out0 = x[1] + in0; 6050e5c31af7Sopenharmony_ci ${OUTPUT} 6051e5c31af7Sopenharmony_ci } 6052e5c31af7Sopenharmony_ci "" 6053e5c31af7Sopenharmony_ci end 6054e5c31af7Sopenharmony_ci 6055e5c31af7Sopenharmony_ci end # subscript_before_input 6056e5c31af7Sopenharmony_ci 6057e5c31af7Sopenharmony_ciend # array_subscripts 6058e5c31af7Sopenharmony_cigroup functions "Function calls" 6059e5c31af7Sopenharmony_ci 6060e5c31af7Sopenharmony_ci case int_to_float 6061e5c31af7Sopenharmony_ci version 310 es 6062e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6063e5c31af7Sopenharmony_ci values 6064e5c31af7Sopenharmony_ci { 6065e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 6066e5c31af7Sopenharmony_ci output float out0 = [ 4.0 | 2.0 | 2.0 | 6.0 | 10.0 ]; 6067e5c31af7Sopenharmony_ci } 6068e5c31af7Sopenharmony_ci 6069e5c31af7Sopenharmony_ci both "" 6070e5c31af7Sopenharmony_ci #version 310 es 6071e5c31af7Sopenharmony_ci precision highp float; 6072e5c31af7Sopenharmony_ci ${DECLARATIONS} 6073e5c31af7Sopenharmony_ci 6074e5c31af7Sopenharmony_ci float func (float a) 6075e5c31af7Sopenharmony_ci { 6076e5c31af7Sopenharmony_ci return a * float(2); 6077e5c31af7Sopenharmony_ci } 6078e5c31af7Sopenharmony_ci 6079e5c31af7Sopenharmony_ci void main() 6080e5c31af7Sopenharmony_ci { 6081e5c31af7Sopenharmony_ci ${SETUP} 6082e5c31af7Sopenharmony_ci out0 = func(in0); 6083e5c31af7Sopenharmony_ci ${OUTPUT} 6084e5c31af7Sopenharmony_ci } 6085e5c31af7Sopenharmony_ci "" 6086e5c31af7Sopenharmony_ci end 6087e5c31af7Sopenharmony_ci case int_to_uint 6088e5c31af7Sopenharmony_ci version 310 es 6089e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6090e5c31af7Sopenharmony_ci values 6091e5c31af7Sopenharmony_ci { 6092e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 6093e5c31af7Sopenharmony_ci output uint out0 = [ 4 | 2 | 2 | 6 | 10 ]; 6094e5c31af7Sopenharmony_ci } 6095e5c31af7Sopenharmony_ci 6096e5c31af7Sopenharmony_ci both "" 6097e5c31af7Sopenharmony_ci #version 310 es 6098e5c31af7Sopenharmony_ci precision highp float; 6099e5c31af7Sopenharmony_ci ${DECLARATIONS} 6100e5c31af7Sopenharmony_ci 6101e5c31af7Sopenharmony_ci uint func (uint a) 6102e5c31af7Sopenharmony_ci { 6103e5c31af7Sopenharmony_ci return a * uint(2); 6104e5c31af7Sopenharmony_ci } 6105e5c31af7Sopenharmony_ci 6106e5c31af7Sopenharmony_ci void main() 6107e5c31af7Sopenharmony_ci { 6108e5c31af7Sopenharmony_ci ${SETUP} 6109e5c31af7Sopenharmony_ci out0 = func(in0); 6110e5c31af7Sopenharmony_ci ${OUTPUT} 6111e5c31af7Sopenharmony_ci } 6112e5c31af7Sopenharmony_ci "" 6113e5c31af7Sopenharmony_ci end 6114e5c31af7Sopenharmony_ci case uint_to_float 6115e5c31af7Sopenharmony_ci version 310 es 6116e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6117e5c31af7Sopenharmony_ci values 6118e5c31af7Sopenharmony_ci { 6119e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 6120e5c31af7Sopenharmony_ci output float out0 = [ 2.0 | 6.0 | 8.0 | 14.0 | 22.0 ]; 6121e5c31af7Sopenharmony_ci } 6122e5c31af7Sopenharmony_ci 6123e5c31af7Sopenharmony_ci both "" 6124e5c31af7Sopenharmony_ci #version 310 es 6125e5c31af7Sopenharmony_ci precision highp float; 6126e5c31af7Sopenharmony_ci ${DECLARATIONS} 6127e5c31af7Sopenharmony_ci 6128e5c31af7Sopenharmony_ci float func (float a) 6129e5c31af7Sopenharmony_ci { 6130e5c31af7Sopenharmony_ci return a * float(2); 6131e5c31af7Sopenharmony_ci } 6132e5c31af7Sopenharmony_ci 6133e5c31af7Sopenharmony_ci void main() 6134e5c31af7Sopenharmony_ci { 6135e5c31af7Sopenharmony_ci ${SETUP} 6136e5c31af7Sopenharmony_ci out0 = func(in0); 6137e5c31af7Sopenharmony_ci ${OUTPUT} 6138e5c31af7Sopenharmony_ci } 6139e5c31af7Sopenharmony_ci "" 6140e5c31af7Sopenharmony_ci end 6141e5c31af7Sopenharmony_ci case ivec2_to_uvec2 6142e5c31af7Sopenharmony_ci version 310 es 6143e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6144e5c31af7Sopenharmony_ci values 6145e5c31af7Sopenharmony_ci { 6146e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 6147e5c31af7Sopenharmony_ci output uvec2 out0 = [ uvec2(2, 4) | uvec2(4, 2) | uvec2(6, 14) ]; 6148e5c31af7Sopenharmony_ci } 6149e5c31af7Sopenharmony_ci 6150e5c31af7Sopenharmony_ci both "" 6151e5c31af7Sopenharmony_ci #version 310 es 6152e5c31af7Sopenharmony_ci precision highp float; 6153e5c31af7Sopenharmony_ci ${DECLARATIONS} 6154e5c31af7Sopenharmony_ci 6155e5c31af7Sopenharmony_ci uvec2 func (uvec2 a) 6156e5c31af7Sopenharmony_ci { 6157e5c31af7Sopenharmony_ci return a * uvec2(2); 6158e5c31af7Sopenharmony_ci } 6159e5c31af7Sopenharmony_ci 6160e5c31af7Sopenharmony_ci void main() 6161e5c31af7Sopenharmony_ci { 6162e5c31af7Sopenharmony_ci ${SETUP} 6163e5c31af7Sopenharmony_ci out0 = func(in0); 6164e5c31af7Sopenharmony_ci ${OUTPUT} 6165e5c31af7Sopenharmony_ci } 6166e5c31af7Sopenharmony_ci "" 6167e5c31af7Sopenharmony_ci end 6168e5c31af7Sopenharmony_ci case ivec2_to_vec2 6169e5c31af7Sopenharmony_ci version 310 es 6170e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6171e5c31af7Sopenharmony_ci values 6172e5c31af7Sopenharmony_ci { 6173e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 6174e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(2.0, 4.0) | vec2(4.0, 2.0) | vec2(6.0, 14.0) ]; 6175e5c31af7Sopenharmony_ci } 6176e5c31af7Sopenharmony_ci 6177e5c31af7Sopenharmony_ci both "" 6178e5c31af7Sopenharmony_ci #version 310 es 6179e5c31af7Sopenharmony_ci precision highp float; 6180e5c31af7Sopenharmony_ci ${DECLARATIONS} 6181e5c31af7Sopenharmony_ci 6182e5c31af7Sopenharmony_ci vec2 func (vec2 a) 6183e5c31af7Sopenharmony_ci { 6184e5c31af7Sopenharmony_ci return a * vec2(2); 6185e5c31af7Sopenharmony_ci } 6186e5c31af7Sopenharmony_ci 6187e5c31af7Sopenharmony_ci void main() 6188e5c31af7Sopenharmony_ci { 6189e5c31af7Sopenharmony_ci ${SETUP} 6190e5c31af7Sopenharmony_ci out0 = func(in0); 6191e5c31af7Sopenharmony_ci ${OUTPUT} 6192e5c31af7Sopenharmony_ci } 6193e5c31af7Sopenharmony_ci "" 6194e5c31af7Sopenharmony_ci end 6195e5c31af7Sopenharmony_ci case uvec2_to_vec2 6196e5c31af7Sopenharmony_ci version 310 es 6197e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6198e5c31af7Sopenharmony_ci values 6199e5c31af7Sopenharmony_ci { 6200e5c31af7Sopenharmony_ci input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 6201e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(4.0, 6.0) | vec2(8.0, 12.0) | vec2(2.0, 26.0) ]; 6202e5c31af7Sopenharmony_ci } 6203e5c31af7Sopenharmony_ci 6204e5c31af7Sopenharmony_ci both "" 6205e5c31af7Sopenharmony_ci #version 310 es 6206e5c31af7Sopenharmony_ci precision highp float; 6207e5c31af7Sopenharmony_ci ${DECLARATIONS} 6208e5c31af7Sopenharmony_ci 6209e5c31af7Sopenharmony_ci vec2 func (vec2 a) 6210e5c31af7Sopenharmony_ci { 6211e5c31af7Sopenharmony_ci return a * vec2(2); 6212e5c31af7Sopenharmony_ci } 6213e5c31af7Sopenharmony_ci 6214e5c31af7Sopenharmony_ci void main() 6215e5c31af7Sopenharmony_ci { 6216e5c31af7Sopenharmony_ci ${SETUP} 6217e5c31af7Sopenharmony_ci out0 = func(in0); 6218e5c31af7Sopenharmony_ci ${OUTPUT} 6219e5c31af7Sopenharmony_ci } 6220e5c31af7Sopenharmony_ci "" 6221e5c31af7Sopenharmony_ci end 6222e5c31af7Sopenharmony_ci case ivec3_to_uvec3 6223e5c31af7Sopenharmony_ci version 310 es 6224e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6225e5c31af7Sopenharmony_ci values 6226e5c31af7Sopenharmony_ci { 6227e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 6228e5c31af7Sopenharmony_ci output uvec3 out0 = [ uvec3(2, 4, 6) | uvec3(4, 2, 4) | uvec3(6, 14, 4) ]; 6229e5c31af7Sopenharmony_ci } 6230e5c31af7Sopenharmony_ci 6231e5c31af7Sopenharmony_ci both "" 6232e5c31af7Sopenharmony_ci #version 310 es 6233e5c31af7Sopenharmony_ci precision highp float; 6234e5c31af7Sopenharmony_ci ${DECLARATIONS} 6235e5c31af7Sopenharmony_ci 6236e5c31af7Sopenharmony_ci uvec3 func (uvec3 a) 6237e5c31af7Sopenharmony_ci { 6238e5c31af7Sopenharmony_ci return a * uvec3(2); 6239e5c31af7Sopenharmony_ci } 6240e5c31af7Sopenharmony_ci 6241e5c31af7Sopenharmony_ci void main() 6242e5c31af7Sopenharmony_ci { 6243e5c31af7Sopenharmony_ci ${SETUP} 6244e5c31af7Sopenharmony_ci out0 = func(in0); 6245e5c31af7Sopenharmony_ci ${OUTPUT} 6246e5c31af7Sopenharmony_ci } 6247e5c31af7Sopenharmony_ci "" 6248e5c31af7Sopenharmony_ci end 6249e5c31af7Sopenharmony_ci case ivec3_to_vec3 6250e5c31af7Sopenharmony_ci version 310 es 6251e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6252e5c31af7Sopenharmony_ci values 6253e5c31af7Sopenharmony_ci { 6254e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 6255e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(2.0, 4.0, 6.0) | vec3(4.0, 2.0, 4.0) | vec3(6.0, 14.0, 4.0) ]; 6256e5c31af7Sopenharmony_ci } 6257e5c31af7Sopenharmony_ci 6258e5c31af7Sopenharmony_ci both "" 6259e5c31af7Sopenharmony_ci #version 310 es 6260e5c31af7Sopenharmony_ci precision highp float; 6261e5c31af7Sopenharmony_ci ${DECLARATIONS} 6262e5c31af7Sopenharmony_ci 6263e5c31af7Sopenharmony_ci vec3 func (vec3 a) 6264e5c31af7Sopenharmony_ci { 6265e5c31af7Sopenharmony_ci return a * vec3(2); 6266e5c31af7Sopenharmony_ci } 6267e5c31af7Sopenharmony_ci 6268e5c31af7Sopenharmony_ci void main() 6269e5c31af7Sopenharmony_ci { 6270e5c31af7Sopenharmony_ci ${SETUP} 6271e5c31af7Sopenharmony_ci out0 = func(in0); 6272e5c31af7Sopenharmony_ci ${OUTPUT} 6273e5c31af7Sopenharmony_ci } 6274e5c31af7Sopenharmony_ci "" 6275e5c31af7Sopenharmony_ci end 6276e5c31af7Sopenharmony_ci case uvec3_to_vec3 6277e5c31af7Sopenharmony_ci version 310 es 6278e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6279e5c31af7Sopenharmony_ci values 6280e5c31af7Sopenharmony_ci { 6281e5c31af7Sopenharmony_ci input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 6282e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(4.0, 6.0, 10.0) | vec3(8.0, 12.0, 4.0) | vec3(2.0, 26.0, 14.0) ]; 6283e5c31af7Sopenharmony_ci } 6284e5c31af7Sopenharmony_ci 6285e5c31af7Sopenharmony_ci both "" 6286e5c31af7Sopenharmony_ci #version 310 es 6287e5c31af7Sopenharmony_ci precision highp float; 6288e5c31af7Sopenharmony_ci ${DECLARATIONS} 6289e5c31af7Sopenharmony_ci 6290e5c31af7Sopenharmony_ci vec3 func (vec3 a) 6291e5c31af7Sopenharmony_ci { 6292e5c31af7Sopenharmony_ci return a * vec3(2); 6293e5c31af7Sopenharmony_ci } 6294e5c31af7Sopenharmony_ci 6295e5c31af7Sopenharmony_ci void main() 6296e5c31af7Sopenharmony_ci { 6297e5c31af7Sopenharmony_ci ${SETUP} 6298e5c31af7Sopenharmony_ci out0 = func(in0); 6299e5c31af7Sopenharmony_ci ${OUTPUT} 6300e5c31af7Sopenharmony_ci } 6301e5c31af7Sopenharmony_ci "" 6302e5c31af7Sopenharmony_ci end 6303e5c31af7Sopenharmony_ci case ivec4_to_uvec4 6304e5c31af7Sopenharmony_ci version 310 es 6305e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6306e5c31af7Sopenharmony_ci values 6307e5c31af7Sopenharmony_ci { 6308e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 6309e5c31af7Sopenharmony_ci output uvec4 out0 = [ uvec4(2, 4, 6, 8) | uvec4(4, 2, 4, 12) | uvec4(6, 14, 4, 10) ]; 6310e5c31af7Sopenharmony_ci } 6311e5c31af7Sopenharmony_ci 6312e5c31af7Sopenharmony_ci both "" 6313e5c31af7Sopenharmony_ci #version 310 es 6314e5c31af7Sopenharmony_ci precision highp float; 6315e5c31af7Sopenharmony_ci ${DECLARATIONS} 6316e5c31af7Sopenharmony_ci 6317e5c31af7Sopenharmony_ci uvec4 func (uvec4 a) 6318e5c31af7Sopenharmony_ci { 6319e5c31af7Sopenharmony_ci return a * uvec4(2); 6320e5c31af7Sopenharmony_ci } 6321e5c31af7Sopenharmony_ci 6322e5c31af7Sopenharmony_ci void main() 6323e5c31af7Sopenharmony_ci { 6324e5c31af7Sopenharmony_ci ${SETUP} 6325e5c31af7Sopenharmony_ci out0 = func(in0); 6326e5c31af7Sopenharmony_ci ${OUTPUT} 6327e5c31af7Sopenharmony_ci } 6328e5c31af7Sopenharmony_ci "" 6329e5c31af7Sopenharmony_ci end 6330e5c31af7Sopenharmony_ci case ivec4_to_vec4 6331e5c31af7Sopenharmony_ci version 310 es 6332e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6333e5c31af7Sopenharmony_ci values 6334e5c31af7Sopenharmony_ci { 6335e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 6336e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(2.0, 4.0, 6.0, 8.0) | vec4(4.0, 2.0, 4.0, 12.0) | vec4(6.0, 14.0, 4.0, 10.0) ]; 6337e5c31af7Sopenharmony_ci } 6338e5c31af7Sopenharmony_ci 6339e5c31af7Sopenharmony_ci both "" 6340e5c31af7Sopenharmony_ci #version 310 es 6341e5c31af7Sopenharmony_ci precision highp float; 6342e5c31af7Sopenharmony_ci ${DECLARATIONS} 6343e5c31af7Sopenharmony_ci 6344e5c31af7Sopenharmony_ci vec4 func (vec4 a) 6345e5c31af7Sopenharmony_ci { 6346e5c31af7Sopenharmony_ci return a * vec4(2); 6347e5c31af7Sopenharmony_ci } 6348e5c31af7Sopenharmony_ci 6349e5c31af7Sopenharmony_ci void main() 6350e5c31af7Sopenharmony_ci { 6351e5c31af7Sopenharmony_ci ${SETUP} 6352e5c31af7Sopenharmony_ci out0 = func(in0); 6353e5c31af7Sopenharmony_ci ${OUTPUT} 6354e5c31af7Sopenharmony_ci } 6355e5c31af7Sopenharmony_ci "" 6356e5c31af7Sopenharmony_ci end 6357e5c31af7Sopenharmony_ci case uvec4_to_vec4 6358e5c31af7Sopenharmony_ci version 310 es 6359e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6360e5c31af7Sopenharmony_ci values 6361e5c31af7Sopenharmony_ci { 6362e5c31af7Sopenharmony_ci input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 6363e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(4.0, 6.0, 10.0, 16.0) | vec4(8.0, 12.0, 4.0, 18.0) | vec4(2.0, 26.0, 14.0, 8.0) ]; 6364e5c31af7Sopenharmony_ci } 6365e5c31af7Sopenharmony_ci 6366e5c31af7Sopenharmony_ci both "" 6367e5c31af7Sopenharmony_ci #version 310 es 6368e5c31af7Sopenharmony_ci precision highp float; 6369e5c31af7Sopenharmony_ci ${DECLARATIONS} 6370e5c31af7Sopenharmony_ci 6371e5c31af7Sopenharmony_ci vec4 func (vec4 a) 6372e5c31af7Sopenharmony_ci { 6373e5c31af7Sopenharmony_ci return a * vec4(2); 6374e5c31af7Sopenharmony_ci } 6375e5c31af7Sopenharmony_ci 6376e5c31af7Sopenharmony_ci void main() 6377e5c31af7Sopenharmony_ci { 6378e5c31af7Sopenharmony_ci ${SETUP} 6379e5c31af7Sopenharmony_ci out0 = func(in0); 6380e5c31af7Sopenharmony_ci ${OUTPUT} 6381e5c31af7Sopenharmony_ci } 6382e5c31af7Sopenharmony_ci "" 6383e5c31af7Sopenharmony_ci end 6384e5c31af7Sopenharmony_ci 6385e5c31af7Sopenharmony_ciend # functions 6386e5c31af7Sopenharmony_cigroup struct_fields "Struct field selectors" 6387e5c31af7Sopenharmony_ci 6388e5c31af7Sopenharmony_ci group input_before_field "Input before field" 6389e5c31af7Sopenharmony_ci 6390e5c31af7Sopenharmony_ci case int_to_float 6391e5c31af7Sopenharmony_ci version 310 es 6392e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6393e5c31af7Sopenharmony_ci values 6394e5c31af7Sopenharmony_ci { 6395e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 6396e5c31af7Sopenharmony_ci output float out0 = [ 4.0 | 3.0 | 3.0 | 5.0 | 7.0 ]; 6397e5c31af7Sopenharmony_ci } 6398e5c31af7Sopenharmony_ci 6399e5c31af7Sopenharmony_ci both "" 6400e5c31af7Sopenharmony_ci #version 310 es 6401e5c31af7Sopenharmony_ci precision highp float; 6402e5c31af7Sopenharmony_ci ${DECLARATIONS} 6403e5c31af7Sopenharmony_ci 6404e5c31af7Sopenharmony_ci void main() 6405e5c31af7Sopenharmony_ci { 6406e5c31af7Sopenharmony_ci ${SETUP} 6407e5c31af7Sopenharmony_ci struct { 6408e5c31af7Sopenharmony_ci float val; 6409e5c31af7Sopenharmony_ci } x; 6410e5c31af7Sopenharmony_ci 6411e5c31af7Sopenharmony_ci x.val = 2.0; 6412e5c31af7Sopenharmony_ci 6413e5c31af7Sopenharmony_ci out0 = in0 + x.val; 6414e5c31af7Sopenharmony_ci ${OUTPUT} 6415e5c31af7Sopenharmony_ci } 6416e5c31af7Sopenharmony_ci "" 6417e5c31af7Sopenharmony_ci end 6418e5c31af7Sopenharmony_ci case int_to_uint 6419e5c31af7Sopenharmony_ci version 310 es 6420e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6421e5c31af7Sopenharmony_ci values 6422e5c31af7Sopenharmony_ci { 6423e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 6424e5c31af7Sopenharmony_ci output uint out0 = [ 3 | 2 | 2 | 4 | 6 ]; 6425e5c31af7Sopenharmony_ci } 6426e5c31af7Sopenharmony_ci 6427e5c31af7Sopenharmony_ci both "" 6428e5c31af7Sopenharmony_ci #version 310 es 6429e5c31af7Sopenharmony_ci precision highp float; 6430e5c31af7Sopenharmony_ci ${DECLARATIONS} 6431e5c31af7Sopenharmony_ci 6432e5c31af7Sopenharmony_ci void main() 6433e5c31af7Sopenharmony_ci { 6434e5c31af7Sopenharmony_ci ${SETUP} 6435e5c31af7Sopenharmony_ci struct { 6436e5c31af7Sopenharmony_ci uint val; 6437e5c31af7Sopenharmony_ci } x; 6438e5c31af7Sopenharmony_ci 6439e5c31af7Sopenharmony_ci x.val = 1; 6440e5c31af7Sopenharmony_ci 6441e5c31af7Sopenharmony_ci out0 = in0 + x.val; 6442e5c31af7Sopenharmony_ci ${OUTPUT} 6443e5c31af7Sopenharmony_ci } 6444e5c31af7Sopenharmony_ci "" 6445e5c31af7Sopenharmony_ci end 6446e5c31af7Sopenharmony_ci case int_to_vec2 6447e5c31af7Sopenharmony_ci version 310 es 6448e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6449e5c31af7Sopenharmony_ci values 6450e5c31af7Sopenharmony_ci { 6451e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 6452e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(3.0, 4.0) | vec2(2.0, 3.0) | vec2(2.0, 3.0) | vec2(4.0, 5.0) | vec2(6.0, 7.0) ]; 6453e5c31af7Sopenharmony_ci } 6454e5c31af7Sopenharmony_ci 6455e5c31af7Sopenharmony_ci both "" 6456e5c31af7Sopenharmony_ci #version 310 es 6457e5c31af7Sopenharmony_ci precision highp float; 6458e5c31af7Sopenharmony_ci ${DECLARATIONS} 6459e5c31af7Sopenharmony_ci 6460e5c31af7Sopenharmony_ci void main() 6461e5c31af7Sopenharmony_ci { 6462e5c31af7Sopenharmony_ci ${SETUP} 6463e5c31af7Sopenharmony_ci struct { 6464e5c31af7Sopenharmony_ci vec2 val; 6465e5c31af7Sopenharmony_ci } x; 6466e5c31af7Sopenharmony_ci 6467e5c31af7Sopenharmony_ci x.val = vec2(1.0, 2.0); 6468e5c31af7Sopenharmony_ci 6469e5c31af7Sopenharmony_ci out0 = in0 + x.val; 6470e5c31af7Sopenharmony_ci ${OUTPUT} 6471e5c31af7Sopenharmony_ci } 6472e5c31af7Sopenharmony_ci "" 6473e5c31af7Sopenharmony_ci end 6474e5c31af7Sopenharmony_ci case int_to_vec3 6475e5c31af7Sopenharmony_ci version 310 es 6476e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6477e5c31af7Sopenharmony_ci values 6478e5c31af7Sopenharmony_ci { 6479e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 6480e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(3.0, 4.0, 5.0) | vec3(2.0, 3.0, 4.0) | vec3(2.0, 3.0, 4.0) | vec3(4.0, 5.0, 6.0) | vec3(6.0, 7.0, 8.0) ]; 6481e5c31af7Sopenharmony_ci } 6482e5c31af7Sopenharmony_ci 6483e5c31af7Sopenharmony_ci both "" 6484e5c31af7Sopenharmony_ci #version 310 es 6485e5c31af7Sopenharmony_ci precision highp float; 6486e5c31af7Sopenharmony_ci ${DECLARATIONS} 6487e5c31af7Sopenharmony_ci 6488e5c31af7Sopenharmony_ci void main() 6489e5c31af7Sopenharmony_ci { 6490e5c31af7Sopenharmony_ci ${SETUP} 6491e5c31af7Sopenharmony_ci struct { 6492e5c31af7Sopenharmony_ci vec3 val; 6493e5c31af7Sopenharmony_ci } x; 6494e5c31af7Sopenharmony_ci 6495e5c31af7Sopenharmony_ci x.val = vec3(1.0, 2.0, 3.0); 6496e5c31af7Sopenharmony_ci 6497e5c31af7Sopenharmony_ci out0 = in0 + x.val; 6498e5c31af7Sopenharmony_ci ${OUTPUT} 6499e5c31af7Sopenharmony_ci } 6500e5c31af7Sopenharmony_ci "" 6501e5c31af7Sopenharmony_ci end 6502e5c31af7Sopenharmony_ci case int_to_vec4 6503e5c31af7Sopenharmony_ci version 310 es 6504e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6505e5c31af7Sopenharmony_ci values 6506e5c31af7Sopenharmony_ci { 6507e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 6508e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(3.0, 4.0, 5.0, 6.0) | vec4(2.0, 3.0, 4.0, 5.0) | vec4(2.0, 3.0, 4.0, 5.0) | vec4(4.0, 5.0, 6.0, 7.0) | vec4(6.0, 7.0, 8.0, 9.0) ]; 6509e5c31af7Sopenharmony_ci } 6510e5c31af7Sopenharmony_ci 6511e5c31af7Sopenharmony_ci both "" 6512e5c31af7Sopenharmony_ci #version 310 es 6513e5c31af7Sopenharmony_ci precision highp float; 6514e5c31af7Sopenharmony_ci ${DECLARATIONS} 6515e5c31af7Sopenharmony_ci 6516e5c31af7Sopenharmony_ci void main() 6517e5c31af7Sopenharmony_ci { 6518e5c31af7Sopenharmony_ci ${SETUP} 6519e5c31af7Sopenharmony_ci struct { 6520e5c31af7Sopenharmony_ci vec4 val; 6521e5c31af7Sopenharmony_ci } x; 6522e5c31af7Sopenharmony_ci 6523e5c31af7Sopenharmony_ci x.val = vec4(1.0, 2.0, 3.0, 4.0); 6524e5c31af7Sopenharmony_ci 6525e5c31af7Sopenharmony_ci out0 = in0 + x.val; 6526e5c31af7Sopenharmony_ci ${OUTPUT} 6527e5c31af7Sopenharmony_ci } 6528e5c31af7Sopenharmony_ci "" 6529e5c31af7Sopenharmony_ci end 6530e5c31af7Sopenharmony_ci case int_to_uvec2 6531e5c31af7Sopenharmony_ci version 310 es 6532e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6533e5c31af7Sopenharmony_ci values 6534e5c31af7Sopenharmony_ci { 6535e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 6536e5c31af7Sopenharmony_ci output uvec2 out0 = [ uvec2(4, 5) | uvec2(3, 4) | uvec2(3, 4) | uvec2(5, 6) | uvec2(7, 8) ]; 6537e5c31af7Sopenharmony_ci } 6538e5c31af7Sopenharmony_ci 6539e5c31af7Sopenharmony_ci both "" 6540e5c31af7Sopenharmony_ci #version 310 es 6541e5c31af7Sopenharmony_ci precision highp float; 6542e5c31af7Sopenharmony_ci ${DECLARATIONS} 6543e5c31af7Sopenharmony_ci 6544e5c31af7Sopenharmony_ci void main() 6545e5c31af7Sopenharmony_ci { 6546e5c31af7Sopenharmony_ci ${SETUP} 6547e5c31af7Sopenharmony_ci struct { 6548e5c31af7Sopenharmony_ci uvec2 val; 6549e5c31af7Sopenharmony_ci } x; 6550e5c31af7Sopenharmony_ci 6551e5c31af7Sopenharmony_ci x.val = uvec2(2, 3); 6552e5c31af7Sopenharmony_ci 6553e5c31af7Sopenharmony_ci out0 = in0 + x.val; 6554e5c31af7Sopenharmony_ci ${OUTPUT} 6555e5c31af7Sopenharmony_ci } 6556e5c31af7Sopenharmony_ci "" 6557e5c31af7Sopenharmony_ci end 6558e5c31af7Sopenharmony_ci case int_to_uvec3 6559e5c31af7Sopenharmony_ci version 310 es 6560e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6561e5c31af7Sopenharmony_ci values 6562e5c31af7Sopenharmony_ci { 6563e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 6564e5c31af7Sopenharmony_ci output uvec3 out0 = [ uvec3(4, 5, 7) | uvec3(3, 4, 6) | uvec3(3, 4, 6) | uvec3(5, 6, 8) | uvec3(7, 8, 10) ]; 6565e5c31af7Sopenharmony_ci } 6566e5c31af7Sopenharmony_ci 6567e5c31af7Sopenharmony_ci both "" 6568e5c31af7Sopenharmony_ci #version 310 es 6569e5c31af7Sopenharmony_ci precision highp float; 6570e5c31af7Sopenharmony_ci ${DECLARATIONS} 6571e5c31af7Sopenharmony_ci 6572e5c31af7Sopenharmony_ci void main() 6573e5c31af7Sopenharmony_ci { 6574e5c31af7Sopenharmony_ci ${SETUP} 6575e5c31af7Sopenharmony_ci struct { 6576e5c31af7Sopenharmony_ci uvec3 val; 6577e5c31af7Sopenharmony_ci } x; 6578e5c31af7Sopenharmony_ci 6579e5c31af7Sopenharmony_ci x.val = uvec3(2, 3, 5); 6580e5c31af7Sopenharmony_ci 6581e5c31af7Sopenharmony_ci out0 = in0 + x.val; 6582e5c31af7Sopenharmony_ci ${OUTPUT} 6583e5c31af7Sopenharmony_ci } 6584e5c31af7Sopenharmony_ci "" 6585e5c31af7Sopenharmony_ci end 6586e5c31af7Sopenharmony_ci case int_to_uvec4 6587e5c31af7Sopenharmony_ci version 310 es 6588e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6589e5c31af7Sopenharmony_ci values 6590e5c31af7Sopenharmony_ci { 6591e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 6592e5c31af7Sopenharmony_ci output uvec4 out0 = [ uvec4(4, 5, 7, 10) | uvec4(3, 4, 6, 9) | uvec4(3, 4, 6, 9) | uvec4(5, 6, 8, 11) | uvec4(7, 8, 10, 13) ]; 6593e5c31af7Sopenharmony_ci } 6594e5c31af7Sopenharmony_ci 6595e5c31af7Sopenharmony_ci both "" 6596e5c31af7Sopenharmony_ci #version 310 es 6597e5c31af7Sopenharmony_ci precision highp float; 6598e5c31af7Sopenharmony_ci ${DECLARATIONS} 6599e5c31af7Sopenharmony_ci 6600e5c31af7Sopenharmony_ci void main() 6601e5c31af7Sopenharmony_ci { 6602e5c31af7Sopenharmony_ci ${SETUP} 6603e5c31af7Sopenharmony_ci struct { 6604e5c31af7Sopenharmony_ci uvec4 val; 6605e5c31af7Sopenharmony_ci } x; 6606e5c31af7Sopenharmony_ci 6607e5c31af7Sopenharmony_ci x.val = uvec4(2, 3, 5, 8); 6608e5c31af7Sopenharmony_ci 6609e5c31af7Sopenharmony_ci out0 = in0 + x.val; 6610e5c31af7Sopenharmony_ci ${OUTPUT} 6611e5c31af7Sopenharmony_ci } 6612e5c31af7Sopenharmony_ci "" 6613e5c31af7Sopenharmony_ci end 6614e5c31af7Sopenharmony_ci case uint_to_float 6615e5c31af7Sopenharmony_ci version 310 es 6616e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6617e5c31af7Sopenharmony_ci values 6618e5c31af7Sopenharmony_ci { 6619e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 6620e5c31af7Sopenharmony_ci output float out0 = [ 3.0 | 5.0 | 6.0 | 9.0 | 13.0 ]; 6621e5c31af7Sopenharmony_ci } 6622e5c31af7Sopenharmony_ci 6623e5c31af7Sopenharmony_ci both "" 6624e5c31af7Sopenharmony_ci #version 310 es 6625e5c31af7Sopenharmony_ci precision highp float; 6626e5c31af7Sopenharmony_ci ${DECLARATIONS} 6627e5c31af7Sopenharmony_ci 6628e5c31af7Sopenharmony_ci void main() 6629e5c31af7Sopenharmony_ci { 6630e5c31af7Sopenharmony_ci ${SETUP} 6631e5c31af7Sopenharmony_ci struct { 6632e5c31af7Sopenharmony_ci float val; 6633e5c31af7Sopenharmony_ci } x; 6634e5c31af7Sopenharmony_ci 6635e5c31af7Sopenharmony_ci x.val = 2.0; 6636e5c31af7Sopenharmony_ci 6637e5c31af7Sopenharmony_ci out0 = in0 + x.val; 6638e5c31af7Sopenharmony_ci ${OUTPUT} 6639e5c31af7Sopenharmony_ci } 6640e5c31af7Sopenharmony_ci "" 6641e5c31af7Sopenharmony_ci end 6642e5c31af7Sopenharmony_ci case uint_to_vec2 6643e5c31af7Sopenharmony_ci version 310 es 6644e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6645e5c31af7Sopenharmony_ci values 6646e5c31af7Sopenharmony_ci { 6647e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 6648e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(2.0, 3.0) | vec2(4.0, 5.0) | vec2(5.0, 6.0) | vec2(8.0, 9.0) | vec2(12.0, 13.0) ]; 6649e5c31af7Sopenharmony_ci } 6650e5c31af7Sopenharmony_ci 6651e5c31af7Sopenharmony_ci both "" 6652e5c31af7Sopenharmony_ci #version 310 es 6653e5c31af7Sopenharmony_ci precision highp float; 6654e5c31af7Sopenharmony_ci ${DECLARATIONS} 6655e5c31af7Sopenharmony_ci 6656e5c31af7Sopenharmony_ci void main() 6657e5c31af7Sopenharmony_ci { 6658e5c31af7Sopenharmony_ci ${SETUP} 6659e5c31af7Sopenharmony_ci struct { 6660e5c31af7Sopenharmony_ci vec2 val; 6661e5c31af7Sopenharmony_ci } x; 6662e5c31af7Sopenharmony_ci 6663e5c31af7Sopenharmony_ci x.val = vec2(1.0, 2.0); 6664e5c31af7Sopenharmony_ci 6665e5c31af7Sopenharmony_ci out0 = in0 + x.val; 6666e5c31af7Sopenharmony_ci ${OUTPUT} 6667e5c31af7Sopenharmony_ci } 6668e5c31af7Sopenharmony_ci "" 6669e5c31af7Sopenharmony_ci end 6670e5c31af7Sopenharmony_ci case uint_to_vec3 6671e5c31af7Sopenharmony_ci version 310 es 6672e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6673e5c31af7Sopenharmony_ci values 6674e5c31af7Sopenharmony_ci { 6675e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 6676e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(2.0, 3.0, 4.0) | vec3(4.0, 5.0, 6.0) | vec3(5.0, 6.0, 7.0) | vec3(8.0, 9.0, 10.0) | vec3(12.0, 13.0, 14.0) ]; 6677e5c31af7Sopenharmony_ci } 6678e5c31af7Sopenharmony_ci 6679e5c31af7Sopenharmony_ci both "" 6680e5c31af7Sopenharmony_ci #version 310 es 6681e5c31af7Sopenharmony_ci precision highp float; 6682e5c31af7Sopenharmony_ci ${DECLARATIONS} 6683e5c31af7Sopenharmony_ci 6684e5c31af7Sopenharmony_ci void main() 6685e5c31af7Sopenharmony_ci { 6686e5c31af7Sopenharmony_ci ${SETUP} 6687e5c31af7Sopenharmony_ci struct { 6688e5c31af7Sopenharmony_ci vec3 val; 6689e5c31af7Sopenharmony_ci } x; 6690e5c31af7Sopenharmony_ci 6691e5c31af7Sopenharmony_ci x.val = vec3(1.0, 2.0, 3.0); 6692e5c31af7Sopenharmony_ci 6693e5c31af7Sopenharmony_ci out0 = in0 + x.val; 6694e5c31af7Sopenharmony_ci ${OUTPUT} 6695e5c31af7Sopenharmony_ci } 6696e5c31af7Sopenharmony_ci "" 6697e5c31af7Sopenharmony_ci end 6698e5c31af7Sopenharmony_ci case uint_to_vec4 6699e5c31af7Sopenharmony_ci version 310 es 6700e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6701e5c31af7Sopenharmony_ci values 6702e5c31af7Sopenharmony_ci { 6703e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 6704e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(2.0, 3.0, 4.0, 5.0) | vec4(4.0, 5.0, 6.0, 7.0) | vec4(5.0, 6.0, 7.0, 8.0) | vec4(8.0, 9.0, 10.0, 11.0) | vec4(12.0, 13.0, 14.0, 15.0) ]; 6705e5c31af7Sopenharmony_ci } 6706e5c31af7Sopenharmony_ci 6707e5c31af7Sopenharmony_ci both "" 6708e5c31af7Sopenharmony_ci #version 310 es 6709e5c31af7Sopenharmony_ci precision highp float; 6710e5c31af7Sopenharmony_ci ${DECLARATIONS} 6711e5c31af7Sopenharmony_ci 6712e5c31af7Sopenharmony_ci void main() 6713e5c31af7Sopenharmony_ci { 6714e5c31af7Sopenharmony_ci ${SETUP} 6715e5c31af7Sopenharmony_ci struct { 6716e5c31af7Sopenharmony_ci vec4 val; 6717e5c31af7Sopenharmony_ci } x; 6718e5c31af7Sopenharmony_ci 6719e5c31af7Sopenharmony_ci x.val = vec4(1.0, 2.0, 3.0, 4.0); 6720e5c31af7Sopenharmony_ci 6721e5c31af7Sopenharmony_ci out0 = in0 + x.val; 6722e5c31af7Sopenharmony_ci ${OUTPUT} 6723e5c31af7Sopenharmony_ci } 6724e5c31af7Sopenharmony_ci "" 6725e5c31af7Sopenharmony_ci end 6726e5c31af7Sopenharmony_ci case ivec2_to_uvec2 6727e5c31af7Sopenharmony_ci version 310 es 6728e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6729e5c31af7Sopenharmony_ci values 6730e5c31af7Sopenharmony_ci { 6731e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 6732e5c31af7Sopenharmony_ci output uvec2 out0 = [ uvec2(3, 5) | uvec2(4, 4) | uvec2(5, 10) ]; 6733e5c31af7Sopenharmony_ci } 6734e5c31af7Sopenharmony_ci 6735e5c31af7Sopenharmony_ci both "" 6736e5c31af7Sopenharmony_ci #version 310 es 6737e5c31af7Sopenharmony_ci precision highp float; 6738e5c31af7Sopenharmony_ci ${DECLARATIONS} 6739e5c31af7Sopenharmony_ci 6740e5c31af7Sopenharmony_ci void main() 6741e5c31af7Sopenharmony_ci { 6742e5c31af7Sopenharmony_ci ${SETUP} 6743e5c31af7Sopenharmony_ci struct { 6744e5c31af7Sopenharmony_ci uvec2 val; 6745e5c31af7Sopenharmony_ci } x; 6746e5c31af7Sopenharmony_ci 6747e5c31af7Sopenharmony_ci x.val = uvec2(2, 3); 6748e5c31af7Sopenharmony_ci 6749e5c31af7Sopenharmony_ci out0 = in0 + x.val; 6750e5c31af7Sopenharmony_ci ${OUTPUT} 6751e5c31af7Sopenharmony_ci } 6752e5c31af7Sopenharmony_ci "" 6753e5c31af7Sopenharmony_ci end 6754e5c31af7Sopenharmony_ci case ivec2_to_vec2 6755e5c31af7Sopenharmony_ci version 310 es 6756e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6757e5c31af7Sopenharmony_ci values 6758e5c31af7Sopenharmony_ci { 6759e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 6760e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(2.0, 4.0) | vec2(3.0, 3.0) | vec2(4.0, 9.0) ]; 6761e5c31af7Sopenharmony_ci } 6762e5c31af7Sopenharmony_ci 6763e5c31af7Sopenharmony_ci both "" 6764e5c31af7Sopenharmony_ci #version 310 es 6765e5c31af7Sopenharmony_ci precision highp float; 6766e5c31af7Sopenharmony_ci ${DECLARATIONS} 6767e5c31af7Sopenharmony_ci 6768e5c31af7Sopenharmony_ci void main() 6769e5c31af7Sopenharmony_ci { 6770e5c31af7Sopenharmony_ci ${SETUP} 6771e5c31af7Sopenharmony_ci struct { 6772e5c31af7Sopenharmony_ci vec2 val; 6773e5c31af7Sopenharmony_ci } x; 6774e5c31af7Sopenharmony_ci 6775e5c31af7Sopenharmony_ci x.val = vec2(1.0, 2.0); 6776e5c31af7Sopenharmony_ci 6777e5c31af7Sopenharmony_ci out0 = in0 + x.val; 6778e5c31af7Sopenharmony_ci ${OUTPUT} 6779e5c31af7Sopenharmony_ci } 6780e5c31af7Sopenharmony_ci "" 6781e5c31af7Sopenharmony_ci end 6782e5c31af7Sopenharmony_ci case uvec2_to_vec2 6783e5c31af7Sopenharmony_ci version 310 es 6784e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6785e5c31af7Sopenharmony_ci values 6786e5c31af7Sopenharmony_ci { 6787e5c31af7Sopenharmony_ci input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 6788e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(3.0, 5.0) | vec2(5.0, 8.0) | vec2(2.0, 15.0) ]; 6789e5c31af7Sopenharmony_ci } 6790e5c31af7Sopenharmony_ci 6791e5c31af7Sopenharmony_ci both "" 6792e5c31af7Sopenharmony_ci #version 310 es 6793e5c31af7Sopenharmony_ci precision highp float; 6794e5c31af7Sopenharmony_ci ${DECLARATIONS} 6795e5c31af7Sopenharmony_ci 6796e5c31af7Sopenharmony_ci void main() 6797e5c31af7Sopenharmony_ci { 6798e5c31af7Sopenharmony_ci ${SETUP} 6799e5c31af7Sopenharmony_ci struct { 6800e5c31af7Sopenharmony_ci vec2 val; 6801e5c31af7Sopenharmony_ci } x; 6802e5c31af7Sopenharmony_ci 6803e5c31af7Sopenharmony_ci x.val = vec2(1.0, 2.0); 6804e5c31af7Sopenharmony_ci 6805e5c31af7Sopenharmony_ci out0 = in0 + x.val; 6806e5c31af7Sopenharmony_ci ${OUTPUT} 6807e5c31af7Sopenharmony_ci } 6808e5c31af7Sopenharmony_ci "" 6809e5c31af7Sopenharmony_ci end 6810e5c31af7Sopenharmony_ci case ivec3_to_uvec3 6811e5c31af7Sopenharmony_ci version 310 es 6812e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6813e5c31af7Sopenharmony_ci values 6814e5c31af7Sopenharmony_ci { 6815e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 6816e5c31af7Sopenharmony_ci output uvec3 out0 = [ uvec3(3, 5, 8) | uvec3(4, 4, 7) | uvec3(5, 10, 7) ]; 6817e5c31af7Sopenharmony_ci } 6818e5c31af7Sopenharmony_ci 6819e5c31af7Sopenharmony_ci both "" 6820e5c31af7Sopenharmony_ci #version 310 es 6821e5c31af7Sopenharmony_ci precision highp float; 6822e5c31af7Sopenharmony_ci ${DECLARATIONS} 6823e5c31af7Sopenharmony_ci 6824e5c31af7Sopenharmony_ci void main() 6825e5c31af7Sopenharmony_ci { 6826e5c31af7Sopenharmony_ci ${SETUP} 6827e5c31af7Sopenharmony_ci struct { 6828e5c31af7Sopenharmony_ci uvec3 val; 6829e5c31af7Sopenharmony_ci } x; 6830e5c31af7Sopenharmony_ci 6831e5c31af7Sopenharmony_ci x.val = uvec3(2, 3, 5); 6832e5c31af7Sopenharmony_ci 6833e5c31af7Sopenharmony_ci out0 = in0 + x.val; 6834e5c31af7Sopenharmony_ci ${OUTPUT} 6835e5c31af7Sopenharmony_ci } 6836e5c31af7Sopenharmony_ci "" 6837e5c31af7Sopenharmony_ci end 6838e5c31af7Sopenharmony_ci case ivec3_to_vec3 6839e5c31af7Sopenharmony_ci version 310 es 6840e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6841e5c31af7Sopenharmony_ci values 6842e5c31af7Sopenharmony_ci { 6843e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 6844e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(2.0, 4.0, 6.0) | vec3(3.0, 3.0, 5.0) | vec3(4.0, 9.0, 5.0) ]; 6845e5c31af7Sopenharmony_ci } 6846e5c31af7Sopenharmony_ci 6847e5c31af7Sopenharmony_ci both "" 6848e5c31af7Sopenharmony_ci #version 310 es 6849e5c31af7Sopenharmony_ci precision highp float; 6850e5c31af7Sopenharmony_ci ${DECLARATIONS} 6851e5c31af7Sopenharmony_ci 6852e5c31af7Sopenharmony_ci void main() 6853e5c31af7Sopenharmony_ci { 6854e5c31af7Sopenharmony_ci ${SETUP} 6855e5c31af7Sopenharmony_ci struct { 6856e5c31af7Sopenharmony_ci vec3 val; 6857e5c31af7Sopenharmony_ci } x; 6858e5c31af7Sopenharmony_ci 6859e5c31af7Sopenharmony_ci x.val = vec3(1.0, 2.0, 3.0); 6860e5c31af7Sopenharmony_ci 6861e5c31af7Sopenharmony_ci out0 = in0 + x.val; 6862e5c31af7Sopenharmony_ci ${OUTPUT} 6863e5c31af7Sopenharmony_ci } 6864e5c31af7Sopenharmony_ci "" 6865e5c31af7Sopenharmony_ci end 6866e5c31af7Sopenharmony_ci case uvec3_to_vec3 6867e5c31af7Sopenharmony_ci version 310 es 6868e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6869e5c31af7Sopenharmony_ci values 6870e5c31af7Sopenharmony_ci { 6871e5c31af7Sopenharmony_ci input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 6872e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(3.0, 5.0, 8.0) | vec3(5.0, 8.0, 5.0) | vec3(2.0, 15.0, 10.0) ]; 6873e5c31af7Sopenharmony_ci } 6874e5c31af7Sopenharmony_ci 6875e5c31af7Sopenharmony_ci both "" 6876e5c31af7Sopenharmony_ci #version 310 es 6877e5c31af7Sopenharmony_ci precision highp float; 6878e5c31af7Sopenharmony_ci ${DECLARATIONS} 6879e5c31af7Sopenharmony_ci 6880e5c31af7Sopenharmony_ci void main() 6881e5c31af7Sopenharmony_ci { 6882e5c31af7Sopenharmony_ci ${SETUP} 6883e5c31af7Sopenharmony_ci struct { 6884e5c31af7Sopenharmony_ci vec3 val; 6885e5c31af7Sopenharmony_ci } x; 6886e5c31af7Sopenharmony_ci 6887e5c31af7Sopenharmony_ci x.val = vec3(1.0, 2.0, 3.0); 6888e5c31af7Sopenharmony_ci 6889e5c31af7Sopenharmony_ci out0 = in0 + x.val; 6890e5c31af7Sopenharmony_ci ${OUTPUT} 6891e5c31af7Sopenharmony_ci } 6892e5c31af7Sopenharmony_ci "" 6893e5c31af7Sopenharmony_ci end 6894e5c31af7Sopenharmony_ci case ivec4_to_uvec4 6895e5c31af7Sopenharmony_ci version 310 es 6896e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6897e5c31af7Sopenharmony_ci values 6898e5c31af7Sopenharmony_ci { 6899e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 6900e5c31af7Sopenharmony_ci output uvec4 out0 = [ uvec4(3, 5, 8, 12) | uvec4(4, 4, 7, 14) | uvec4(5, 10, 7, 13) ]; 6901e5c31af7Sopenharmony_ci } 6902e5c31af7Sopenharmony_ci 6903e5c31af7Sopenharmony_ci both "" 6904e5c31af7Sopenharmony_ci #version 310 es 6905e5c31af7Sopenharmony_ci precision highp float; 6906e5c31af7Sopenharmony_ci ${DECLARATIONS} 6907e5c31af7Sopenharmony_ci 6908e5c31af7Sopenharmony_ci void main() 6909e5c31af7Sopenharmony_ci { 6910e5c31af7Sopenharmony_ci ${SETUP} 6911e5c31af7Sopenharmony_ci struct { 6912e5c31af7Sopenharmony_ci uvec4 val; 6913e5c31af7Sopenharmony_ci } x; 6914e5c31af7Sopenharmony_ci 6915e5c31af7Sopenharmony_ci x.val = uvec4(2, 3, 5, 8); 6916e5c31af7Sopenharmony_ci 6917e5c31af7Sopenharmony_ci out0 = in0 + x.val; 6918e5c31af7Sopenharmony_ci ${OUTPUT} 6919e5c31af7Sopenharmony_ci } 6920e5c31af7Sopenharmony_ci "" 6921e5c31af7Sopenharmony_ci end 6922e5c31af7Sopenharmony_ci case ivec4_to_vec4 6923e5c31af7Sopenharmony_ci version 310 es 6924e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6925e5c31af7Sopenharmony_ci values 6926e5c31af7Sopenharmony_ci { 6927e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 6928e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(2.0, 4.0, 6.0, 8.0) | vec4(3.0, 3.0, 5.0, 10.0) | vec4(4.0, 9.0, 5.0, 9.0) ]; 6929e5c31af7Sopenharmony_ci } 6930e5c31af7Sopenharmony_ci 6931e5c31af7Sopenharmony_ci both "" 6932e5c31af7Sopenharmony_ci #version 310 es 6933e5c31af7Sopenharmony_ci precision highp float; 6934e5c31af7Sopenharmony_ci ${DECLARATIONS} 6935e5c31af7Sopenharmony_ci 6936e5c31af7Sopenharmony_ci void main() 6937e5c31af7Sopenharmony_ci { 6938e5c31af7Sopenharmony_ci ${SETUP} 6939e5c31af7Sopenharmony_ci struct { 6940e5c31af7Sopenharmony_ci vec4 val; 6941e5c31af7Sopenharmony_ci } x; 6942e5c31af7Sopenharmony_ci 6943e5c31af7Sopenharmony_ci x.val = vec4(1.0, 2.0, 3.0, 4.0); 6944e5c31af7Sopenharmony_ci 6945e5c31af7Sopenharmony_ci out0 = in0 + x.val; 6946e5c31af7Sopenharmony_ci ${OUTPUT} 6947e5c31af7Sopenharmony_ci } 6948e5c31af7Sopenharmony_ci "" 6949e5c31af7Sopenharmony_ci end 6950e5c31af7Sopenharmony_ci case uvec4_to_vec4 6951e5c31af7Sopenharmony_ci version 310 es 6952e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6953e5c31af7Sopenharmony_ci values 6954e5c31af7Sopenharmony_ci { 6955e5c31af7Sopenharmony_ci input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 6956e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(3.0, 5.0, 8.0, 12.0) | vec4(5.0, 8.0, 5.0, 13.0) | vec4(2.0, 15.0, 10.0, 8.0) ]; 6957e5c31af7Sopenharmony_ci } 6958e5c31af7Sopenharmony_ci 6959e5c31af7Sopenharmony_ci both "" 6960e5c31af7Sopenharmony_ci #version 310 es 6961e5c31af7Sopenharmony_ci precision highp float; 6962e5c31af7Sopenharmony_ci ${DECLARATIONS} 6963e5c31af7Sopenharmony_ci 6964e5c31af7Sopenharmony_ci void main() 6965e5c31af7Sopenharmony_ci { 6966e5c31af7Sopenharmony_ci ${SETUP} 6967e5c31af7Sopenharmony_ci struct { 6968e5c31af7Sopenharmony_ci vec4 val; 6969e5c31af7Sopenharmony_ci } x; 6970e5c31af7Sopenharmony_ci 6971e5c31af7Sopenharmony_ci x.val = vec4(1.0, 2.0, 3.0, 4.0); 6972e5c31af7Sopenharmony_ci 6973e5c31af7Sopenharmony_ci out0 = in0 + x.val; 6974e5c31af7Sopenharmony_ci ${OUTPUT} 6975e5c31af7Sopenharmony_ci } 6976e5c31af7Sopenharmony_ci "" 6977e5c31af7Sopenharmony_ci end 6978e5c31af7Sopenharmony_ci 6979e5c31af7Sopenharmony_ci end # input_before_field 6980e5c31af7Sopenharmony_ci group field_before_input "Field before input" 6981e5c31af7Sopenharmony_ci 6982e5c31af7Sopenharmony_ci case int_to_float 6983e5c31af7Sopenharmony_ci version 310 es 6984e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6985e5c31af7Sopenharmony_ci values 6986e5c31af7Sopenharmony_ci { 6987e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 6988e5c31af7Sopenharmony_ci output float out0 = [ 4.0 | 3.0 | 3.0 | 5.0 | 7.0 ]; 6989e5c31af7Sopenharmony_ci } 6990e5c31af7Sopenharmony_ci 6991e5c31af7Sopenharmony_ci both "" 6992e5c31af7Sopenharmony_ci #version 310 es 6993e5c31af7Sopenharmony_ci precision highp float; 6994e5c31af7Sopenharmony_ci ${DECLARATIONS} 6995e5c31af7Sopenharmony_ci 6996e5c31af7Sopenharmony_ci void main() 6997e5c31af7Sopenharmony_ci { 6998e5c31af7Sopenharmony_ci ${SETUP} 6999e5c31af7Sopenharmony_ci struct { 7000e5c31af7Sopenharmony_ci float val; 7001e5c31af7Sopenharmony_ci } x; 7002e5c31af7Sopenharmony_ci 7003e5c31af7Sopenharmony_ci x.val = 2.0; 7004e5c31af7Sopenharmony_ci 7005e5c31af7Sopenharmony_ci out0 = x.val + in0; 7006e5c31af7Sopenharmony_ci ${OUTPUT} 7007e5c31af7Sopenharmony_ci } 7008e5c31af7Sopenharmony_ci "" 7009e5c31af7Sopenharmony_ci end 7010e5c31af7Sopenharmony_ci case int_to_uint 7011e5c31af7Sopenharmony_ci version 310 es 7012e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7013e5c31af7Sopenharmony_ci values 7014e5c31af7Sopenharmony_ci { 7015e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 7016e5c31af7Sopenharmony_ci output uint out0 = [ 3 | 2 | 2 | 4 | 6 ]; 7017e5c31af7Sopenharmony_ci } 7018e5c31af7Sopenharmony_ci 7019e5c31af7Sopenharmony_ci both "" 7020e5c31af7Sopenharmony_ci #version 310 es 7021e5c31af7Sopenharmony_ci precision highp float; 7022e5c31af7Sopenharmony_ci ${DECLARATIONS} 7023e5c31af7Sopenharmony_ci 7024e5c31af7Sopenharmony_ci void main() 7025e5c31af7Sopenharmony_ci { 7026e5c31af7Sopenharmony_ci ${SETUP} 7027e5c31af7Sopenharmony_ci struct { 7028e5c31af7Sopenharmony_ci uint val; 7029e5c31af7Sopenharmony_ci } x; 7030e5c31af7Sopenharmony_ci 7031e5c31af7Sopenharmony_ci x.val = 1; 7032e5c31af7Sopenharmony_ci 7033e5c31af7Sopenharmony_ci out0 = x.val + in0; 7034e5c31af7Sopenharmony_ci ${OUTPUT} 7035e5c31af7Sopenharmony_ci } 7036e5c31af7Sopenharmony_ci "" 7037e5c31af7Sopenharmony_ci end 7038e5c31af7Sopenharmony_ci case int_to_vec2 7039e5c31af7Sopenharmony_ci version 310 es 7040e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7041e5c31af7Sopenharmony_ci values 7042e5c31af7Sopenharmony_ci { 7043e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 7044e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(3.0, 4.0) | vec2(2.0, 3.0) | vec2(2.0, 3.0) | vec2(4.0, 5.0) | vec2(6.0, 7.0) ]; 7045e5c31af7Sopenharmony_ci } 7046e5c31af7Sopenharmony_ci 7047e5c31af7Sopenharmony_ci both "" 7048e5c31af7Sopenharmony_ci #version 310 es 7049e5c31af7Sopenharmony_ci precision highp float; 7050e5c31af7Sopenharmony_ci ${DECLARATIONS} 7051e5c31af7Sopenharmony_ci 7052e5c31af7Sopenharmony_ci void main() 7053e5c31af7Sopenharmony_ci { 7054e5c31af7Sopenharmony_ci ${SETUP} 7055e5c31af7Sopenharmony_ci struct { 7056e5c31af7Sopenharmony_ci vec2 val; 7057e5c31af7Sopenharmony_ci } x; 7058e5c31af7Sopenharmony_ci 7059e5c31af7Sopenharmony_ci x.val = vec2(1.0, 2.0); 7060e5c31af7Sopenharmony_ci 7061e5c31af7Sopenharmony_ci out0 = x.val + in0; 7062e5c31af7Sopenharmony_ci ${OUTPUT} 7063e5c31af7Sopenharmony_ci } 7064e5c31af7Sopenharmony_ci "" 7065e5c31af7Sopenharmony_ci end 7066e5c31af7Sopenharmony_ci case int_to_vec3 7067e5c31af7Sopenharmony_ci version 310 es 7068e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7069e5c31af7Sopenharmony_ci values 7070e5c31af7Sopenharmony_ci { 7071e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 7072e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(3.0, 4.0, 5.0) | vec3(2.0, 3.0, 4.0) | vec3(2.0, 3.0, 4.0) | vec3(4.0, 5.0, 6.0) | vec3(6.0, 7.0, 8.0) ]; 7073e5c31af7Sopenharmony_ci } 7074e5c31af7Sopenharmony_ci 7075e5c31af7Sopenharmony_ci both "" 7076e5c31af7Sopenharmony_ci #version 310 es 7077e5c31af7Sopenharmony_ci precision highp float; 7078e5c31af7Sopenharmony_ci ${DECLARATIONS} 7079e5c31af7Sopenharmony_ci 7080e5c31af7Sopenharmony_ci void main() 7081e5c31af7Sopenharmony_ci { 7082e5c31af7Sopenharmony_ci ${SETUP} 7083e5c31af7Sopenharmony_ci struct { 7084e5c31af7Sopenharmony_ci vec3 val; 7085e5c31af7Sopenharmony_ci } x; 7086e5c31af7Sopenharmony_ci 7087e5c31af7Sopenharmony_ci x.val = vec3(1.0, 2.0, 3.0); 7088e5c31af7Sopenharmony_ci 7089e5c31af7Sopenharmony_ci out0 = x.val + in0; 7090e5c31af7Sopenharmony_ci ${OUTPUT} 7091e5c31af7Sopenharmony_ci } 7092e5c31af7Sopenharmony_ci "" 7093e5c31af7Sopenharmony_ci end 7094e5c31af7Sopenharmony_ci case int_to_vec4 7095e5c31af7Sopenharmony_ci version 310 es 7096e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7097e5c31af7Sopenharmony_ci values 7098e5c31af7Sopenharmony_ci { 7099e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 7100e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(3.0, 4.0, 5.0, 6.0) | vec4(2.0, 3.0, 4.0, 5.0) | vec4(2.0, 3.0, 4.0, 5.0) | vec4(4.0, 5.0, 6.0, 7.0) | vec4(6.0, 7.0, 8.0, 9.0) ]; 7101e5c31af7Sopenharmony_ci } 7102e5c31af7Sopenharmony_ci 7103e5c31af7Sopenharmony_ci both "" 7104e5c31af7Sopenharmony_ci #version 310 es 7105e5c31af7Sopenharmony_ci precision highp float; 7106e5c31af7Sopenharmony_ci ${DECLARATIONS} 7107e5c31af7Sopenharmony_ci 7108e5c31af7Sopenharmony_ci void main() 7109e5c31af7Sopenharmony_ci { 7110e5c31af7Sopenharmony_ci ${SETUP} 7111e5c31af7Sopenharmony_ci struct { 7112e5c31af7Sopenharmony_ci vec4 val; 7113e5c31af7Sopenharmony_ci } x; 7114e5c31af7Sopenharmony_ci 7115e5c31af7Sopenharmony_ci x.val = vec4(1.0, 2.0, 3.0, 4.0); 7116e5c31af7Sopenharmony_ci 7117e5c31af7Sopenharmony_ci out0 = x.val + in0; 7118e5c31af7Sopenharmony_ci ${OUTPUT} 7119e5c31af7Sopenharmony_ci } 7120e5c31af7Sopenharmony_ci "" 7121e5c31af7Sopenharmony_ci end 7122e5c31af7Sopenharmony_ci case int_to_uvec2 7123e5c31af7Sopenharmony_ci version 310 es 7124e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7125e5c31af7Sopenharmony_ci values 7126e5c31af7Sopenharmony_ci { 7127e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 7128e5c31af7Sopenharmony_ci output uvec2 out0 = [ uvec2(4, 5) | uvec2(3, 4) | uvec2(3, 4) | uvec2(5, 6) | uvec2(7, 8) ]; 7129e5c31af7Sopenharmony_ci } 7130e5c31af7Sopenharmony_ci 7131e5c31af7Sopenharmony_ci both "" 7132e5c31af7Sopenharmony_ci #version 310 es 7133e5c31af7Sopenharmony_ci precision highp float; 7134e5c31af7Sopenharmony_ci ${DECLARATIONS} 7135e5c31af7Sopenharmony_ci 7136e5c31af7Sopenharmony_ci void main() 7137e5c31af7Sopenharmony_ci { 7138e5c31af7Sopenharmony_ci ${SETUP} 7139e5c31af7Sopenharmony_ci struct { 7140e5c31af7Sopenharmony_ci uvec2 val; 7141e5c31af7Sopenharmony_ci } x; 7142e5c31af7Sopenharmony_ci 7143e5c31af7Sopenharmony_ci x.val = uvec2(2, 3); 7144e5c31af7Sopenharmony_ci 7145e5c31af7Sopenharmony_ci out0 = x.val + in0; 7146e5c31af7Sopenharmony_ci ${OUTPUT} 7147e5c31af7Sopenharmony_ci } 7148e5c31af7Sopenharmony_ci "" 7149e5c31af7Sopenharmony_ci end 7150e5c31af7Sopenharmony_ci case int_to_uvec3 7151e5c31af7Sopenharmony_ci version 310 es 7152e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7153e5c31af7Sopenharmony_ci values 7154e5c31af7Sopenharmony_ci { 7155e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 7156e5c31af7Sopenharmony_ci output uvec3 out0 = [ uvec3(4, 5, 7) | uvec3(3, 4, 6) | uvec3(3, 4, 6) | uvec3(5, 6, 8) | uvec3(7, 8, 10) ]; 7157e5c31af7Sopenharmony_ci } 7158e5c31af7Sopenharmony_ci 7159e5c31af7Sopenharmony_ci both "" 7160e5c31af7Sopenharmony_ci #version 310 es 7161e5c31af7Sopenharmony_ci precision highp float; 7162e5c31af7Sopenharmony_ci ${DECLARATIONS} 7163e5c31af7Sopenharmony_ci 7164e5c31af7Sopenharmony_ci void main() 7165e5c31af7Sopenharmony_ci { 7166e5c31af7Sopenharmony_ci ${SETUP} 7167e5c31af7Sopenharmony_ci struct { 7168e5c31af7Sopenharmony_ci uvec3 val; 7169e5c31af7Sopenharmony_ci } x; 7170e5c31af7Sopenharmony_ci 7171e5c31af7Sopenharmony_ci x.val = uvec3(2, 3, 5); 7172e5c31af7Sopenharmony_ci 7173e5c31af7Sopenharmony_ci out0 = x.val + in0; 7174e5c31af7Sopenharmony_ci ${OUTPUT} 7175e5c31af7Sopenharmony_ci } 7176e5c31af7Sopenharmony_ci "" 7177e5c31af7Sopenharmony_ci end 7178e5c31af7Sopenharmony_ci case int_to_uvec4 7179e5c31af7Sopenharmony_ci version 310 es 7180e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7181e5c31af7Sopenharmony_ci values 7182e5c31af7Sopenharmony_ci { 7183e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 7184e5c31af7Sopenharmony_ci output uvec4 out0 = [ uvec4(4, 5, 7, 10) | uvec4(3, 4, 6, 9) | uvec4(3, 4, 6, 9) | uvec4(5, 6, 8, 11) | uvec4(7, 8, 10, 13) ]; 7185e5c31af7Sopenharmony_ci } 7186e5c31af7Sopenharmony_ci 7187e5c31af7Sopenharmony_ci both "" 7188e5c31af7Sopenharmony_ci #version 310 es 7189e5c31af7Sopenharmony_ci precision highp float; 7190e5c31af7Sopenharmony_ci ${DECLARATIONS} 7191e5c31af7Sopenharmony_ci 7192e5c31af7Sopenharmony_ci void main() 7193e5c31af7Sopenharmony_ci { 7194e5c31af7Sopenharmony_ci ${SETUP} 7195e5c31af7Sopenharmony_ci struct { 7196e5c31af7Sopenharmony_ci uvec4 val; 7197e5c31af7Sopenharmony_ci } x; 7198e5c31af7Sopenharmony_ci 7199e5c31af7Sopenharmony_ci x.val = uvec4(2, 3, 5, 8); 7200e5c31af7Sopenharmony_ci 7201e5c31af7Sopenharmony_ci out0 = x.val + in0; 7202e5c31af7Sopenharmony_ci ${OUTPUT} 7203e5c31af7Sopenharmony_ci } 7204e5c31af7Sopenharmony_ci "" 7205e5c31af7Sopenharmony_ci end 7206e5c31af7Sopenharmony_ci case uint_to_float 7207e5c31af7Sopenharmony_ci version 310 es 7208e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7209e5c31af7Sopenharmony_ci values 7210e5c31af7Sopenharmony_ci { 7211e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 7212e5c31af7Sopenharmony_ci output float out0 = [ 3.0 | 5.0 | 6.0 | 9.0 | 13.0 ]; 7213e5c31af7Sopenharmony_ci } 7214e5c31af7Sopenharmony_ci 7215e5c31af7Sopenharmony_ci both "" 7216e5c31af7Sopenharmony_ci #version 310 es 7217e5c31af7Sopenharmony_ci precision highp float; 7218e5c31af7Sopenharmony_ci ${DECLARATIONS} 7219e5c31af7Sopenharmony_ci 7220e5c31af7Sopenharmony_ci void main() 7221e5c31af7Sopenharmony_ci { 7222e5c31af7Sopenharmony_ci ${SETUP} 7223e5c31af7Sopenharmony_ci struct { 7224e5c31af7Sopenharmony_ci float val; 7225e5c31af7Sopenharmony_ci } x; 7226e5c31af7Sopenharmony_ci 7227e5c31af7Sopenharmony_ci x.val = 2.0; 7228e5c31af7Sopenharmony_ci 7229e5c31af7Sopenharmony_ci out0 = x.val + in0; 7230e5c31af7Sopenharmony_ci ${OUTPUT} 7231e5c31af7Sopenharmony_ci } 7232e5c31af7Sopenharmony_ci "" 7233e5c31af7Sopenharmony_ci end 7234e5c31af7Sopenharmony_ci case uint_to_vec2 7235e5c31af7Sopenharmony_ci version 310 es 7236e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7237e5c31af7Sopenharmony_ci values 7238e5c31af7Sopenharmony_ci { 7239e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 7240e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(2.0, 3.0) | vec2(4.0, 5.0) | vec2(5.0, 6.0) | vec2(8.0, 9.0) | vec2(12.0, 13.0) ]; 7241e5c31af7Sopenharmony_ci } 7242e5c31af7Sopenharmony_ci 7243e5c31af7Sopenharmony_ci both "" 7244e5c31af7Sopenharmony_ci #version 310 es 7245e5c31af7Sopenharmony_ci precision highp float; 7246e5c31af7Sopenharmony_ci ${DECLARATIONS} 7247e5c31af7Sopenharmony_ci 7248e5c31af7Sopenharmony_ci void main() 7249e5c31af7Sopenharmony_ci { 7250e5c31af7Sopenharmony_ci ${SETUP} 7251e5c31af7Sopenharmony_ci struct { 7252e5c31af7Sopenharmony_ci vec2 val; 7253e5c31af7Sopenharmony_ci } x; 7254e5c31af7Sopenharmony_ci 7255e5c31af7Sopenharmony_ci x.val = vec2(1.0, 2.0); 7256e5c31af7Sopenharmony_ci 7257e5c31af7Sopenharmony_ci out0 = x.val + in0; 7258e5c31af7Sopenharmony_ci ${OUTPUT} 7259e5c31af7Sopenharmony_ci } 7260e5c31af7Sopenharmony_ci "" 7261e5c31af7Sopenharmony_ci end 7262e5c31af7Sopenharmony_ci case uint_to_vec3 7263e5c31af7Sopenharmony_ci version 310 es 7264e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7265e5c31af7Sopenharmony_ci values 7266e5c31af7Sopenharmony_ci { 7267e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 7268e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(2.0, 3.0, 4.0) | vec3(4.0, 5.0, 6.0) | vec3(5.0, 6.0, 7.0) | vec3(8.0, 9.0, 10.0) | vec3(12.0, 13.0, 14.0) ]; 7269e5c31af7Sopenharmony_ci } 7270e5c31af7Sopenharmony_ci 7271e5c31af7Sopenharmony_ci both "" 7272e5c31af7Sopenharmony_ci #version 310 es 7273e5c31af7Sopenharmony_ci precision highp float; 7274e5c31af7Sopenharmony_ci ${DECLARATIONS} 7275e5c31af7Sopenharmony_ci 7276e5c31af7Sopenharmony_ci void main() 7277e5c31af7Sopenharmony_ci { 7278e5c31af7Sopenharmony_ci ${SETUP} 7279e5c31af7Sopenharmony_ci struct { 7280e5c31af7Sopenharmony_ci vec3 val; 7281e5c31af7Sopenharmony_ci } x; 7282e5c31af7Sopenharmony_ci 7283e5c31af7Sopenharmony_ci x.val = vec3(1.0, 2.0, 3.0); 7284e5c31af7Sopenharmony_ci 7285e5c31af7Sopenharmony_ci out0 = x.val + in0; 7286e5c31af7Sopenharmony_ci ${OUTPUT} 7287e5c31af7Sopenharmony_ci } 7288e5c31af7Sopenharmony_ci "" 7289e5c31af7Sopenharmony_ci end 7290e5c31af7Sopenharmony_ci case uint_to_vec4 7291e5c31af7Sopenharmony_ci version 310 es 7292e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7293e5c31af7Sopenharmony_ci values 7294e5c31af7Sopenharmony_ci { 7295e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 7296e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(2.0, 3.0, 4.0, 5.0) | vec4(4.0, 5.0, 6.0, 7.0) | vec4(5.0, 6.0, 7.0, 8.0) | vec4(8.0, 9.0, 10.0, 11.0) | vec4(12.0, 13.0, 14.0, 15.0) ]; 7297e5c31af7Sopenharmony_ci } 7298e5c31af7Sopenharmony_ci 7299e5c31af7Sopenharmony_ci both "" 7300e5c31af7Sopenharmony_ci #version 310 es 7301e5c31af7Sopenharmony_ci precision highp float; 7302e5c31af7Sopenharmony_ci ${DECLARATIONS} 7303e5c31af7Sopenharmony_ci 7304e5c31af7Sopenharmony_ci void main() 7305e5c31af7Sopenharmony_ci { 7306e5c31af7Sopenharmony_ci ${SETUP} 7307e5c31af7Sopenharmony_ci struct { 7308e5c31af7Sopenharmony_ci vec4 val; 7309e5c31af7Sopenharmony_ci } x; 7310e5c31af7Sopenharmony_ci 7311e5c31af7Sopenharmony_ci x.val = vec4(1.0, 2.0, 3.0, 4.0); 7312e5c31af7Sopenharmony_ci 7313e5c31af7Sopenharmony_ci out0 = x.val + in0; 7314e5c31af7Sopenharmony_ci ${OUTPUT} 7315e5c31af7Sopenharmony_ci } 7316e5c31af7Sopenharmony_ci "" 7317e5c31af7Sopenharmony_ci end 7318e5c31af7Sopenharmony_ci case ivec2_to_uvec2 7319e5c31af7Sopenharmony_ci version 310 es 7320e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7321e5c31af7Sopenharmony_ci values 7322e5c31af7Sopenharmony_ci { 7323e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 7324e5c31af7Sopenharmony_ci output uvec2 out0 = [ uvec2(3, 5) | uvec2(4, 4) | uvec2(5, 10) ]; 7325e5c31af7Sopenharmony_ci } 7326e5c31af7Sopenharmony_ci 7327e5c31af7Sopenharmony_ci both "" 7328e5c31af7Sopenharmony_ci #version 310 es 7329e5c31af7Sopenharmony_ci precision highp float; 7330e5c31af7Sopenharmony_ci ${DECLARATIONS} 7331e5c31af7Sopenharmony_ci 7332e5c31af7Sopenharmony_ci void main() 7333e5c31af7Sopenharmony_ci { 7334e5c31af7Sopenharmony_ci ${SETUP} 7335e5c31af7Sopenharmony_ci struct { 7336e5c31af7Sopenharmony_ci uvec2 val; 7337e5c31af7Sopenharmony_ci } x; 7338e5c31af7Sopenharmony_ci 7339e5c31af7Sopenharmony_ci x.val = uvec2(2, 3); 7340e5c31af7Sopenharmony_ci 7341e5c31af7Sopenharmony_ci out0 = x.val + in0; 7342e5c31af7Sopenharmony_ci ${OUTPUT} 7343e5c31af7Sopenharmony_ci } 7344e5c31af7Sopenharmony_ci "" 7345e5c31af7Sopenharmony_ci end 7346e5c31af7Sopenharmony_ci case ivec2_to_vec2 7347e5c31af7Sopenharmony_ci version 310 es 7348e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7349e5c31af7Sopenharmony_ci values 7350e5c31af7Sopenharmony_ci { 7351e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 7352e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(2.0, 4.0) | vec2(3.0, 3.0) | vec2(4.0, 9.0) ]; 7353e5c31af7Sopenharmony_ci } 7354e5c31af7Sopenharmony_ci 7355e5c31af7Sopenharmony_ci both "" 7356e5c31af7Sopenharmony_ci #version 310 es 7357e5c31af7Sopenharmony_ci precision highp float; 7358e5c31af7Sopenharmony_ci ${DECLARATIONS} 7359e5c31af7Sopenharmony_ci 7360e5c31af7Sopenharmony_ci void main() 7361e5c31af7Sopenharmony_ci { 7362e5c31af7Sopenharmony_ci ${SETUP} 7363e5c31af7Sopenharmony_ci struct { 7364e5c31af7Sopenharmony_ci vec2 val; 7365e5c31af7Sopenharmony_ci } x; 7366e5c31af7Sopenharmony_ci 7367e5c31af7Sopenharmony_ci x.val = vec2(1.0, 2.0); 7368e5c31af7Sopenharmony_ci 7369e5c31af7Sopenharmony_ci out0 = x.val + in0; 7370e5c31af7Sopenharmony_ci ${OUTPUT} 7371e5c31af7Sopenharmony_ci } 7372e5c31af7Sopenharmony_ci "" 7373e5c31af7Sopenharmony_ci end 7374e5c31af7Sopenharmony_ci case uvec2_to_vec2 7375e5c31af7Sopenharmony_ci version 310 es 7376e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7377e5c31af7Sopenharmony_ci values 7378e5c31af7Sopenharmony_ci { 7379e5c31af7Sopenharmony_ci input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 7380e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(3.0, 5.0) | vec2(5.0, 8.0) | vec2(2.0, 15.0) ]; 7381e5c31af7Sopenharmony_ci } 7382e5c31af7Sopenharmony_ci 7383e5c31af7Sopenharmony_ci both "" 7384e5c31af7Sopenharmony_ci #version 310 es 7385e5c31af7Sopenharmony_ci precision highp float; 7386e5c31af7Sopenharmony_ci ${DECLARATIONS} 7387e5c31af7Sopenharmony_ci 7388e5c31af7Sopenharmony_ci void main() 7389e5c31af7Sopenharmony_ci { 7390e5c31af7Sopenharmony_ci ${SETUP} 7391e5c31af7Sopenharmony_ci struct { 7392e5c31af7Sopenharmony_ci vec2 val; 7393e5c31af7Sopenharmony_ci } x; 7394e5c31af7Sopenharmony_ci 7395e5c31af7Sopenharmony_ci x.val = vec2(1.0, 2.0); 7396e5c31af7Sopenharmony_ci 7397e5c31af7Sopenharmony_ci out0 = x.val + in0; 7398e5c31af7Sopenharmony_ci ${OUTPUT} 7399e5c31af7Sopenharmony_ci } 7400e5c31af7Sopenharmony_ci "" 7401e5c31af7Sopenharmony_ci end 7402e5c31af7Sopenharmony_ci case ivec3_to_uvec3 7403e5c31af7Sopenharmony_ci version 310 es 7404e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7405e5c31af7Sopenharmony_ci values 7406e5c31af7Sopenharmony_ci { 7407e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 7408e5c31af7Sopenharmony_ci output uvec3 out0 = [ uvec3(3, 5, 8) | uvec3(4, 4, 7) | uvec3(5, 10, 7) ]; 7409e5c31af7Sopenharmony_ci } 7410e5c31af7Sopenharmony_ci 7411e5c31af7Sopenharmony_ci both "" 7412e5c31af7Sopenharmony_ci #version 310 es 7413e5c31af7Sopenharmony_ci precision highp float; 7414e5c31af7Sopenharmony_ci ${DECLARATIONS} 7415e5c31af7Sopenharmony_ci 7416e5c31af7Sopenharmony_ci void main() 7417e5c31af7Sopenharmony_ci { 7418e5c31af7Sopenharmony_ci ${SETUP} 7419e5c31af7Sopenharmony_ci struct { 7420e5c31af7Sopenharmony_ci uvec3 val; 7421e5c31af7Sopenharmony_ci } x; 7422e5c31af7Sopenharmony_ci 7423e5c31af7Sopenharmony_ci x.val = uvec3(2, 3, 5); 7424e5c31af7Sopenharmony_ci 7425e5c31af7Sopenharmony_ci out0 = x.val + in0; 7426e5c31af7Sopenharmony_ci ${OUTPUT} 7427e5c31af7Sopenharmony_ci } 7428e5c31af7Sopenharmony_ci "" 7429e5c31af7Sopenharmony_ci end 7430e5c31af7Sopenharmony_ci case ivec3_to_vec3 7431e5c31af7Sopenharmony_ci version 310 es 7432e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7433e5c31af7Sopenharmony_ci values 7434e5c31af7Sopenharmony_ci { 7435e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 7436e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(2.0, 4.0, 6.0) | vec3(3.0, 3.0, 5.0) | vec3(4.0, 9.0, 5.0) ]; 7437e5c31af7Sopenharmony_ci } 7438e5c31af7Sopenharmony_ci 7439e5c31af7Sopenharmony_ci both "" 7440e5c31af7Sopenharmony_ci #version 310 es 7441e5c31af7Sopenharmony_ci precision highp float; 7442e5c31af7Sopenharmony_ci ${DECLARATIONS} 7443e5c31af7Sopenharmony_ci 7444e5c31af7Sopenharmony_ci void main() 7445e5c31af7Sopenharmony_ci { 7446e5c31af7Sopenharmony_ci ${SETUP} 7447e5c31af7Sopenharmony_ci struct { 7448e5c31af7Sopenharmony_ci vec3 val; 7449e5c31af7Sopenharmony_ci } x; 7450e5c31af7Sopenharmony_ci 7451e5c31af7Sopenharmony_ci x.val = vec3(1.0, 2.0, 3.0); 7452e5c31af7Sopenharmony_ci 7453e5c31af7Sopenharmony_ci out0 = x.val + in0; 7454e5c31af7Sopenharmony_ci ${OUTPUT} 7455e5c31af7Sopenharmony_ci } 7456e5c31af7Sopenharmony_ci "" 7457e5c31af7Sopenharmony_ci end 7458e5c31af7Sopenharmony_ci case uvec3_to_vec3 7459e5c31af7Sopenharmony_ci version 310 es 7460e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7461e5c31af7Sopenharmony_ci values 7462e5c31af7Sopenharmony_ci { 7463e5c31af7Sopenharmony_ci input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 7464e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(3.0, 5.0, 8.0) | vec3(5.0, 8.0, 5.0) | vec3(2.0, 15.0, 10.0) ]; 7465e5c31af7Sopenharmony_ci } 7466e5c31af7Sopenharmony_ci 7467e5c31af7Sopenharmony_ci both "" 7468e5c31af7Sopenharmony_ci #version 310 es 7469e5c31af7Sopenharmony_ci precision highp float; 7470e5c31af7Sopenharmony_ci ${DECLARATIONS} 7471e5c31af7Sopenharmony_ci 7472e5c31af7Sopenharmony_ci void main() 7473e5c31af7Sopenharmony_ci { 7474e5c31af7Sopenharmony_ci ${SETUP} 7475e5c31af7Sopenharmony_ci struct { 7476e5c31af7Sopenharmony_ci vec3 val; 7477e5c31af7Sopenharmony_ci } x; 7478e5c31af7Sopenharmony_ci 7479e5c31af7Sopenharmony_ci x.val = vec3(1.0, 2.0, 3.0); 7480e5c31af7Sopenharmony_ci 7481e5c31af7Sopenharmony_ci out0 = x.val + in0; 7482e5c31af7Sopenharmony_ci ${OUTPUT} 7483e5c31af7Sopenharmony_ci } 7484e5c31af7Sopenharmony_ci "" 7485e5c31af7Sopenharmony_ci end 7486e5c31af7Sopenharmony_ci case ivec4_to_uvec4 7487e5c31af7Sopenharmony_ci version 310 es 7488e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7489e5c31af7Sopenharmony_ci values 7490e5c31af7Sopenharmony_ci { 7491e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 7492e5c31af7Sopenharmony_ci output uvec4 out0 = [ uvec4(3, 5, 8, 12) | uvec4(4, 4, 7, 14) | uvec4(5, 10, 7, 13) ]; 7493e5c31af7Sopenharmony_ci } 7494e5c31af7Sopenharmony_ci 7495e5c31af7Sopenharmony_ci both "" 7496e5c31af7Sopenharmony_ci #version 310 es 7497e5c31af7Sopenharmony_ci precision highp float; 7498e5c31af7Sopenharmony_ci ${DECLARATIONS} 7499e5c31af7Sopenharmony_ci 7500e5c31af7Sopenharmony_ci void main() 7501e5c31af7Sopenharmony_ci { 7502e5c31af7Sopenharmony_ci ${SETUP} 7503e5c31af7Sopenharmony_ci struct { 7504e5c31af7Sopenharmony_ci uvec4 val; 7505e5c31af7Sopenharmony_ci } x; 7506e5c31af7Sopenharmony_ci 7507e5c31af7Sopenharmony_ci x.val = uvec4(2, 3, 5, 8); 7508e5c31af7Sopenharmony_ci 7509e5c31af7Sopenharmony_ci out0 = x.val + in0; 7510e5c31af7Sopenharmony_ci ${OUTPUT} 7511e5c31af7Sopenharmony_ci } 7512e5c31af7Sopenharmony_ci "" 7513e5c31af7Sopenharmony_ci end 7514e5c31af7Sopenharmony_ci case ivec4_to_vec4 7515e5c31af7Sopenharmony_ci version 310 es 7516e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7517e5c31af7Sopenharmony_ci values 7518e5c31af7Sopenharmony_ci { 7519e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 7520e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(2.0, 4.0, 6.0, 8.0) | vec4(3.0, 3.0, 5.0, 10.0) | vec4(4.0, 9.0, 5.0, 9.0) ]; 7521e5c31af7Sopenharmony_ci } 7522e5c31af7Sopenharmony_ci 7523e5c31af7Sopenharmony_ci both "" 7524e5c31af7Sopenharmony_ci #version 310 es 7525e5c31af7Sopenharmony_ci precision highp float; 7526e5c31af7Sopenharmony_ci ${DECLARATIONS} 7527e5c31af7Sopenharmony_ci 7528e5c31af7Sopenharmony_ci void main() 7529e5c31af7Sopenharmony_ci { 7530e5c31af7Sopenharmony_ci ${SETUP} 7531e5c31af7Sopenharmony_ci struct { 7532e5c31af7Sopenharmony_ci vec4 val; 7533e5c31af7Sopenharmony_ci } x; 7534e5c31af7Sopenharmony_ci 7535e5c31af7Sopenharmony_ci x.val = vec4(1.0, 2.0, 3.0, 4.0); 7536e5c31af7Sopenharmony_ci 7537e5c31af7Sopenharmony_ci out0 = x.val + in0; 7538e5c31af7Sopenharmony_ci ${OUTPUT} 7539e5c31af7Sopenharmony_ci } 7540e5c31af7Sopenharmony_ci "" 7541e5c31af7Sopenharmony_ci end 7542e5c31af7Sopenharmony_ci case uvec4_to_vec4 7543e5c31af7Sopenharmony_ci version 310 es 7544e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7545e5c31af7Sopenharmony_ci values 7546e5c31af7Sopenharmony_ci { 7547e5c31af7Sopenharmony_ci input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 7548e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(3.0, 5.0, 8.0, 12.0) | vec4(5.0, 8.0, 5.0, 13.0) | vec4(2.0, 15.0, 10.0, 8.0) ]; 7549e5c31af7Sopenharmony_ci } 7550e5c31af7Sopenharmony_ci 7551e5c31af7Sopenharmony_ci both "" 7552e5c31af7Sopenharmony_ci #version 310 es 7553e5c31af7Sopenharmony_ci precision highp float; 7554e5c31af7Sopenharmony_ci ${DECLARATIONS} 7555e5c31af7Sopenharmony_ci 7556e5c31af7Sopenharmony_ci void main() 7557e5c31af7Sopenharmony_ci { 7558e5c31af7Sopenharmony_ci ${SETUP} 7559e5c31af7Sopenharmony_ci struct { 7560e5c31af7Sopenharmony_ci vec4 val; 7561e5c31af7Sopenharmony_ci } x; 7562e5c31af7Sopenharmony_ci 7563e5c31af7Sopenharmony_ci x.val = vec4(1.0, 2.0, 3.0, 4.0); 7564e5c31af7Sopenharmony_ci 7565e5c31af7Sopenharmony_ci out0 = x.val + in0; 7566e5c31af7Sopenharmony_ci ${OUTPUT} 7567e5c31af7Sopenharmony_ci } 7568e5c31af7Sopenharmony_ci "" 7569e5c31af7Sopenharmony_ci end 7570e5c31af7Sopenharmony_ci 7571e5c31af7Sopenharmony_ci end # field_before_input 7572e5c31af7Sopenharmony_ci 7573e5c31af7Sopenharmony_ciend # struct_fields 7574e5c31af7Sopenharmony_cigroup parenthesized_expressions "Parenthesized expressions" 7575e5c31af7Sopenharmony_ci 7576e5c31af7Sopenharmony_ci group paren_expr_before_literal "Parenthesized expression before literal" 7577e5c31af7Sopenharmony_ci 7578e5c31af7Sopenharmony_ci group input_in_parens "Input variable in parenthesized expression" 7579e5c31af7Sopenharmony_ci 7580e5c31af7Sopenharmony_ci case int_to_float 7581e5c31af7Sopenharmony_ci version 310 es 7582e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7583e5c31af7Sopenharmony_ci values 7584e5c31af7Sopenharmony_ci { 7585e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 7586e5c31af7Sopenharmony_ci output float out0 = [ 6.0 | 4.0 | 4.0 | 8.0 | 12.0 ]; 7587e5c31af7Sopenharmony_ci } 7588e5c31af7Sopenharmony_ci 7589e5c31af7Sopenharmony_ci both "" 7590e5c31af7Sopenharmony_ci #version 310 es 7591e5c31af7Sopenharmony_ci precision highp float; 7592e5c31af7Sopenharmony_ci ${DECLARATIONS} 7593e5c31af7Sopenharmony_ci 7594e5c31af7Sopenharmony_ci void main() 7595e5c31af7Sopenharmony_ci { 7596e5c31af7Sopenharmony_ci ${SETUP} 7597e5c31af7Sopenharmony_ci out0 = (in0 + 1.0) * 2.0; 7598e5c31af7Sopenharmony_ci ${OUTPUT} 7599e5c31af7Sopenharmony_ci } 7600e5c31af7Sopenharmony_ci "" 7601e5c31af7Sopenharmony_ci end 7602e5c31af7Sopenharmony_ci case int_to_uint 7603e5c31af7Sopenharmony_ci version 310 es 7604e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7605e5c31af7Sopenharmony_ci values 7606e5c31af7Sopenharmony_ci { 7607e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 7608e5c31af7Sopenharmony_ci output uint out0 = [ 5 | 4 | 4 | 6 | 8 ]; 7609e5c31af7Sopenharmony_ci } 7610e5c31af7Sopenharmony_ci 7611e5c31af7Sopenharmony_ci both "" 7612e5c31af7Sopenharmony_ci #version 310 es 7613e5c31af7Sopenharmony_ci precision highp float; 7614e5c31af7Sopenharmony_ci ${DECLARATIONS} 7615e5c31af7Sopenharmony_ci 7616e5c31af7Sopenharmony_ci void main() 7617e5c31af7Sopenharmony_ci { 7618e5c31af7Sopenharmony_ci ${SETUP} 7619e5c31af7Sopenharmony_ci out0 = (in0 + 3) * 1; 7620e5c31af7Sopenharmony_ci ${OUTPUT} 7621e5c31af7Sopenharmony_ci } 7622e5c31af7Sopenharmony_ci "" 7623e5c31af7Sopenharmony_ci end 7624e5c31af7Sopenharmony_ci case int_to_vec2 7625e5c31af7Sopenharmony_ci version 310 es 7626e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7627e5c31af7Sopenharmony_ci values 7628e5c31af7Sopenharmony_ci { 7629e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 7630e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(4.0, 6.0) | vec2(3.0, 4.0) | vec2(3.0, 4.0) | vec2(5.0, 8.0) | vec2(7.0, 12.0) ]; 7631e5c31af7Sopenharmony_ci } 7632e5c31af7Sopenharmony_ci 7633e5c31af7Sopenharmony_ci both "" 7634e5c31af7Sopenharmony_ci #version 310 es 7635e5c31af7Sopenharmony_ci precision highp float; 7636e5c31af7Sopenharmony_ci ${DECLARATIONS} 7637e5c31af7Sopenharmony_ci 7638e5c31af7Sopenharmony_ci void main() 7639e5c31af7Sopenharmony_ci { 7640e5c31af7Sopenharmony_ci ${SETUP} 7641e5c31af7Sopenharmony_ci out0 = (in0 + vec2(2.0, 1.0)) * vec2(1.0, 2.0); 7642e5c31af7Sopenharmony_ci ${OUTPUT} 7643e5c31af7Sopenharmony_ci } 7644e5c31af7Sopenharmony_ci "" 7645e5c31af7Sopenharmony_ci end 7646e5c31af7Sopenharmony_ci case int_to_vec3 7647e5c31af7Sopenharmony_ci version 310 es 7648e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7649e5c31af7Sopenharmony_ci values 7650e5c31af7Sopenharmony_ci { 7651e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 7652e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(4.0, 6.0, 12.0) | vec3(3.0, 4.0, 9.0) | vec3(3.0, 4.0, 9.0) | vec3(5.0, 8.0, 15.0) | vec3(7.0, 12.0, 21.0) ]; 7653e5c31af7Sopenharmony_ci } 7654e5c31af7Sopenharmony_ci 7655e5c31af7Sopenharmony_ci both "" 7656e5c31af7Sopenharmony_ci #version 310 es 7657e5c31af7Sopenharmony_ci precision highp float; 7658e5c31af7Sopenharmony_ci ${DECLARATIONS} 7659e5c31af7Sopenharmony_ci 7660e5c31af7Sopenharmony_ci void main() 7661e5c31af7Sopenharmony_ci { 7662e5c31af7Sopenharmony_ci ${SETUP} 7663e5c31af7Sopenharmony_ci out0 = (in0 + vec3(2.0, 1.0, 2.0)) * vec3(1.0, 2.0, 3.0); 7664e5c31af7Sopenharmony_ci ${OUTPUT} 7665e5c31af7Sopenharmony_ci } 7666e5c31af7Sopenharmony_ci "" 7667e5c31af7Sopenharmony_ci end 7668e5c31af7Sopenharmony_ci case int_to_vec4 7669e5c31af7Sopenharmony_ci version 310 es 7670e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7671e5c31af7Sopenharmony_ci values 7672e5c31af7Sopenharmony_ci { 7673e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 7674e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(4.0, 6.0, 12.0, 32.0) | vec4(3.0, 4.0, 9.0, 28.0) | vec4(3.0, 4.0, 9.0, 28.0) | vec4(5.0, 8.0, 15.0, 36.0) | vec4(7.0, 12.0, 21.0, 44.0) ]; 7675e5c31af7Sopenharmony_ci } 7676e5c31af7Sopenharmony_ci 7677e5c31af7Sopenharmony_ci both "" 7678e5c31af7Sopenharmony_ci #version 310 es 7679e5c31af7Sopenharmony_ci precision highp float; 7680e5c31af7Sopenharmony_ci ${DECLARATIONS} 7681e5c31af7Sopenharmony_ci 7682e5c31af7Sopenharmony_ci void main() 7683e5c31af7Sopenharmony_ci { 7684e5c31af7Sopenharmony_ci ${SETUP} 7685e5c31af7Sopenharmony_ci out0 = (in0 + vec4(2.0, 1.0, 2.0, 6.0)) * vec4(1.0, 2.0, 3.0, 4.0); 7686e5c31af7Sopenharmony_ci ${OUTPUT} 7687e5c31af7Sopenharmony_ci } 7688e5c31af7Sopenharmony_ci "" 7689e5c31af7Sopenharmony_ci end 7690e5c31af7Sopenharmony_ci case int_to_uvec2 7691e5c31af7Sopenharmony_ci version 310 es 7692e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7693e5c31af7Sopenharmony_ci values 7694e5c31af7Sopenharmony_ci { 7695e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 7696e5c31af7Sopenharmony_ci output uvec2 out0 = [ uvec2(12, 24) | uvec2(10, 21) | uvec2(10, 21) | uvec2(14, 27) | uvec2(18, 33) ]; 7697e5c31af7Sopenharmony_ci } 7698e5c31af7Sopenharmony_ci 7699e5c31af7Sopenharmony_ci both "" 7700e5c31af7Sopenharmony_ci #version 310 es 7701e5c31af7Sopenharmony_ci precision highp float; 7702e5c31af7Sopenharmony_ci ${DECLARATIONS} 7703e5c31af7Sopenharmony_ci 7704e5c31af7Sopenharmony_ci void main() 7705e5c31af7Sopenharmony_ci { 7706e5c31af7Sopenharmony_ci ${SETUP} 7707e5c31af7Sopenharmony_ci out0 = (in0 + ivec2(4, 6)) * ivec2(2, 3); 7708e5c31af7Sopenharmony_ci ${OUTPUT} 7709e5c31af7Sopenharmony_ci } 7710e5c31af7Sopenharmony_ci "" 7711e5c31af7Sopenharmony_ci end 7712e5c31af7Sopenharmony_ci case int_to_uvec3 7713e5c31af7Sopenharmony_ci version 310 es 7714e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7715e5c31af7Sopenharmony_ci values 7716e5c31af7Sopenharmony_ci { 7717e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 7718e5c31af7Sopenharmony_ci output uvec3 out0 = [ uvec3(12, 24, 20) | uvec3(10, 21, 15) | uvec3(10, 21, 15) | uvec3(14, 27, 25) | uvec3(18, 33, 35) ]; 7719e5c31af7Sopenharmony_ci } 7720e5c31af7Sopenharmony_ci 7721e5c31af7Sopenharmony_ci both "" 7722e5c31af7Sopenharmony_ci #version 310 es 7723e5c31af7Sopenharmony_ci precision highp float; 7724e5c31af7Sopenharmony_ci ${DECLARATIONS} 7725e5c31af7Sopenharmony_ci 7726e5c31af7Sopenharmony_ci void main() 7727e5c31af7Sopenharmony_ci { 7728e5c31af7Sopenharmony_ci ${SETUP} 7729e5c31af7Sopenharmony_ci out0 = (in0 + ivec3(4, 6, 2)) * ivec3(2, 3, 5); 7730e5c31af7Sopenharmony_ci ${OUTPUT} 7731e5c31af7Sopenharmony_ci } 7732e5c31af7Sopenharmony_ci "" 7733e5c31af7Sopenharmony_ci end 7734e5c31af7Sopenharmony_ci case int_to_uvec4 7735e5c31af7Sopenharmony_ci version 310 es 7736e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7737e5c31af7Sopenharmony_ci values 7738e5c31af7Sopenharmony_ci { 7739e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 7740e5c31af7Sopenharmony_ci output uvec4 out0 = [ uvec4(12, 24, 20, 88) | uvec4(10, 21, 15, 80) | uvec4(10, 21, 15, 80) | uvec4(14, 27, 25, 96) | uvec4(18, 33, 35, 112) ]; 7741e5c31af7Sopenharmony_ci } 7742e5c31af7Sopenharmony_ci 7743e5c31af7Sopenharmony_ci both "" 7744e5c31af7Sopenharmony_ci #version 310 es 7745e5c31af7Sopenharmony_ci precision highp float; 7746e5c31af7Sopenharmony_ci ${DECLARATIONS} 7747e5c31af7Sopenharmony_ci 7748e5c31af7Sopenharmony_ci void main() 7749e5c31af7Sopenharmony_ci { 7750e5c31af7Sopenharmony_ci ${SETUP} 7751e5c31af7Sopenharmony_ci out0 = (in0 + ivec4(4, 6, 2, 9)) * ivec4(2, 3, 5, 8); 7752e5c31af7Sopenharmony_ci ${OUTPUT} 7753e5c31af7Sopenharmony_ci } 7754e5c31af7Sopenharmony_ci "" 7755e5c31af7Sopenharmony_ci end 7756e5c31af7Sopenharmony_ci case uint_to_float 7757e5c31af7Sopenharmony_ci version 310 es 7758e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7759e5c31af7Sopenharmony_ci values 7760e5c31af7Sopenharmony_ci { 7761e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 7762e5c31af7Sopenharmony_ci output float out0 = [ 4.0 | 8.0 | 10.0 | 16.0 | 24.0 ]; 7763e5c31af7Sopenharmony_ci } 7764e5c31af7Sopenharmony_ci 7765e5c31af7Sopenharmony_ci both "" 7766e5c31af7Sopenharmony_ci #version 310 es 7767e5c31af7Sopenharmony_ci precision highp float; 7768e5c31af7Sopenharmony_ci ${DECLARATIONS} 7769e5c31af7Sopenharmony_ci 7770e5c31af7Sopenharmony_ci void main() 7771e5c31af7Sopenharmony_ci { 7772e5c31af7Sopenharmony_ci ${SETUP} 7773e5c31af7Sopenharmony_ci out0 = (in0 + 1.0) * 2.0; 7774e5c31af7Sopenharmony_ci ${OUTPUT} 7775e5c31af7Sopenharmony_ci } 7776e5c31af7Sopenharmony_ci "" 7777e5c31af7Sopenharmony_ci end 7778e5c31af7Sopenharmony_ci case uint_to_vec2 7779e5c31af7Sopenharmony_ci version 310 es 7780e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7781e5c31af7Sopenharmony_ci values 7782e5c31af7Sopenharmony_ci { 7783e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 7784e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(3.0, 4.0) | vec2(5.0, 8.0) | vec2(6.0, 10.0) | vec2(9.0, 16.0) | vec2(13.0, 24.0) ]; 7785e5c31af7Sopenharmony_ci } 7786e5c31af7Sopenharmony_ci 7787e5c31af7Sopenharmony_ci both "" 7788e5c31af7Sopenharmony_ci #version 310 es 7789e5c31af7Sopenharmony_ci precision highp float; 7790e5c31af7Sopenharmony_ci ${DECLARATIONS} 7791e5c31af7Sopenharmony_ci 7792e5c31af7Sopenharmony_ci void main() 7793e5c31af7Sopenharmony_ci { 7794e5c31af7Sopenharmony_ci ${SETUP} 7795e5c31af7Sopenharmony_ci out0 = (in0 + vec2(2.0, 1.0)) * vec2(1.0, 2.0); 7796e5c31af7Sopenharmony_ci ${OUTPUT} 7797e5c31af7Sopenharmony_ci } 7798e5c31af7Sopenharmony_ci "" 7799e5c31af7Sopenharmony_ci end 7800e5c31af7Sopenharmony_ci case uint_to_vec3 7801e5c31af7Sopenharmony_ci version 310 es 7802e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7803e5c31af7Sopenharmony_ci values 7804e5c31af7Sopenharmony_ci { 7805e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 7806e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(3.0, 4.0, 9.0) | vec3(5.0, 8.0, 15.0) | vec3(6.0, 10.0, 18.0) | vec3(9.0, 16.0, 27.0) | vec3(13.0, 24.0, 39.0) ]; 7807e5c31af7Sopenharmony_ci } 7808e5c31af7Sopenharmony_ci 7809e5c31af7Sopenharmony_ci both "" 7810e5c31af7Sopenharmony_ci #version 310 es 7811e5c31af7Sopenharmony_ci precision highp float; 7812e5c31af7Sopenharmony_ci ${DECLARATIONS} 7813e5c31af7Sopenharmony_ci 7814e5c31af7Sopenharmony_ci void main() 7815e5c31af7Sopenharmony_ci { 7816e5c31af7Sopenharmony_ci ${SETUP} 7817e5c31af7Sopenharmony_ci out0 = (in0 + vec3(2.0, 1.0, 2.0)) * vec3(1.0, 2.0, 3.0); 7818e5c31af7Sopenharmony_ci ${OUTPUT} 7819e5c31af7Sopenharmony_ci } 7820e5c31af7Sopenharmony_ci "" 7821e5c31af7Sopenharmony_ci end 7822e5c31af7Sopenharmony_ci case uint_to_vec4 7823e5c31af7Sopenharmony_ci version 310 es 7824e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7825e5c31af7Sopenharmony_ci values 7826e5c31af7Sopenharmony_ci { 7827e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 7828e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(3.0, 4.0, 9.0, 28.0) | vec4(5.0, 8.0, 15.0, 36.0) | vec4(6.0, 10.0, 18.0, 40.0) | vec4(9.0, 16.0, 27.0, 52.0) | vec4(13.0, 24.0, 39.0, 68.0) ]; 7829e5c31af7Sopenharmony_ci } 7830e5c31af7Sopenharmony_ci 7831e5c31af7Sopenharmony_ci both "" 7832e5c31af7Sopenharmony_ci #version 310 es 7833e5c31af7Sopenharmony_ci precision highp float; 7834e5c31af7Sopenharmony_ci ${DECLARATIONS} 7835e5c31af7Sopenharmony_ci 7836e5c31af7Sopenharmony_ci void main() 7837e5c31af7Sopenharmony_ci { 7838e5c31af7Sopenharmony_ci ${SETUP} 7839e5c31af7Sopenharmony_ci out0 = (in0 + vec4(2.0, 1.0, 2.0, 6.0)) * vec4(1.0, 2.0, 3.0, 4.0); 7840e5c31af7Sopenharmony_ci ${OUTPUT} 7841e5c31af7Sopenharmony_ci } 7842e5c31af7Sopenharmony_ci "" 7843e5c31af7Sopenharmony_ci end 7844e5c31af7Sopenharmony_ci case ivec2_to_uvec2 7845e5c31af7Sopenharmony_ci version 310 es 7846e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7847e5c31af7Sopenharmony_ci values 7848e5c31af7Sopenharmony_ci { 7849e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 7850e5c31af7Sopenharmony_ci output uvec2 out0 = [ uvec2(10, 24) | uvec2(12, 21) | uvec2(14, 39) ]; 7851e5c31af7Sopenharmony_ci } 7852e5c31af7Sopenharmony_ci 7853e5c31af7Sopenharmony_ci both "" 7854e5c31af7Sopenharmony_ci #version 310 es 7855e5c31af7Sopenharmony_ci precision highp float; 7856e5c31af7Sopenharmony_ci ${DECLARATIONS} 7857e5c31af7Sopenharmony_ci 7858e5c31af7Sopenharmony_ci void main() 7859e5c31af7Sopenharmony_ci { 7860e5c31af7Sopenharmony_ci ${SETUP} 7861e5c31af7Sopenharmony_ci out0 = (in0 + ivec2(4, 6)) * ivec2(2, 3); 7862e5c31af7Sopenharmony_ci ${OUTPUT} 7863e5c31af7Sopenharmony_ci } 7864e5c31af7Sopenharmony_ci "" 7865e5c31af7Sopenharmony_ci end 7866e5c31af7Sopenharmony_ci case ivec2_to_vec2 7867e5c31af7Sopenharmony_ci version 310 es 7868e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7869e5c31af7Sopenharmony_ci values 7870e5c31af7Sopenharmony_ci { 7871e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 7872e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(3.0, 6.0) | vec2(4.0, 4.0) | vec2(5.0, 16.0) ]; 7873e5c31af7Sopenharmony_ci } 7874e5c31af7Sopenharmony_ci 7875e5c31af7Sopenharmony_ci both "" 7876e5c31af7Sopenharmony_ci #version 310 es 7877e5c31af7Sopenharmony_ci precision highp float; 7878e5c31af7Sopenharmony_ci ${DECLARATIONS} 7879e5c31af7Sopenharmony_ci 7880e5c31af7Sopenharmony_ci void main() 7881e5c31af7Sopenharmony_ci { 7882e5c31af7Sopenharmony_ci ${SETUP} 7883e5c31af7Sopenharmony_ci out0 = (in0 + vec2(2.0, 1.0)) * vec2(1.0, 2.0); 7884e5c31af7Sopenharmony_ci ${OUTPUT} 7885e5c31af7Sopenharmony_ci } 7886e5c31af7Sopenharmony_ci "" 7887e5c31af7Sopenharmony_ci end 7888e5c31af7Sopenharmony_ci case uvec2_to_vec2 7889e5c31af7Sopenharmony_ci version 310 es 7890e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7891e5c31af7Sopenharmony_ci values 7892e5c31af7Sopenharmony_ci { 7893e5c31af7Sopenharmony_ci input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 7894e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(4.0, 8.0) | vec2(6.0, 14.0) | vec2(3.0, 28.0) ]; 7895e5c31af7Sopenharmony_ci } 7896e5c31af7Sopenharmony_ci 7897e5c31af7Sopenharmony_ci both "" 7898e5c31af7Sopenharmony_ci #version 310 es 7899e5c31af7Sopenharmony_ci precision highp float; 7900e5c31af7Sopenharmony_ci ${DECLARATIONS} 7901e5c31af7Sopenharmony_ci 7902e5c31af7Sopenharmony_ci void main() 7903e5c31af7Sopenharmony_ci { 7904e5c31af7Sopenharmony_ci ${SETUP} 7905e5c31af7Sopenharmony_ci out0 = (in0 + vec2(2.0, 1.0)) * vec2(1.0, 2.0); 7906e5c31af7Sopenharmony_ci ${OUTPUT} 7907e5c31af7Sopenharmony_ci } 7908e5c31af7Sopenharmony_ci "" 7909e5c31af7Sopenharmony_ci end 7910e5c31af7Sopenharmony_ci case ivec3_to_uvec3 7911e5c31af7Sopenharmony_ci version 310 es 7912e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7913e5c31af7Sopenharmony_ci values 7914e5c31af7Sopenharmony_ci { 7915e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 7916e5c31af7Sopenharmony_ci output uvec3 out0 = [ uvec3(10, 24, 25) | uvec3(12, 21, 20) | uvec3(14, 39, 20) ]; 7917e5c31af7Sopenharmony_ci } 7918e5c31af7Sopenharmony_ci 7919e5c31af7Sopenharmony_ci both "" 7920e5c31af7Sopenharmony_ci #version 310 es 7921e5c31af7Sopenharmony_ci precision highp float; 7922e5c31af7Sopenharmony_ci ${DECLARATIONS} 7923e5c31af7Sopenharmony_ci 7924e5c31af7Sopenharmony_ci void main() 7925e5c31af7Sopenharmony_ci { 7926e5c31af7Sopenharmony_ci ${SETUP} 7927e5c31af7Sopenharmony_ci out0 = (in0 + ivec3(4, 6, 2)) * ivec3(2, 3, 5); 7928e5c31af7Sopenharmony_ci ${OUTPUT} 7929e5c31af7Sopenharmony_ci } 7930e5c31af7Sopenharmony_ci "" 7931e5c31af7Sopenharmony_ci end 7932e5c31af7Sopenharmony_ci case ivec3_to_vec3 7933e5c31af7Sopenharmony_ci version 310 es 7934e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7935e5c31af7Sopenharmony_ci values 7936e5c31af7Sopenharmony_ci { 7937e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 7938e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(3.0, 6.0, 15.0) | vec3(4.0, 4.0, 12.0) | vec3(5.0, 16.0, 12.0) ]; 7939e5c31af7Sopenharmony_ci } 7940e5c31af7Sopenharmony_ci 7941e5c31af7Sopenharmony_ci both "" 7942e5c31af7Sopenharmony_ci #version 310 es 7943e5c31af7Sopenharmony_ci precision highp float; 7944e5c31af7Sopenharmony_ci ${DECLARATIONS} 7945e5c31af7Sopenharmony_ci 7946e5c31af7Sopenharmony_ci void main() 7947e5c31af7Sopenharmony_ci { 7948e5c31af7Sopenharmony_ci ${SETUP} 7949e5c31af7Sopenharmony_ci out0 = (in0 + vec3(2.0, 1.0, 2.0)) * vec3(1.0, 2.0, 3.0); 7950e5c31af7Sopenharmony_ci ${OUTPUT} 7951e5c31af7Sopenharmony_ci } 7952e5c31af7Sopenharmony_ci "" 7953e5c31af7Sopenharmony_ci end 7954e5c31af7Sopenharmony_ci case uvec3_to_vec3 7955e5c31af7Sopenharmony_ci version 310 es 7956e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7957e5c31af7Sopenharmony_ci values 7958e5c31af7Sopenharmony_ci { 7959e5c31af7Sopenharmony_ci input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 7960e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(4.0, 8.0, 21.0) | vec3(6.0, 14.0, 12.0) | vec3(3.0, 28.0, 27.0) ]; 7961e5c31af7Sopenharmony_ci } 7962e5c31af7Sopenharmony_ci 7963e5c31af7Sopenharmony_ci both "" 7964e5c31af7Sopenharmony_ci #version 310 es 7965e5c31af7Sopenharmony_ci precision highp float; 7966e5c31af7Sopenharmony_ci ${DECLARATIONS} 7967e5c31af7Sopenharmony_ci 7968e5c31af7Sopenharmony_ci void main() 7969e5c31af7Sopenharmony_ci { 7970e5c31af7Sopenharmony_ci ${SETUP} 7971e5c31af7Sopenharmony_ci out0 = (in0 + vec3(2.0, 1.0, 2.0)) * vec3(1.0, 2.0, 3.0); 7972e5c31af7Sopenharmony_ci ${OUTPUT} 7973e5c31af7Sopenharmony_ci } 7974e5c31af7Sopenharmony_ci "" 7975e5c31af7Sopenharmony_ci end 7976e5c31af7Sopenharmony_ci case ivec4_to_uvec4 7977e5c31af7Sopenharmony_ci version 310 es 7978e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7979e5c31af7Sopenharmony_ci values 7980e5c31af7Sopenharmony_ci { 7981e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 7982e5c31af7Sopenharmony_ci output uvec4 out0 = [ uvec4(10, 24, 25, 104) | uvec4(12, 21, 20, 120) | uvec4(14, 39, 20, 112) ]; 7983e5c31af7Sopenharmony_ci } 7984e5c31af7Sopenharmony_ci 7985e5c31af7Sopenharmony_ci both "" 7986e5c31af7Sopenharmony_ci #version 310 es 7987e5c31af7Sopenharmony_ci precision highp float; 7988e5c31af7Sopenharmony_ci ${DECLARATIONS} 7989e5c31af7Sopenharmony_ci 7990e5c31af7Sopenharmony_ci void main() 7991e5c31af7Sopenharmony_ci { 7992e5c31af7Sopenharmony_ci ${SETUP} 7993e5c31af7Sopenharmony_ci out0 = (in0 + ivec4(4, 6, 2, 9)) * ivec4(2, 3, 5, 8); 7994e5c31af7Sopenharmony_ci ${OUTPUT} 7995e5c31af7Sopenharmony_ci } 7996e5c31af7Sopenharmony_ci "" 7997e5c31af7Sopenharmony_ci end 7998e5c31af7Sopenharmony_ci case ivec4_to_vec4 7999e5c31af7Sopenharmony_ci version 310 es 8000e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8001e5c31af7Sopenharmony_ci values 8002e5c31af7Sopenharmony_ci { 8003e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 8004e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(3.0, 6.0, 15.0, 40.0) | vec4(4.0, 4.0, 12.0, 48.0) | vec4(5.0, 16.0, 12.0, 44.0) ]; 8005e5c31af7Sopenharmony_ci } 8006e5c31af7Sopenharmony_ci 8007e5c31af7Sopenharmony_ci both "" 8008e5c31af7Sopenharmony_ci #version 310 es 8009e5c31af7Sopenharmony_ci precision highp float; 8010e5c31af7Sopenharmony_ci ${DECLARATIONS} 8011e5c31af7Sopenharmony_ci 8012e5c31af7Sopenharmony_ci void main() 8013e5c31af7Sopenharmony_ci { 8014e5c31af7Sopenharmony_ci ${SETUP} 8015e5c31af7Sopenharmony_ci out0 = (in0 + vec4(2.0, 1.0, 2.0, 6.0)) * vec4(1.0, 2.0, 3.0, 4.0); 8016e5c31af7Sopenharmony_ci ${OUTPUT} 8017e5c31af7Sopenharmony_ci } 8018e5c31af7Sopenharmony_ci "" 8019e5c31af7Sopenharmony_ci end 8020e5c31af7Sopenharmony_ci case uvec4_to_vec4 8021e5c31af7Sopenharmony_ci version 310 es 8022e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8023e5c31af7Sopenharmony_ci values 8024e5c31af7Sopenharmony_ci { 8025e5c31af7Sopenharmony_ci input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 8026e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(4.0, 8.0, 21.0, 56.0) | vec4(6.0, 14.0, 12.0, 60.0) | vec4(3.0, 28.0, 27.0, 40.0) ]; 8027e5c31af7Sopenharmony_ci } 8028e5c31af7Sopenharmony_ci 8029e5c31af7Sopenharmony_ci both "" 8030e5c31af7Sopenharmony_ci #version 310 es 8031e5c31af7Sopenharmony_ci precision highp float; 8032e5c31af7Sopenharmony_ci ${DECLARATIONS} 8033e5c31af7Sopenharmony_ci 8034e5c31af7Sopenharmony_ci void main() 8035e5c31af7Sopenharmony_ci { 8036e5c31af7Sopenharmony_ci ${SETUP} 8037e5c31af7Sopenharmony_ci out0 = (in0 + vec4(2.0, 1.0, 2.0, 6.0)) * vec4(1.0, 2.0, 3.0, 4.0); 8038e5c31af7Sopenharmony_ci ${OUTPUT} 8039e5c31af7Sopenharmony_ci } 8040e5c31af7Sopenharmony_ci "" 8041e5c31af7Sopenharmony_ci end 8042e5c31af7Sopenharmony_ci 8043e5c31af7Sopenharmony_ci end # input_in_parens 8044e5c31af7Sopenharmony_ci group input_outside_parens "Input variable outside parenthesized expression" 8045e5c31af7Sopenharmony_ci 8046e5c31af7Sopenharmony_ci case int_to_float 8047e5c31af7Sopenharmony_ci version 310 es 8048e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8049e5c31af7Sopenharmony_ci values 8050e5c31af7Sopenharmony_ci { 8051e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 8052e5c31af7Sopenharmony_ci output float out0 = [ 6.0 | 3.0 | 3.0 | 9.0 | 15.0 ]; 8053e5c31af7Sopenharmony_ci } 8054e5c31af7Sopenharmony_ci 8055e5c31af7Sopenharmony_ci both "" 8056e5c31af7Sopenharmony_ci #version 310 es 8057e5c31af7Sopenharmony_ci precision highp float; 8058e5c31af7Sopenharmony_ci ${DECLARATIONS} 8059e5c31af7Sopenharmony_ci 8060e5c31af7Sopenharmony_ci void main() 8061e5c31af7Sopenharmony_ci { 8062e5c31af7Sopenharmony_ci ${SETUP} 8063e5c31af7Sopenharmony_ci out0 = (2.0 + 1.0) * in0; 8064e5c31af7Sopenharmony_ci ${OUTPUT} 8065e5c31af7Sopenharmony_ci } 8066e5c31af7Sopenharmony_ci "" 8067e5c31af7Sopenharmony_ci end 8068e5c31af7Sopenharmony_ci case int_to_uint 8069e5c31af7Sopenharmony_ci version 310 es 8070e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8071e5c31af7Sopenharmony_ci values 8072e5c31af7Sopenharmony_ci { 8073e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 8074e5c31af7Sopenharmony_ci output uint out0 = [ 8 | 4 | 4 | 12 | 20 ]; 8075e5c31af7Sopenharmony_ci } 8076e5c31af7Sopenharmony_ci 8077e5c31af7Sopenharmony_ci both "" 8078e5c31af7Sopenharmony_ci #version 310 es 8079e5c31af7Sopenharmony_ci precision highp float; 8080e5c31af7Sopenharmony_ci ${DECLARATIONS} 8081e5c31af7Sopenharmony_ci 8082e5c31af7Sopenharmony_ci void main() 8083e5c31af7Sopenharmony_ci { 8084e5c31af7Sopenharmony_ci ${SETUP} 8085e5c31af7Sopenharmony_ci out0 = (1 + 3) * in0; 8086e5c31af7Sopenharmony_ci ${OUTPUT} 8087e5c31af7Sopenharmony_ci } 8088e5c31af7Sopenharmony_ci "" 8089e5c31af7Sopenharmony_ci end 8090e5c31af7Sopenharmony_ci case int_to_vec2 8091e5c31af7Sopenharmony_ci version 310 es 8092e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8093e5c31af7Sopenharmony_ci values 8094e5c31af7Sopenharmony_ci { 8095e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 8096e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(6.0, 6.0) | vec2(3.0, 3.0) | vec2(3.0, 3.0) | vec2(9.0, 9.0) | vec2(15.0, 15.0) ]; 8097e5c31af7Sopenharmony_ci } 8098e5c31af7Sopenharmony_ci 8099e5c31af7Sopenharmony_ci both "" 8100e5c31af7Sopenharmony_ci #version 310 es 8101e5c31af7Sopenharmony_ci precision highp float; 8102e5c31af7Sopenharmony_ci ${DECLARATIONS} 8103e5c31af7Sopenharmony_ci 8104e5c31af7Sopenharmony_ci void main() 8105e5c31af7Sopenharmony_ci { 8106e5c31af7Sopenharmony_ci ${SETUP} 8107e5c31af7Sopenharmony_ci out0 = (vec2(1.0, 2.0) + vec2(2.0, 1.0)) * in0; 8108e5c31af7Sopenharmony_ci ${OUTPUT} 8109e5c31af7Sopenharmony_ci } 8110e5c31af7Sopenharmony_ci "" 8111e5c31af7Sopenharmony_ci end 8112e5c31af7Sopenharmony_ci case int_to_vec3 8113e5c31af7Sopenharmony_ci version 310 es 8114e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8115e5c31af7Sopenharmony_ci values 8116e5c31af7Sopenharmony_ci { 8117e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 8118e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(6.0, 6.0, 10.0) | vec3(3.0, 3.0, 5.0) | vec3(3.0, 3.0, 5.0) | vec3(9.0, 9.0, 15.0) | vec3(15.0, 15.0, 25.0) ]; 8119e5c31af7Sopenharmony_ci } 8120e5c31af7Sopenharmony_ci 8121e5c31af7Sopenharmony_ci both "" 8122e5c31af7Sopenharmony_ci #version 310 es 8123e5c31af7Sopenharmony_ci precision highp float; 8124e5c31af7Sopenharmony_ci ${DECLARATIONS} 8125e5c31af7Sopenharmony_ci 8126e5c31af7Sopenharmony_ci void main() 8127e5c31af7Sopenharmony_ci { 8128e5c31af7Sopenharmony_ci ${SETUP} 8129e5c31af7Sopenharmony_ci out0 = (vec3(1.0, 2.0, 3.0) + vec3(2.0, 1.0, 2.0)) * in0; 8130e5c31af7Sopenharmony_ci ${OUTPUT} 8131e5c31af7Sopenharmony_ci } 8132e5c31af7Sopenharmony_ci "" 8133e5c31af7Sopenharmony_ci end 8134e5c31af7Sopenharmony_ci case int_to_vec4 8135e5c31af7Sopenharmony_ci version 310 es 8136e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8137e5c31af7Sopenharmony_ci values 8138e5c31af7Sopenharmony_ci { 8139e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 8140e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(6.0, 6.0, 10.0, 20.0) | vec4(3.0, 3.0, 5.0, 10.0) | vec4(3.0, 3.0, 5.0, 10.0) | vec4(9.0, 9.0, 15.0, 30.0) | vec4(15.0, 15.0, 25.0, 50.0) ]; 8141e5c31af7Sopenharmony_ci } 8142e5c31af7Sopenharmony_ci 8143e5c31af7Sopenharmony_ci both "" 8144e5c31af7Sopenharmony_ci #version 310 es 8145e5c31af7Sopenharmony_ci precision highp float; 8146e5c31af7Sopenharmony_ci ${DECLARATIONS} 8147e5c31af7Sopenharmony_ci 8148e5c31af7Sopenharmony_ci void main() 8149e5c31af7Sopenharmony_ci { 8150e5c31af7Sopenharmony_ci ${SETUP} 8151e5c31af7Sopenharmony_ci out0 = (vec4(1.0, 2.0, 3.0, 4.0) + vec4(2.0, 1.0, 2.0, 6.0)) * in0; 8152e5c31af7Sopenharmony_ci ${OUTPUT} 8153e5c31af7Sopenharmony_ci } 8154e5c31af7Sopenharmony_ci "" 8155e5c31af7Sopenharmony_ci end 8156e5c31af7Sopenharmony_ci case int_to_uvec2 8157e5c31af7Sopenharmony_ci version 310 es 8158e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8159e5c31af7Sopenharmony_ci values 8160e5c31af7Sopenharmony_ci { 8161e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 8162e5c31af7Sopenharmony_ci output uvec2 out0 = [ uvec2(12, 18) | uvec2(6, 9) | uvec2(6, 9) | uvec2(18, 27) | uvec2(30, 45) ]; 8163e5c31af7Sopenharmony_ci } 8164e5c31af7Sopenharmony_ci 8165e5c31af7Sopenharmony_ci both "" 8166e5c31af7Sopenharmony_ci #version 310 es 8167e5c31af7Sopenharmony_ci precision highp float; 8168e5c31af7Sopenharmony_ci ${DECLARATIONS} 8169e5c31af7Sopenharmony_ci 8170e5c31af7Sopenharmony_ci void main() 8171e5c31af7Sopenharmony_ci { 8172e5c31af7Sopenharmony_ci ${SETUP} 8173e5c31af7Sopenharmony_ci out0 = (ivec2(2, 3) + ivec2(4, 6)) * in0; 8174e5c31af7Sopenharmony_ci ${OUTPUT} 8175e5c31af7Sopenharmony_ci } 8176e5c31af7Sopenharmony_ci "" 8177e5c31af7Sopenharmony_ci end 8178e5c31af7Sopenharmony_ci case int_to_uvec3 8179e5c31af7Sopenharmony_ci version 310 es 8180e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8181e5c31af7Sopenharmony_ci values 8182e5c31af7Sopenharmony_ci { 8183e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 8184e5c31af7Sopenharmony_ci output uvec3 out0 = [ uvec3(12, 18, 14) | uvec3(6, 9, 7) | uvec3(6, 9, 7) | uvec3(18, 27, 21) | uvec3(30, 45, 35) ]; 8185e5c31af7Sopenharmony_ci } 8186e5c31af7Sopenharmony_ci 8187e5c31af7Sopenharmony_ci both "" 8188e5c31af7Sopenharmony_ci #version 310 es 8189e5c31af7Sopenharmony_ci precision highp float; 8190e5c31af7Sopenharmony_ci ${DECLARATIONS} 8191e5c31af7Sopenharmony_ci 8192e5c31af7Sopenharmony_ci void main() 8193e5c31af7Sopenharmony_ci { 8194e5c31af7Sopenharmony_ci ${SETUP} 8195e5c31af7Sopenharmony_ci out0 = (ivec3(2, 3, 5) + ivec3(4, 6, 2)) * in0; 8196e5c31af7Sopenharmony_ci ${OUTPUT} 8197e5c31af7Sopenharmony_ci } 8198e5c31af7Sopenharmony_ci "" 8199e5c31af7Sopenharmony_ci end 8200e5c31af7Sopenharmony_ci case int_to_uvec4 8201e5c31af7Sopenharmony_ci version 310 es 8202e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8203e5c31af7Sopenharmony_ci values 8204e5c31af7Sopenharmony_ci { 8205e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 8206e5c31af7Sopenharmony_ci output uvec4 out0 = [ uvec4(12, 18, 14, 34) | uvec4(6, 9, 7, 17) | uvec4(6, 9, 7, 17) | uvec4(18, 27, 21, 51) | uvec4(30, 45, 35, 85) ]; 8207e5c31af7Sopenharmony_ci } 8208e5c31af7Sopenharmony_ci 8209e5c31af7Sopenharmony_ci both "" 8210e5c31af7Sopenharmony_ci #version 310 es 8211e5c31af7Sopenharmony_ci precision highp float; 8212e5c31af7Sopenharmony_ci ${DECLARATIONS} 8213e5c31af7Sopenharmony_ci 8214e5c31af7Sopenharmony_ci void main() 8215e5c31af7Sopenharmony_ci { 8216e5c31af7Sopenharmony_ci ${SETUP} 8217e5c31af7Sopenharmony_ci out0 = (ivec4(2, 3, 5, 8) + ivec4(4, 6, 2, 9)) * in0; 8218e5c31af7Sopenharmony_ci ${OUTPUT} 8219e5c31af7Sopenharmony_ci } 8220e5c31af7Sopenharmony_ci "" 8221e5c31af7Sopenharmony_ci end 8222e5c31af7Sopenharmony_ci case uint_to_float 8223e5c31af7Sopenharmony_ci version 310 es 8224e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8225e5c31af7Sopenharmony_ci values 8226e5c31af7Sopenharmony_ci { 8227e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 8228e5c31af7Sopenharmony_ci output float out0 = [ 3.0 | 9.0 | 12.0 | 21.0 | 33.0 ]; 8229e5c31af7Sopenharmony_ci } 8230e5c31af7Sopenharmony_ci 8231e5c31af7Sopenharmony_ci both "" 8232e5c31af7Sopenharmony_ci #version 310 es 8233e5c31af7Sopenharmony_ci precision highp float; 8234e5c31af7Sopenharmony_ci ${DECLARATIONS} 8235e5c31af7Sopenharmony_ci 8236e5c31af7Sopenharmony_ci void main() 8237e5c31af7Sopenharmony_ci { 8238e5c31af7Sopenharmony_ci ${SETUP} 8239e5c31af7Sopenharmony_ci out0 = (2.0 + 1.0) * in0; 8240e5c31af7Sopenharmony_ci ${OUTPUT} 8241e5c31af7Sopenharmony_ci } 8242e5c31af7Sopenharmony_ci "" 8243e5c31af7Sopenharmony_ci end 8244e5c31af7Sopenharmony_ci case uint_to_vec2 8245e5c31af7Sopenharmony_ci version 310 es 8246e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8247e5c31af7Sopenharmony_ci values 8248e5c31af7Sopenharmony_ci { 8249e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 8250e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(3.0, 3.0) | vec2(9.0, 9.0) | vec2(12.0, 12.0) | vec2(21.0, 21.0) | vec2(33.0, 33.0) ]; 8251e5c31af7Sopenharmony_ci } 8252e5c31af7Sopenharmony_ci 8253e5c31af7Sopenharmony_ci both "" 8254e5c31af7Sopenharmony_ci #version 310 es 8255e5c31af7Sopenharmony_ci precision highp float; 8256e5c31af7Sopenharmony_ci ${DECLARATIONS} 8257e5c31af7Sopenharmony_ci 8258e5c31af7Sopenharmony_ci void main() 8259e5c31af7Sopenharmony_ci { 8260e5c31af7Sopenharmony_ci ${SETUP} 8261e5c31af7Sopenharmony_ci out0 = (vec2(1.0, 2.0) + vec2(2.0, 1.0)) * in0; 8262e5c31af7Sopenharmony_ci ${OUTPUT} 8263e5c31af7Sopenharmony_ci } 8264e5c31af7Sopenharmony_ci "" 8265e5c31af7Sopenharmony_ci end 8266e5c31af7Sopenharmony_ci case uint_to_vec3 8267e5c31af7Sopenharmony_ci version 310 es 8268e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8269e5c31af7Sopenharmony_ci values 8270e5c31af7Sopenharmony_ci { 8271e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 8272e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(3.0, 3.0, 5.0) | vec3(9.0, 9.0, 15.0) | vec3(12.0, 12.0, 20.0) | vec3(21.0, 21.0, 35.0) | vec3(33.0, 33.0, 55.0) ]; 8273e5c31af7Sopenharmony_ci } 8274e5c31af7Sopenharmony_ci 8275e5c31af7Sopenharmony_ci both "" 8276e5c31af7Sopenharmony_ci #version 310 es 8277e5c31af7Sopenharmony_ci precision highp float; 8278e5c31af7Sopenharmony_ci ${DECLARATIONS} 8279e5c31af7Sopenharmony_ci 8280e5c31af7Sopenharmony_ci void main() 8281e5c31af7Sopenharmony_ci { 8282e5c31af7Sopenharmony_ci ${SETUP} 8283e5c31af7Sopenharmony_ci out0 = (vec3(1.0, 2.0, 3.0) + vec3(2.0, 1.0, 2.0)) * in0; 8284e5c31af7Sopenharmony_ci ${OUTPUT} 8285e5c31af7Sopenharmony_ci } 8286e5c31af7Sopenharmony_ci "" 8287e5c31af7Sopenharmony_ci end 8288e5c31af7Sopenharmony_ci case uint_to_vec4 8289e5c31af7Sopenharmony_ci version 310 es 8290e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8291e5c31af7Sopenharmony_ci values 8292e5c31af7Sopenharmony_ci { 8293e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 8294e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(3.0, 3.0, 5.0, 10.0) | vec4(9.0, 9.0, 15.0, 30.0) | vec4(12.0, 12.0, 20.0, 40.0) | vec4(21.0, 21.0, 35.0, 70.0) | vec4(33.0, 33.0, 55.0, 110.0) ]; 8295e5c31af7Sopenharmony_ci } 8296e5c31af7Sopenharmony_ci 8297e5c31af7Sopenharmony_ci both "" 8298e5c31af7Sopenharmony_ci #version 310 es 8299e5c31af7Sopenharmony_ci precision highp float; 8300e5c31af7Sopenharmony_ci ${DECLARATIONS} 8301e5c31af7Sopenharmony_ci 8302e5c31af7Sopenharmony_ci void main() 8303e5c31af7Sopenharmony_ci { 8304e5c31af7Sopenharmony_ci ${SETUP} 8305e5c31af7Sopenharmony_ci out0 = (vec4(1.0, 2.0, 3.0, 4.0) + vec4(2.0, 1.0, 2.0, 6.0)) * in0; 8306e5c31af7Sopenharmony_ci ${OUTPUT} 8307e5c31af7Sopenharmony_ci } 8308e5c31af7Sopenharmony_ci "" 8309e5c31af7Sopenharmony_ci end 8310e5c31af7Sopenharmony_ci case ivec2_to_uvec2 8311e5c31af7Sopenharmony_ci version 310 es 8312e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8313e5c31af7Sopenharmony_ci values 8314e5c31af7Sopenharmony_ci { 8315e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 8316e5c31af7Sopenharmony_ci output uvec2 out0 = [ uvec2(6, 18) | uvec2(12, 9) | uvec2(18, 63) ]; 8317e5c31af7Sopenharmony_ci } 8318e5c31af7Sopenharmony_ci 8319e5c31af7Sopenharmony_ci both "" 8320e5c31af7Sopenharmony_ci #version 310 es 8321e5c31af7Sopenharmony_ci precision highp float; 8322e5c31af7Sopenharmony_ci ${DECLARATIONS} 8323e5c31af7Sopenharmony_ci 8324e5c31af7Sopenharmony_ci void main() 8325e5c31af7Sopenharmony_ci { 8326e5c31af7Sopenharmony_ci ${SETUP} 8327e5c31af7Sopenharmony_ci out0 = (ivec2(2, 3) + ivec2(4, 6)) * in0; 8328e5c31af7Sopenharmony_ci ${OUTPUT} 8329e5c31af7Sopenharmony_ci } 8330e5c31af7Sopenharmony_ci "" 8331e5c31af7Sopenharmony_ci end 8332e5c31af7Sopenharmony_ci case ivec2_to_vec2 8333e5c31af7Sopenharmony_ci version 310 es 8334e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8335e5c31af7Sopenharmony_ci values 8336e5c31af7Sopenharmony_ci { 8337e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 8338e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(3.0, 6.0) | vec2(6.0, 3.0) | vec2(9.0, 21.0) ]; 8339e5c31af7Sopenharmony_ci } 8340e5c31af7Sopenharmony_ci 8341e5c31af7Sopenharmony_ci both "" 8342e5c31af7Sopenharmony_ci #version 310 es 8343e5c31af7Sopenharmony_ci precision highp float; 8344e5c31af7Sopenharmony_ci ${DECLARATIONS} 8345e5c31af7Sopenharmony_ci 8346e5c31af7Sopenharmony_ci void main() 8347e5c31af7Sopenharmony_ci { 8348e5c31af7Sopenharmony_ci ${SETUP} 8349e5c31af7Sopenharmony_ci out0 = (vec2(1.0, 2.0) + vec2(2.0, 1.0)) * in0; 8350e5c31af7Sopenharmony_ci ${OUTPUT} 8351e5c31af7Sopenharmony_ci } 8352e5c31af7Sopenharmony_ci "" 8353e5c31af7Sopenharmony_ci end 8354e5c31af7Sopenharmony_ci case uvec2_to_vec2 8355e5c31af7Sopenharmony_ci version 310 es 8356e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8357e5c31af7Sopenharmony_ci values 8358e5c31af7Sopenharmony_ci { 8359e5c31af7Sopenharmony_ci input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 8360e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(6.0, 9.0) | vec2(12.0, 18.0) | vec2(3.0, 39.0) ]; 8361e5c31af7Sopenharmony_ci } 8362e5c31af7Sopenharmony_ci 8363e5c31af7Sopenharmony_ci both "" 8364e5c31af7Sopenharmony_ci #version 310 es 8365e5c31af7Sopenharmony_ci precision highp float; 8366e5c31af7Sopenharmony_ci ${DECLARATIONS} 8367e5c31af7Sopenharmony_ci 8368e5c31af7Sopenharmony_ci void main() 8369e5c31af7Sopenharmony_ci { 8370e5c31af7Sopenharmony_ci ${SETUP} 8371e5c31af7Sopenharmony_ci out0 = (vec2(1.0, 2.0) + vec2(2.0, 1.0)) * in0; 8372e5c31af7Sopenharmony_ci ${OUTPUT} 8373e5c31af7Sopenharmony_ci } 8374e5c31af7Sopenharmony_ci "" 8375e5c31af7Sopenharmony_ci end 8376e5c31af7Sopenharmony_ci case ivec3_to_uvec3 8377e5c31af7Sopenharmony_ci version 310 es 8378e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8379e5c31af7Sopenharmony_ci values 8380e5c31af7Sopenharmony_ci { 8381e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 8382e5c31af7Sopenharmony_ci output uvec3 out0 = [ uvec3(6, 18, 21) | uvec3(12, 9, 14) | uvec3(18, 63, 14) ]; 8383e5c31af7Sopenharmony_ci } 8384e5c31af7Sopenharmony_ci 8385e5c31af7Sopenharmony_ci both "" 8386e5c31af7Sopenharmony_ci #version 310 es 8387e5c31af7Sopenharmony_ci precision highp float; 8388e5c31af7Sopenharmony_ci ${DECLARATIONS} 8389e5c31af7Sopenharmony_ci 8390e5c31af7Sopenharmony_ci void main() 8391e5c31af7Sopenharmony_ci { 8392e5c31af7Sopenharmony_ci ${SETUP} 8393e5c31af7Sopenharmony_ci out0 = (ivec3(2, 3, 5) + ivec3(4, 6, 2)) * in0; 8394e5c31af7Sopenharmony_ci ${OUTPUT} 8395e5c31af7Sopenharmony_ci } 8396e5c31af7Sopenharmony_ci "" 8397e5c31af7Sopenharmony_ci end 8398e5c31af7Sopenharmony_ci case ivec3_to_vec3 8399e5c31af7Sopenharmony_ci version 310 es 8400e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8401e5c31af7Sopenharmony_ci values 8402e5c31af7Sopenharmony_ci { 8403e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 8404e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(3.0, 6.0, 15.0) | vec3(6.0, 3.0, 10.0) | vec3(9.0, 21.0, 10.0) ]; 8405e5c31af7Sopenharmony_ci } 8406e5c31af7Sopenharmony_ci 8407e5c31af7Sopenharmony_ci both "" 8408e5c31af7Sopenharmony_ci #version 310 es 8409e5c31af7Sopenharmony_ci precision highp float; 8410e5c31af7Sopenharmony_ci ${DECLARATIONS} 8411e5c31af7Sopenharmony_ci 8412e5c31af7Sopenharmony_ci void main() 8413e5c31af7Sopenharmony_ci { 8414e5c31af7Sopenharmony_ci ${SETUP} 8415e5c31af7Sopenharmony_ci out0 = (vec3(1.0, 2.0, 3.0) + vec3(2.0, 1.0, 2.0)) * in0; 8416e5c31af7Sopenharmony_ci ${OUTPUT} 8417e5c31af7Sopenharmony_ci } 8418e5c31af7Sopenharmony_ci "" 8419e5c31af7Sopenharmony_ci end 8420e5c31af7Sopenharmony_ci case uvec3_to_vec3 8421e5c31af7Sopenharmony_ci version 310 es 8422e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8423e5c31af7Sopenharmony_ci values 8424e5c31af7Sopenharmony_ci { 8425e5c31af7Sopenharmony_ci input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 8426e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(6.0, 9.0, 25.0) | vec3(12.0, 18.0, 10.0) | vec3(3.0, 39.0, 35.0) ]; 8427e5c31af7Sopenharmony_ci } 8428e5c31af7Sopenharmony_ci 8429e5c31af7Sopenharmony_ci both "" 8430e5c31af7Sopenharmony_ci #version 310 es 8431e5c31af7Sopenharmony_ci precision highp float; 8432e5c31af7Sopenharmony_ci ${DECLARATIONS} 8433e5c31af7Sopenharmony_ci 8434e5c31af7Sopenharmony_ci void main() 8435e5c31af7Sopenharmony_ci { 8436e5c31af7Sopenharmony_ci ${SETUP} 8437e5c31af7Sopenharmony_ci out0 = (vec3(1.0, 2.0, 3.0) + vec3(2.0, 1.0, 2.0)) * in0; 8438e5c31af7Sopenharmony_ci ${OUTPUT} 8439e5c31af7Sopenharmony_ci } 8440e5c31af7Sopenharmony_ci "" 8441e5c31af7Sopenharmony_ci end 8442e5c31af7Sopenharmony_ci case ivec4_to_uvec4 8443e5c31af7Sopenharmony_ci version 310 es 8444e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8445e5c31af7Sopenharmony_ci values 8446e5c31af7Sopenharmony_ci { 8447e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 8448e5c31af7Sopenharmony_ci output uvec4 out0 = [ uvec4(6, 18, 21, 68) | uvec4(12, 9, 14, 102) | uvec4(18, 63, 14, 85) ]; 8449e5c31af7Sopenharmony_ci } 8450e5c31af7Sopenharmony_ci 8451e5c31af7Sopenharmony_ci both "" 8452e5c31af7Sopenharmony_ci #version 310 es 8453e5c31af7Sopenharmony_ci precision highp float; 8454e5c31af7Sopenharmony_ci ${DECLARATIONS} 8455e5c31af7Sopenharmony_ci 8456e5c31af7Sopenharmony_ci void main() 8457e5c31af7Sopenharmony_ci { 8458e5c31af7Sopenharmony_ci ${SETUP} 8459e5c31af7Sopenharmony_ci out0 = (ivec4(2, 3, 5, 8) + ivec4(4, 6, 2, 9)) * in0; 8460e5c31af7Sopenharmony_ci ${OUTPUT} 8461e5c31af7Sopenharmony_ci } 8462e5c31af7Sopenharmony_ci "" 8463e5c31af7Sopenharmony_ci end 8464e5c31af7Sopenharmony_ci case ivec4_to_vec4 8465e5c31af7Sopenharmony_ci version 310 es 8466e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8467e5c31af7Sopenharmony_ci values 8468e5c31af7Sopenharmony_ci { 8469e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 8470e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(3.0, 6.0, 15.0, 40.0) | vec4(6.0, 3.0, 10.0, 60.0) | vec4(9.0, 21.0, 10.0, 50.0) ]; 8471e5c31af7Sopenharmony_ci } 8472e5c31af7Sopenharmony_ci 8473e5c31af7Sopenharmony_ci both "" 8474e5c31af7Sopenharmony_ci #version 310 es 8475e5c31af7Sopenharmony_ci precision highp float; 8476e5c31af7Sopenharmony_ci ${DECLARATIONS} 8477e5c31af7Sopenharmony_ci 8478e5c31af7Sopenharmony_ci void main() 8479e5c31af7Sopenharmony_ci { 8480e5c31af7Sopenharmony_ci ${SETUP} 8481e5c31af7Sopenharmony_ci out0 = (vec4(1.0, 2.0, 3.0, 4.0) + vec4(2.0, 1.0, 2.0, 6.0)) * in0; 8482e5c31af7Sopenharmony_ci ${OUTPUT} 8483e5c31af7Sopenharmony_ci } 8484e5c31af7Sopenharmony_ci "" 8485e5c31af7Sopenharmony_ci end 8486e5c31af7Sopenharmony_ci case uvec4_to_vec4 8487e5c31af7Sopenharmony_ci version 310 es 8488e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8489e5c31af7Sopenharmony_ci values 8490e5c31af7Sopenharmony_ci { 8491e5c31af7Sopenharmony_ci input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 8492e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(6.0, 9.0, 25.0, 80.0) | vec4(12.0, 18.0, 10.0, 90.0) | vec4(3.0, 39.0, 35.0, 40.0) ]; 8493e5c31af7Sopenharmony_ci } 8494e5c31af7Sopenharmony_ci 8495e5c31af7Sopenharmony_ci both "" 8496e5c31af7Sopenharmony_ci #version 310 es 8497e5c31af7Sopenharmony_ci precision highp float; 8498e5c31af7Sopenharmony_ci ${DECLARATIONS} 8499e5c31af7Sopenharmony_ci 8500e5c31af7Sopenharmony_ci void main() 8501e5c31af7Sopenharmony_ci { 8502e5c31af7Sopenharmony_ci ${SETUP} 8503e5c31af7Sopenharmony_ci out0 = (vec4(1.0, 2.0, 3.0, 4.0) + vec4(2.0, 1.0, 2.0, 6.0)) * in0; 8504e5c31af7Sopenharmony_ci ${OUTPUT} 8505e5c31af7Sopenharmony_ci } 8506e5c31af7Sopenharmony_ci "" 8507e5c31af7Sopenharmony_ci end 8508e5c31af7Sopenharmony_ci 8509e5c31af7Sopenharmony_ci end # input_outside_parens 8510e5c31af7Sopenharmony_ci 8511e5c31af7Sopenharmony_ci end # paren_expr_before_literal 8512e5c31af7Sopenharmony_ci group literal_before_paren_expr "Literal before parenthesized expression" 8513e5c31af7Sopenharmony_ci 8514e5c31af7Sopenharmony_ci group input_in_parens "Input variable in parenthesized expression" 8515e5c31af7Sopenharmony_ci 8516e5c31af7Sopenharmony_ci case int_to_float 8517e5c31af7Sopenharmony_ci version 310 es 8518e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8519e5c31af7Sopenharmony_ci values 8520e5c31af7Sopenharmony_ci { 8521e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 8522e5c31af7Sopenharmony_ci output float out0 = [ 6.0 | 4.0 | 4.0 | 8.0 | 12.0 ]; 8523e5c31af7Sopenharmony_ci } 8524e5c31af7Sopenharmony_ci 8525e5c31af7Sopenharmony_ci both "" 8526e5c31af7Sopenharmony_ci #version 310 es 8527e5c31af7Sopenharmony_ci precision highp float; 8528e5c31af7Sopenharmony_ci ${DECLARATIONS} 8529e5c31af7Sopenharmony_ci 8530e5c31af7Sopenharmony_ci void main() 8531e5c31af7Sopenharmony_ci { 8532e5c31af7Sopenharmony_ci ${SETUP} 8533e5c31af7Sopenharmony_ci out0 = 2.0 * (in0 + 1.0); 8534e5c31af7Sopenharmony_ci ${OUTPUT} 8535e5c31af7Sopenharmony_ci } 8536e5c31af7Sopenharmony_ci "" 8537e5c31af7Sopenharmony_ci end 8538e5c31af7Sopenharmony_ci case int_to_uint 8539e5c31af7Sopenharmony_ci version 310 es 8540e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8541e5c31af7Sopenharmony_ci values 8542e5c31af7Sopenharmony_ci { 8543e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 8544e5c31af7Sopenharmony_ci output uint out0 = [ 5 | 4 | 4 | 6 | 8 ]; 8545e5c31af7Sopenharmony_ci } 8546e5c31af7Sopenharmony_ci 8547e5c31af7Sopenharmony_ci both "" 8548e5c31af7Sopenharmony_ci #version 310 es 8549e5c31af7Sopenharmony_ci precision highp float; 8550e5c31af7Sopenharmony_ci ${DECLARATIONS} 8551e5c31af7Sopenharmony_ci 8552e5c31af7Sopenharmony_ci void main() 8553e5c31af7Sopenharmony_ci { 8554e5c31af7Sopenharmony_ci ${SETUP} 8555e5c31af7Sopenharmony_ci out0 = 1 * (in0 + 3); 8556e5c31af7Sopenharmony_ci ${OUTPUT} 8557e5c31af7Sopenharmony_ci } 8558e5c31af7Sopenharmony_ci "" 8559e5c31af7Sopenharmony_ci end 8560e5c31af7Sopenharmony_ci case int_to_vec2 8561e5c31af7Sopenharmony_ci version 310 es 8562e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8563e5c31af7Sopenharmony_ci values 8564e5c31af7Sopenharmony_ci { 8565e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 8566e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(4.0, 6.0) | vec2(3.0, 4.0) | vec2(3.0, 4.0) | vec2(5.0, 8.0) | vec2(7.0, 12.0) ]; 8567e5c31af7Sopenharmony_ci } 8568e5c31af7Sopenharmony_ci 8569e5c31af7Sopenharmony_ci both "" 8570e5c31af7Sopenharmony_ci #version 310 es 8571e5c31af7Sopenharmony_ci precision highp float; 8572e5c31af7Sopenharmony_ci ${DECLARATIONS} 8573e5c31af7Sopenharmony_ci 8574e5c31af7Sopenharmony_ci void main() 8575e5c31af7Sopenharmony_ci { 8576e5c31af7Sopenharmony_ci ${SETUP} 8577e5c31af7Sopenharmony_ci out0 = vec2(1.0, 2.0) * (in0 + vec2(2.0, 1.0)); 8578e5c31af7Sopenharmony_ci ${OUTPUT} 8579e5c31af7Sopenharmony_ci } 8580e5c31af7Sopenharmony_ci "" 8581e5c31af7Sopenharmony_ci end 8582e5c31af7Sopenharmony_ci case int_to_vec3 8583e5c31af7Sopenharmony_ci version 310 es 8584e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8585e5c31af7Sopenharmony_ci values 8586e5c31af7Sopenharmony_ci { 8587e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 8588e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(4.0, 6.0, 12.0) | vec3(3.0, 4.0, 9.0) | vec3(3.0, 4.0, 9.0) | vec3(5.0, 8.0, 15.0) | vec3(7.0, 12.0, 21.0) ]; 8589e5c31af7Sopenharmony_ci } 8590e5c31af7Sopenharmony_ci 8591e5c31af7Sopenharmony_ci both "" 8592e5c31af7Sopenharmony_ci #version 310 es 8593e5c31af7Sopenharmony_ci precision highp float; 8594e5c31af7Sopenharmony_ci ${DECLARATIONS} 8595e5c31af7Sopenharmony_ci 8596e5c31af7Sopenharmony_ci void main() 8597e5c31af7Sopenharmony_ci { 8598e5c31af7Sopenharmony_ci ${SETUP} 8599e5c31af7Sopenharmony_ci out0 = vec3(1.0, 2.0, 3.0) * (in0 + vec3(2.0, 1.0, 2.0)); 8600e5c31af7Sopenharmony_ci ${OUTPUT} 8601e5c31af7Sopenharmony_ci } 8602e5c31af7Sopenharmony_ci "" 8603e5c31af7Sopenharmony_ci end 8604e5c31af7Sopenharmony_ci case int_to_vec4 8605e5c31af7Sopenharmony_ci version 310 es 8606e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8607e5c31af7Sopenharmony_ci values 8608e5c31af7Sopenharmony_ci { 8609e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 8610e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(4.0, 6.0, 12.0, 32.0) | vec4(3.0, 4.0, 9.0, 28.0) | vec4(3.0, 4.0, 9.0, 28.0) | vec4(5.0, 8.0, 15.0, 36.0) | vec4(7.0, 12.0, 21.0, 44.0) ]; 8611e5c31af7Sopenharmony_ci } 8612e5c31af7Sopenharmony_ci 8613e5c31af7Sopenharmony_ci both "" 8614e5c31af7Sopenharmony_ci #version 310 es 8615e5c31af7Sopenharmony_ci precision highp float; 8616e5c31af7Sopenharmony_ci ${DECLARATIONS} 8617e5c31af7Sopenharmony_ci 8618e5c31af7Sopenharmony_ci void main() 8619e5c31af7Sopenharmony_ci { 8620e5c31af7Sopenharmony_ci ${SETUP} 8621e5c31af7Sopenharmony_ci out0 = vec4(1.0, 2.0, 3.0, 4.0) * (in0 + vec4(2.0, 1.0, 2.0, 6.0)); 8622e5c31af7Sopenharmony_ci ${OUTPUT} 8623e5c31af7Sopenharmony_ci } 8624e5c31af7Sopenharmony_ci "" 8625e5c31af7Sopenharmony_ci end 8626e5c31af7Sopenharmony_ci case int_to_uvec2 8627e5c31af7Sopenharmony_ci version 310 es 8628e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8629e5c31af7Sopenharmony_ci values 8630e5c31af7Sopenharmony_ci { 8631e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 8632e5c31af7Sopenharmony_ci output uvec2 out0 = [ uvec2(12, 24) | uvec2(10, 21) | uvec2(10, 21) | uvec2(14, 27) | uvec2(18, 33) ]; 8633e5c31af7Sopenharmony_ci } 8634e5c31af7Sopenharmony_ci 8635e5c31af7Sopenharmony_ci both "" 8636e5c31af7Sopenharmony_ci #version 310 es 8637e5c31af7Sopenharmony_ci precision highp float; 8638e5c31af7Sopenharmony_ci ${DECLARATIONS} 8639e5c31af7Sopenharmony_ci 8640e5c31af7Sopenharmony_ci void main() 8641e5c31af7Sopenharmony_ci { 8642e5c31af7Sopenharmony_ci ${SETUP} 8643e5c31af7Sopenharmony_ci out0 = ivec2(2, 3) * (in0 + ivec2(4, 6)); 8644e5c31af7Sopenharmony_ci ${OUTPUT} 8645e5c31af7Sopenharmony_ci } 8646e5c31af7Sopenharmony_ci "" 8647e5c31af7Sopenharmony_ci end 8648e5c31af7Sopenharmony_ci case int_to_uvec3 8649e5c31af7Sopenharmony_ci version 310 es 8650e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8651e5c31af7Sopenharmony_ci values 8652e5c31af7Sopenharmony_ci { 8653e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 8654e5c31af7Sopenharmony_ci output uvec3 out0 = [ uvec3(12, 24, 20) | uvec3(10, 21, 15) | uvec3(10, 21, 15) | uvec3(14, 27, 25) | uvec3(18, 33, 35) ]; 8655e5c31af7Sopenharmony_ci } 8656e5c31af7Sopenharmony_ci 8657e5c31af7Sopenharmony_ci both "" 8658e5c31af7Sopenharmony_ci #version 310 es 8659e5c31af7Sopenharmony_ci precision highp float; 8660e5c31af7Sopenharmony_ci ${DECLARATIONS} 8661e5c31af7Sopenharmony_ci 8662e5c31af7Sopenharmony_ci void main() 8663e5c31af7Sopenharmony_ci { 8664e5c31af7Sopenharmony_ci ${SETUP} 8665e5c31af7Sopenharmony_ci out0 = ivec3(2, 3, 5) * (in0 + ivec3(4, 6, 2)); 8666e5c31af7Sopenharmony_ci ${OUTPUT} 8667e5c31af7Sopenharmony_ci } 8668e5c31af7Sopenharmony_ci "" 8669e5c31af7Sopenharmony_ci end 8670e5c31af7Sopenharmony_ci case int_to_uvec4 8671e5c31af7Sopenharmony_ci version 310 es 8672e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8673e5c31af7Sopenharmony_ci values 8674e5c31af7Sopenharmony_ci { 8675e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 8676e5c31af7Sopenharmony_ci output uvec4 out0 = [ uvec4(12, 24, 20, 88) | uvec4(10, 21, 15, 80) | uvec4(10, 21, 15, 80) | uvec4(14, 27, 25, 96) | uvec4(18, 33, 35, 112) ]; 8677e5c31af7Sopenharmony_ci } 8678e5c31af7Sopenharmony_ci 8679e5c31af7Sopenharmony_ci both "" 8680e5c31af7Sopenharmony_ci #version 310 es 8681e5c31af7Sopenharmony_ci precision highp float; 8682e5c31af7Sopenharmony_ci ${DECLARATIONS} 8683e5c31af7Sopenharmony_ci 8684e5c31af7Sopenharmony_ci void main() 8685e5c31af7Sopenharmony_ci { 8686e5c31af7Sopenharmony_ci ${SETUP} 8687e5c31af7Sopenharmony_ci out0 = ivec4(2, 3, 5, 8) * (in0 + ivec4(4, 6, 2, 9)); 8688e5c31af7Sopenharmony_ci ${OUTPUT} 8689e5c31af7Sopenharmony_ci } 8690e5c31af7Sopenharmony_ci "" 8691e5c31af7Sopenharmony_ci end 8692e5c31af7Sopenharmony_ci case uint_to_float 8693e5c31af7Sopenharmony_ci version 310 es 8694e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8695e5c31af7Sopenharmony_ci values 8696e5c31af7Sopenharmony_ci { 8697e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 8698e5c31af7Sopenharmony_ci output float out0 = [ 4.0 | 8.0 | 10.0 | 16.0 | 24.0 ]; 8699e5c31af7Sopenharmony_ci } 8700e5c31af7Sopenharmony_ci 8701e5c31af7Sopenharmony_ci both "" 8702e5c31af7Sopenharmony_ci #version 310 es 8703e5c31af7Sopenharmony_ci precision highp float; 8704e5c31af7Sopenharmony_ci ${DECLARATIONS} 8705e5c31af7Sopenharmony_ci 8706e5c31af7Sopenharmony_ci void main() 8707e5c31af7Sopenharmony_ci { 8708e5c31af7Sopenharmony_ci ${SETUP} 8709e5c31af7Sopenharmony_ci out0 = 2.0 * (in0 + 1.0); 8710e5c31af7Sopenharmony_ci ${OUTPUT} 8711e5c31af7Sopenharmony_ci } 8712e5c31af7Sopenharmony_ci "" 8713e5c31af7Sopenharmony_ci end 8714e5c31af7Sopenharmony_ci case uint_to_vec2 8715e5c31af7Sopenharmony_ci version 310 es 8716e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8717e5c31af7Sopenharmony_ci values 8718e5c31af7Sopenharmony_ci { 8719e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 8720e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(3.0, 4.0) | vec2(5.0, 8.0) | vec2(6.0, 10.0) | vec2(9.0, 16.0) | vec2(13.0, 24.0) ]; 8721e5c31af7Sopenharmony_ci } 8722e5c31af7Sopenharmony_ci 8723e5c31af7Sopenharmony_ci both "" 8724e5c31af7Sopenharmony_ci #version 310 es 8725e5c31af7Sopenharmony_ci precision highp float; 8726e5c31af7Sopenharmony_ci ${DECLARATIONS} 8727e5c31af7Sopenharmony_ci 8728e5c31af7Sopenharmony_ci void main() 8729e5c31af7Sopenharmony_ci { 8730e5c31af7Sopenharmony_ci ${SETUP} 8731e5c31af7Sopenharmony_ci out0 = vec2(1.0, 2.0) * (in0 + vec2(2.0, 1.0)); 8732e5c31af7Sopenharmony_ci ${OUTPUT} 8733e5c31af7Sopenharmony_ci } 8734e5c31af7Sopenharmony_ci "" 8735e5c31af7Sopenharmony_ci end 8736e5c31af7Sopenharmony_ci case uint_to_vec3 8737e5c31af7Sopenharmony_ci version 310 es 8738e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8739e5c31af7Sopenharmony_ci values 8740e5c31af7Sopenharmony_ci { 8741e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 8742e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(3.0, 4.0, 9.0) | vec3(5.0, 8.0, 15.0) | vec3(6.0, 10.0, 18.0) | vec3(9.0, 16.0, 27.0) | vec3(13.0, 24.0, 39.0) ]; 8743e5c31af7Sopenharmony_ci } 8744e5c31af7Sopenharmony_ci 8745e5c31af7Sopenharmony_ci both "" 8746e5c31af7Sopenharmony_ci #version 310 es 8747e5c31af7Sopenharmony_ci precision highp float; 8748e5c31af7Sopenharmony_ci ${DECLARATIONS} 8749e5c31af7Sopenharmony_ci 8750e5c31af7Sopenharmony_ci void main() 8751e5c31af7Sopenharmony_ci { 8752e5c31af7Sopenharmony_ci ${SETUP} 8753e5c31af7Sopenharmony_ci out0 = vec3(1.0, 2.0, 3.0) * (in0 + vec3(2.0, 1.0, 2.0)); 8754e5c31af7Sopenharmony_ci ${OUTPUT} 8755e5c31af7Sopenharmony_ci } 8756e5c31af7Sopenharmony_ci "" 8757e5c31af7Sopenharmony_ci end 8758e5c31af7Sopenharmony_ci case uint_to_vec4 8759e5c31af7Sopenharmony_ci version 310 es 8760e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8761e5c31af7Sopenharmony_ci values 8762e5c31af7Sopenharmony_ci { 8763e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 8764e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(3.0, 4.0, 9.0, 28.0) | vec4(5.0, 8.0, 15.0, 36.0) | vec4(6.0, 10.0, 18.0, 40.0) | vec4(9.0, 16.0, 27.0, 52.0) | vec4(13.0, 24.0, 39.0, 68.0) ]; 8765e5c31af7Sopenharmony_ci } 8766e5c31af7Sopenharmony_ci 8767e5c31af7Sopenharmony_ci both "" 8768e5c31af7Sopenharmony_ci #version 310 es 8769e5c31af7Sopenharmony_ci precision highp float; 8770e5c31af7Sopenharmony_ci ${DECLARATIONS} 8771e5c31af7Sopenharmony_ci 8772e5c31af7Sopenharmony_ci void main() 8773e5c31af7Sopenharmony_ci { 8774e5c31af7Sopenharmony_ci ${SETUP} 8775e5c31af7Sopenharmony_ci out0 = vec4(1.0, 2.0, 3.0, 4.0) * (in0 + vec4(2.0, 1.0, 2.0, 6.0)); 8776e5c31af7Sopenharmony_ci ${OUTPUT} 8777e5c31af7Sopenharmony_ci } 8778e5c31af7Sopenharmony_ci "" 8779e5c31af7Sopenharmony_ci end 8780e5c31af7Sopenharmony_ci case ivec2_to_uvec2 8781e5c31af7Sopenharmony_ci version 310 es 8782e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8783e5c31af7Sopenharmony_ci values 8784e5c31af7Sopenharmony_ci { 8785e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 8786e5c31af7Sopenharmony_ci output uvec2 out0 = [ uvec2(10, 24) | uvec2(12, 21) | uvec2(14, 39) ]; 8787e5c31af7Sopenharmony_ci } 8788e5c31af7Sopenharmony_ci 8789e5c31af7Sopenharmony_ci both "" 8790e5c31af7Sopenharmony_ci #version 310 es 8791e5c31af7Sopenharmony_ci precision highp float; 8792e5c31af7Sopenharmony_ci ${DECLARATIONS} 8793e5c31af7Sopenharmony_ci 8794e5c31af7Sopenharmony_ci void main() 8795e5c31af7Sopenharmony_ci { 8796e5c31af7Sopenharmony_ci ${SETUP} 8797e5c31af7Sopenharmony_ci out0 = ivec2(2, 3) * (in0 + ivec2(4, 6)); 8798e5c31af7Sopenharmony_ci ${OUTPUT} 8799e5c31af7Sopenharmony_ci } 8800e5c31af7Sopenharmony_ci "" 8801e5c31af7Sopenharmony_ci end 8802e5c31af7Sopenharmony_ci case ivec2_to_vec2 8803e5c31af7Sopenharmony_ci version 310 es 8804e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8805e5c31af7Sopenharmony_ci values 8806e5c31af7Sopenharmony_ci { 8807e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 8808e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(3.0, 6.0) | vec2(4.0, 4.0) | vec2(5.0, 16.0) ]; 8809e5c31af7Sopenharmony_ci } 8810e5c31af7Sopenharmony_ci 8811e5c31af7Sopenharmony_ci both "" 8812e5c31af7Sopenharmony_ci #version 310 es 8813e5c31af7Sopenharmony_ci precision highp float; 8814e5c31af7Sopenharmony_ci ${DECLARATIONS} 8815e5c31af7Sopenharmony_ci 8816e5c31af7Sopenharmony_ci void main() 8817e5c31af7Sopenharmony_ci { 8818e5c31af7Sopenharmony_ci ${SETUP} 8819e5c31af7Sopenharmony_ci out0 = vec2(1.0, 2.0) * (in0 + vec2(2.0, 1.0)); 8820e5c31af7Sopenharmony_ci ${OUTPUT} 8821e5c31af7Sopenharmony_ci } 8822e5c31af7Sopenharmony_ci "" 8823e5c31af7Sopenharmony_ci end 8824e5c31af7Sopenharmony_ci case uvec2_to_vec2 8825e5c31af7Sopenharmony_ci version 310 es 8826e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8827e5c31af7Sopenharmony_ci values 8828e5c31af7Sopenharmony_ci { 8829e5c31af7Sopenharmony_ci input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 8830e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(4.0, 8.0) | vec2(6.0, 14.0) | vec2(3.0, 28.0) ]; 8831e5c31af7Sopenharmony_ci } 8832e5c31af7Sopenharmony_ci 8833e5c31af7Sopenharmony_ci both "" 8834e5c31af7Sopenharmony_ci #version 310 es 8835e5c31af7Sopenharmony_ci precision highp float; 8836e5c31af7Sopenharmony_ci ${DECLARATIONS} 8837e5c31af7Sopenharmony_ci 8838e5c31af7Sopenharmony_ci void main() 8839e5c31af7Sopenharmony_ci { 8840e5c31af7Sopenharmony_ci ${SETUP} 8841e5c31af7Sopenharmony_ci out0 = vec2(1.0, 2.0) * (in0 + vec2(2.0, 1.0)); 8842e5c31af7Sopenharmony_ci ${OUTPUT} 8843e5c31af7Sopenharmony_ci } 8844e5c31af7Sopenharmony_ci "" 8845e5c31af7Sopenharmony_ci end 8846e5c31af7Sopenharmony_ci case ivec3_to_uvec3 8847e5c31af7Sopenharmony_ci version 310 es 8848e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8849e5c31af7Sopenharmony_ci values 8850e5c31af7Sopenharmony_ci { 8851e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 8852e5c31af7Sopenharmony_ci output uvec3 out0 = [ uvec3(10, 24, 25) | uvec3(12, 21, 20) | uvec3(14, 39, 20) ]; 8853e5c31af7Sopenharmony_ci } 8854e5c31af7Sopenharmony_ci 8855e5c31af7Sopenharmony_ci both "" 8856e5c31af7Sopenharmony_ci #version 310 es 8857e5c31af7Sopenharmony_ci precision highp float; 8858e5c31af7Sopenharmony_ci ${DECLARATIONS} 8859e5c31af7Sopenharmony_ci 8860e5c31af7Sopenharmony_ci void main() 8861e5c31af7Sopenharmony_ci { 8862e5c31af7Sopenharmony_ci ${SETUP} 8863e5c31af7Sopenharmony_ci out0 = ivec3(2, 3, 5) * (in0 + ivec3(4, 6, 2)); 8864e5c31af7Sopenharmony_ci ${OUTPUT} 8865e5c31af7Sopenharmony_ci } 8866e5c31af7Sopenharmony_ci "" 8867e5c31af7Sopenharmony_ci end 8868e5c31af7Sopenharmony_ci case ivec3_to_vec3 8869e5c31af7Sopenharmony_ci version 310 es 8870e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8871e5c31af7Sopenharmony_ci values 8872e5c31af7Sopenharmony_ci { 8873e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 8874e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(3.0, 6.0, 15.0) | vec3(4.0, 4.0, 12.0) | vec3(5.0, 16.0, 12.0) ]; 8875e5c31af7Sopenharmony_ci } 8876e5c31af7Sopenharmony_ci 8877e5c31af7Sopenharmony_ci both "" 8878e5c31af7Sopenharmony_ci #version 310 es 8879e5c31af7Sopenharmony_ci precision highp float; 8880e5c31af7Sopenharmony_ci ${DECLARATIONS} 8881e5c31af7Sopenharmony_ci 8882e5c31af7Sopenharmony_ci void main() 8883e5c31af7Sopenharmony_ci { 8884e5c31af7Sopenharmony_ci ${SETUP} 8885e5c31af7Sopenharmony_ci out0 = vec3(1.0, 2.0, 3.0) * (in0 + vec3(2.0, 1.0, 2.0)); 8886e5c31af7Sopenharmony_ci ${OUTPUT} 8887e5c31af7Sopenharmony_ci } 8888e5c31af7Sopenharmony_ci "" 8889e5c31af7Sopenharmony_ci end 8890e5c31af7Sopenharmony_ci case uvec3_to_vec3 8891e5c31af7Sopenharmony_ci version 310 es 8892e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8893e5c31af7Sopenharmony_ci values 8894e5c31af7Sopenharmony_ci { 8895e5c31af7Sopenharmony_ci input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 8896e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(4.0, 8.0, 21.0) | vec3(6.0, 14.0, 12.0) | vec3(3.0, 28.0, 27.0) ]; 8897e5c31af7Sopenharmony_ci } 8898e5c31af7Sopenharmony_ci 8899e5c31af7Sopenharmony_ci both "" 8900e5c31af7Sopenharmony_ci #version 310 es 8901e5c31af7Sopenharmony_ci precision highp float; 8902e5c31af7Sopenharmony_ci ${DECLARATIONS} 8903e5c31af7Sopenharmony_ci 8904e5c31af7Sopenharmony_ci void main() 8905e5c31af7Sopenharmony_ci { 8906e5c31af7Sopenharmony_ci ${SETUP} 8907e5c31af7Sopenharmony_ci out0 = vec3(1.0, 2.0, 3.0) * (in0 + vec3(2.0, 1.0, 2.0)); 8908e5c31af7Sopenharmony_ci ${OUTPUT} 8909e5c31af7Sopenharmony_ci } 8910e5c31af7Sopenharmony_ci "" 8911e5c31af7Sopenharmony_ci end 8912e5c31af7Sopenharmony_ci case ivec4_to_uvec4 8913e5c31af7Sopenharmony_ci version 310 es 8914e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8915e5c31af7Sopenharmony_ci values 8916e5c31af7Sopenharmony_ci { 8917e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 8918e5c31af7Sopenharmony_ci output uvec4 out0 = [ uvec4(10, 24, 25, 104) | uvec4(12, 21, 20, 120) | uvec4(14, 39, 20, 112) ]; 8919e5c31af7Sopenharmony_ci } 8920e5c31af7Sopenharmony_ci 8921e5c31af7Sopenharmony_ci both "" 8922e5c31af7Sopenharmony_ci #version 310 es 8923e5c31af7Sopenharmony_ci precision highp float; 8924e5c31af7Sopenharmony_ci ${DECLARATIONS} 8925e5c31af7Sopenharmony_ci 8926e5c31af7Sopenharmony_ci void main() 8927e5c31af7Sopenharmony_ci { 8928e5c31af7Sopenharmony_ci ${SETUP} 8929e5c31af7Sopenharmony_ci out0 = ivec4(2, 3, 5, 8) * (in0 + ivec4(4, 6, 2, 9)); 8930e5c31af7Sopenharmony_ci ${OUTPUT} 8931e5c31af7Sopenharmony_ci } 8932e5c31af7Sopenharmony_ci "" 8933e5c31af7Sopenharmony_ci end 8934e5c31af7Sopenharmony_ci case ivec4_to_vec4 8935e5c31af7Sopenharmony_ci version 310 es 8936e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8937e5c31af7Sopenharmony_ci values 8938e5c31af7Sopenharmony_ci { 8939e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 8940e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(3.0, 6.0, 15.0, 40.0) | vec4(4.0, 4.0, 12.0, 48.0) | vec4(5.0, 16.0, 12.0, 44.0) ]; 8941e5c31af7Sopenharmony_ci } 8942e5c31af7Sopenharmony_ci 8943e5c31af7Sopenharmony_ci both "" 8944e5c31af7Sopenharmony_ci #version 310 es 8945e5c31af7Sopenharmony_ci precision highp float; 8946e5c31af7Sopenharmony_ci ${DECLARATIONS} 8947e5c31af7Sopenharmony_ci 8948e5c31af7Sopenharmony_ci void main() 8949e5c31af7Sopenharmony_ci { 8950e5c31af7Sopenharmony_ci ${SETUP} 8951e5c31af7Sopenharmony_ci out0 = vec4(1.0, 2.0, 3.0, 4.0) * (in0 + vec4(2.0, 1.0, 2.0, 6.0)); 8952e5c31af7Sopenharmony_ci ${OUTPUT} 8953e5c31af7Sopenharmony_ci } 8954e5c31af7Sopenharmony_ci "" 8955e5c31af7Sopenharmony_ci end 8956e5c31af7Sopenharmony_ci case uvec4_to_vec4 8957e5c31af7Sopenharmony_ci version 310 es 8958e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8959e5c31af7Sopenharmony_ci values 8960e5c31af7Sopenharmony_ci { 8961e5c31af7Sopenharmony_ci input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 8962e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(4.0, 8.0, 21.0, 56.0) | vec4(6.0, 14.0, 12.0, 60.0) | vec4(3.0, 28.0, 27.0, 40.0) ]; 8963e5c31af7Sopenharmony_ci } 8964e5c31af7Sopenharmony_ci 8965e5c31af7Sopenharmony_ci both "" 8966e5c31af7Sopenharmony_ci #version 310 es 8967e5c31af7Sopenharmony_ci precision highp float; 8968e5c31af7Sopenharmony_ci ${DECLARATIONS} 8969e5c31af7Sopenharmony_ci 8970e5c31af7Sopenharmony_ci void main() 8971e5c31af7Sopenharmony_ci { 8972e5c31af7Sopenharmony_ci ${SETUP} 8973e5c31af7Sopenharmony_ci out0 = vec4(1.0, 2.0, 3.0, 4.0) * (in0 + vec4(2.0, 1.0, 2.0, 6.0)); 8974e5c31af7Sopenharmony_ci ${OUTPUT} 8975e5c31af7Sopenharmony_ci } 8976e5c31af7Sopenharmony_ci "" 8977e5c31af7Sopenharmony_ci end 8978e5c31af7Sopenharmony_ci 8979e5c31af7Sopenharmony_ci end # input_in_parens 8980e5c31af7Sopenharmony_ci group input_outside_parens "Input variable outside parenthesized expression" 8981e5c31af7Sopenharmony_ci 8982e5c31af7Sopenharmony_ci case int_to_float 8983e5c31af7Sopenharmony_ci version 310 es 8984e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8985e5c31af7Sopenharmony_ci values 8986e5c31af7Sopenharmony_ci { 8987e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 8988e5c31af7Sopenharmony_ci output float out0 = [ 6.0 | 3.0 | 3.0 | 9.0 | 15.0 ]; 8989e5c31af7Sopenharmony_ci } 8990e5c31af7Sopenharmony_ci 8991e5c31af7Sopenharmony_ci both "" 8992e5c31af7Sopenharmony_ci #version 310 es 8993e5c31af7Sopenharmony_ci precision highp float; 8994e5c31af7Sopenharmony_ci ${DECLARATIONS} 8995e5c31af7Sopenharmony_ci 8996e5c31af7Sopenharmony_ci void main() 8997e5c31af7Sopenharmony_ci { 8998e5c31af7Sopenharmony_ci ${SETUP} 8999e5c31af7Sopenharmony_ci out0 = in0 * (2.0 + 1.0); 9000e5c31af7Sopenharmony_ci ${OUTPUT} 9001e5c31af7Sopenharmony_ci } 9002e5c31af7Sopenharmony_ci "" 9003e5c31af7Sopenharmony_ci end 9004e5c31af7Sopenharmony_ci case int_to_uint 9005e5c31af7Sopenharmony_ci version 310 es 9006e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9007e5c31af7Sopenharmony_ci values 9008e5c31af7Sopenharmony_ci { 9009e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 9010e5c31af7Sopenharmony_ci output uint out0 = [ 8 | 4 | 4 | 12 | 20 ]; 9011e5c31af7Sopenharmony_ci } 9012e5c31af7Sopenharmony_ci 9013e5c31af7Sopenharmony_ci both "" 9014e5c31af7Sopenharmony_ci #version 310 es 9015e5c31af7Sopenharmony_ci precision highp float; 9016e5c31af7Sopenharmony_ci ${DECLARATIONS} 9017e5c31af7Sopenharmony_ci 9018e5c31af7Sopenharmony_ci void main() 9019e5c31af7Sopenharmony_ci { 9020e5c31af7Sopenharmony_ci ${SETUP} 9021e5c31af7Sopenharmony_ci out0 = in0 * (1 + 3); 9022e5c31af7Sopenharmony_ci ${OUTPUT} 9023e5c31af7Sopenharmony_ci } 9024e5c31af7Sopenharmony_ci "" 9025e5c31af7Sopenharmony_ci end 9026e5c31af7Sopenharmony_ci case int_to_vec2 9027e5c31af7Sopenharmony_ci version 310 es 9028e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9029e5c31af7Sopenharmony_ci values 9030e5c31af7Sopenharmony_ci { 9031e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 9032e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(6.0, 6.0) | vec2(3.0, 3.0) | vec2(3.0, 3.0) | vec2(9.0, 9.0) | vec2(15.0, 15.0) ]; 9033e5c31af7Sopenharmony_ci } 9034e5c31af7Sopenharmony_ci 9035e5c31af7Sopenharmony_ci both "" 9036e5c31af7Sopenharmony_ci #version 310 es 9037e5c31af7Sopenharmony_ci precision highp float; 9038e5c31af7Sopenharmony_ci ${DECLARATIONS} 9039e5c31af7Sopenharmony_ci 9040e5c31af7Sopenharmony_ci void main() 9041e5c31af7Sopenharmony_ci { 9042e5c31af7Sopenharmony_ci ${SETUP} 9043e5c31af7Sopenharmony_ci out0 = in0 * (vec2(1.0, 2.0) + vec2(2.0, 1.0)); 9044e5c31af7Sopenharmony_ci ${OUTPUT} 9045e5c31af7Sopenharmony_ci } 9046e5c31af7Sopenharmony_ci "" 9047e5c31af7Sopenharmony_ci end 9048e5c31af7Sopenharmony_ci case int_to_vec3 9049e5c31af7Sopenharmony_ci version 310 es 9050e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9051e5c31af7Sopenharmony_ci values 9052e5c31af7Sopenharmony_ci { 9053e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 9054e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(6.0, 6.0, 10.0) | vec3(3.0, 3.0, 5.0) | vec3(3.0, 3.0, 5.0) | vec3(9.0, 9.0, 15.0) | vec3(15.0, 15.0, 25.0) ]; 9055e5c31af7Sopenharmony_ci } 9056e5c31af7Sopenharmony_ci 9057e5c31af7Sopenharmony_ci both "" 9058e5c31af7Sopenharmony_ci #version 310 es 9059e5c31af7Sopenharmony_ci precision highp float; 9060e5c31af7Sopenharmony_ci ${DECLARATIONS} 9061e5c31af7Sopenharmony_ci 9062e5c31af7Sopenharmony_ci void main() 9063e5c31af7Sopenharmony_ci { 9064e5c31af7Sopenharmony_ci ${SETUP} 9065e5c31af7Sopenharmony_ci out0 = in0 * (vec3(1.0, 2.0, 3.0) + vec3(2.0, 1.0, 2.0)); 9066e5c31af7Sopenharmony_ci ${OUTPUT} 9067e5c31af7Sopenharmony_ci } 9068e5c31af7Sopenharmony_ci "" 9069e5c31af7Sopenharmony_ci end 9070e5c31af7Sopenharmony_ci case int_to_vec4 9071e5c31af7Sopenharmony_ci version 310 es 9072e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9073e5c31af7Sopenharmony_ci values 9074e5c31af7Sopenharmony_ci { 9075e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 9076e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(6.0, 6.0, 10.0, 20.0) | vec4(3.0, 3.0, 5.0, 10.0) | vec4(3.0, 3.0, 5.0, 10.0) | vec4(9.0, 9.0, 15.0, 30.0) | vec4(15.0, 15.0, 25.0, 50.0) ]; 9077e5c31af7Sopenharmony_ci } 9078e5c31af7Sopenharmony_ci 9079e5c31af7Sopenharmony_ci both "" 9080e5c31af7Sopenharmony_ci #version 310 es 9081e5c31af7Sopenharmony_ci precision highp float; 9082e5c31af7Sopenharmony_ci ${DECLARATIONS} 9083e5c31af7Sopenharmony_ci 9084e5c31af7Sopenharmony_ci void main() 9085e5c31af7Sopenharmony_ci { 9086e5c31af7Sopenharmony_ci ${SETUP} 9087e5c31af7Sopenharmony_ci out0 = in0 * (vec4(1.0, 2.0, 3.0, 4.0) + vec4(2.0, 1.0, 2.0, 6.0)); 9088e5c31af7Sopenharmony_ci ${OUTPUT} 9089e5c31af7Sopenharmony_ci } 9090e5c31af7Sopenharmony_ci "" 9091e5c31af7Sopenharmony_ci end 9092e5c31af7Sopenharmony_ci case int_to_uvec2 9093e5c31af7Sopenharmony_ci version 310 es 9094e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9095e5c31af7Sopenharmony_ci values 9096e5c31af7Sopenharmony_ci { 9097e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 9098e5c31af7Sopenharmony_ci output uvec2 out0 = [ uvec2(12, 18) | uvec2(6, 9) | uvec2(6, 9) | uvec2(18, 27) | uvec2(30, 45) ]; 9099e5c31af7Sopenharmony_ci } 9100e5c31af7Sopenharmony_ci 9101e5c31af7Sopenharmony_ci both "" 9102e5c31af7Sopenharmony_ci #version 310 es 9103e5c31af7Sopenharmony_ci precision highp float; 9104e5c31af7Sopenharmony_ci ${DECLARATIONS} 9105e5c31af7Sopenharmony_ci 9106e5c31af7Sopenharmony_ci void main() 9107e5c31af7Sopenharmony_ci { 9108e5c31af7Sopenharmony_ci ${SETUP} 9109e5c31af7Sopenharmony_ci out0 = in0 * (ivec2(2, 3) + ivec2(4, 6)); 9110e5c31af7Sopenharmony_ci ${OUTPUT} 9111e5c31af7Sopenharmony_ci } 9112e5c31af7Sopenharmony_ci "" 9113e5c31af7Sopenharmony_ci end 9114e5c31af7Sopenharmony_ci case int_to_uvec3 9115e5c31af7Sopenharmony_ci version 310 es 9116e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9117e5c31af7Sopenharmony_ci values 9118e5c31af7Sopenharmony_ci { 9119e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 9120e5c31af7Sopenharmony_ci output uvec3 out0 = [ uvec3(12, 18, 14) | uvec3(6, 9, 7) | uvec3(6, 9, 7) | uvec3(18, 27, 21) | uvec3(30, 45, 35) ]; 9121e5c31af7Sopenharmony_ci } 9122e5c31af7Sopenharmony_ci 9123e5c31af7Sopenharmony_ci both "" 9124e5c31af7Sopenharmony_ci #version 310 es 9125e5c31af7Sopenharmony_ci precision highp float; 9126e5c31af7Sopenharmony_ci ${DECLARATIONS} 9127e5c31af7Sopenharmony_ci 9128e5c31af7Sopenharmony_ci void main() 9129e5c31af7Sopenharmony_ci { 9130e5c31af7Sopenharmony_ci ${SETUP} 9131e5c31af7Sopenharmony_ci out0 = in0 * (ivec3(2, 3, 5) + ivec3(4, 6, 2)); 9132e5c31af7Sopenharmony_ci ${OUTPUT} 9133e5c31af7Sopenharmony_ci } 9134e5c31af7Sopenharmony_ci "" 9135e5c31af7Sopenharmony_ci end 9136e5c31af7Sopenharmony_ci case int_to_uvec4 9137e5c31af7Sopenharmony_ci version 310 es 9138e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9139e5c31af7Sopenharmony_ci values 9140e5c31af7Sopenharmony_ci { 9141e5c31af7Sopenharmony_ci input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 9142e5c31af7Sopenharmony_ci output uvec4 out0 = [ uvec4(12, 18, 14, 34) | uvec4(6, 9, 7, 17) | uvec4(6, 9, 7, 17) | uvec4(18, 27, 21, 51) | uvec4(30, 45, 35, 85) ]; 9143e5c31af7Sopenharmony_ci } 9144e5c31af7Sopenharmony_ci 9145e5c31af7Sopenharmony_ci both "" 9146e5c31af7Sopenharmony_ci #version 310 es 9147e5c31af7Sopenharmony_ci precision highp float; 9148e5c31af7Sopenharmony_ci ${DECLARATIONS} 9149e5c31af7Sopenharmony_ci 9150e5c31af7Sopenharmony_ci void main() 9151e5c31af7Sopenharmony_ci { 9152e5c31af7Sopenharmony_ci ${SETUP} 9153e5c31af7Sopenharmony_ci out0 = in0 * (ivec4(2, 3, 5, 8) + ivec4(4, 6, 2, 9)); 9154e5c31af7Sopenharmony_ci ${OUTPUT} 9155e5c31af7Sopenharmony_ci } 9156e5c31af7Sopenharmony_ci "" 9157e5c31af7Sopenharmony_ci end 9158e5c31af7Sopenharmony_ci case uint_to_float 9159e5c31af7Sopenharmony_ci version 310 es 9160e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9161e5c31af7Sopenharmony_ci values 9162e5c31af7Sopenharmony_ci { 9163e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 9164e5c31af7Sopenharmony_ci output float out0 = [ 3.0 | 9.0 | 12.0 | 21.0 | 33.0 ]; 9165e5c31af7Sopenharmony_ci } 9166e5c31af7Sopenharmony_ci 9167e5c31af7Sopenharmony_ci both "" 9168e5c31af7Sopenharmony_ci #version 310 es 9169e5c31af7Sopenharmony_ci precision highp float; 9170e5c31af7Sopenharmony_ci ${DECLARATIONS} 9171e5c31af7Sopenharmony_ci 9172e5c31af7Sopenharmony_ci void main() 9173e5c31af7Sopenharmony_ci { 9174e5c31af7Sopenharmony_ci ${SETUP} 9175e5c31af7Sopenharmony_ci out0 = in0 * (2.0 + 1.0); 9176e5c31af7Sopenharmony_ci ${OUTPUT} 9177e5c31af7Sopenharmony_ci } 9178e5c31af7Sopenharmony_ci "" 9179e5c31af7Sopenharmony_ci end 9180e5c31af7Sopenharmony_ci case uint_to_vec2 9181e5c31af7Sopenharmony_ci version 310 es 9182e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9183e5c31af7Sopenharmony_ci values 9184e5c31af7Sopenharmony_ci { 9185e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 9186e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(3.0, 3.0) | vec2(9.0, 9.0) | vec2(12.0, 12.0) | vec2(21.0, 21.0) | vec2(33.0, 33.0) ]; 9187e5c31af7Sopenharmony_ci } 9188e5c31af7Sopenharmony_ci 9189e5c31af7Sopenharmony_ci both "" 9190e5c31af7Sopenharmony_ci #version 310 es 9191e5c31af7Sopenharmony_ci precision highp float; 9192e5c31af7Sopenharmony_ci ${DECLARATIONS} 9193e5c31af7Sopenharmony_ci 9194e5c31af7Sopenharmony_ci void main() 9195e5c31af7Sopenharmony_ci { 9196e5c31af7Sopenharmony_ci ${SETUP} 9197e5c31af7Sopenharmony_ci out0 = in0 * (vec2(1.0, 2.0) + vec2(2.0, 1.0)); 9198e5c31af7Sopenharmony_ci ${OUTPUT} 9199e5c31af7Sopenharmony_ci } 9200e5c31af7Sopenharmony_ci "" 9201e5c31af7Sopenharmony_ci end 9202e5c31af7Sopenharmony_ci case uint_to_vec3 9203e5c31af7Sopenharmony_ci version 310 es 9204e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9205e5c31af7Sopenharmony_ci values 9206e5c31af7Sopenharmony_ci { 9207e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 9208e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(3.0, 3.0, 5.0) | vec3(9.0, 9.0, 15.0) | vec3(12.0, 12.0, 20.0) | vec3(21.0, 21.0, 35.0) | vec3(33.0, 33.0, 55.0) ]; 9209e5c31af7Sopenharmony_ci } 9210e5c31af7Sopenharmony_ci 9211e5c31af7Sopenharmony_ci both "" 9212e5c31af7Sopenharmony_ci #version 310 es 9213e5c31af7Sopenharmony_ci precision highp float; 9214e5c31af7Sopenharmony_ci ${DECLARATIONS} 9215e5c31af7Sopenharmony_ci 9216e5c31af7Sopenharmony_ci void main() 9217e5c31af7Sopenharmony_ci { 9218e5c31af7Sopenharmony_ci ${SETUP} 9219e5c31af7Sopenharmony_ci out0 = in0 * (vec3(1.0, 2.0, 3.0) + vec3(2.0, 1.0, 2.0)); 9220e5c31af7Sopenharmony_ci ${OUTPUT} 9221e5c31af7Sopenharmony_ci } 9222e5c31af7Sopenharmony_ci "" 9223e5c31af7Sopenharmony_ci end 9224e5c31af7Sopenharmony_ci case uint_to_vec4 9225e5c31af7Sopenharmony_ci version 310 es 9226e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9227e5c31af7Sopenharmony_ci values 9228e5c31af7Sopenharmony_ci { 9229e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 9230e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(3.0, 3.0, 5.0, 10.0) | vec4(9.0, 9.0, 15.0, 30.0) | vec4(12.0, 12.0, 20.0, 40.0) | vec4(21.0, 21.0, 35.0, 70.0) | vec4(33.0, 33.0, 55.0, 110.0) ]; 9231e5c31af7Sopenharmony_ci } 9232e5c31af7Sopenharmony_ci 9233e5c31af7Sopenharmony_ci both "" 9234e5c31af7Sopenharmony_ci #version 310 es 9235e5c31af7Sopenharmony_ci precision highp float; 9236e5c31af7Sopenharmony_ci ${DECLARATIONS} 9237e5c31af7Sopenharmony_ci 9238e5c31af7Sopenharmony_ci void main() 9239e5c31af7Sopenharmony_ci { 9240e5c31af7Sopenharmony_ci ${SETUP} 9241e5c31af7Sopenharmony_ci out0 = in0 * (vec4(1.0, 2.0, 3.0, 4.0) + vec4(2.0, 1.0, 2.0, 6.0)); 9242e5c31af7Sopenharmony_ci ${OUTPUT} 9243e5c31af7Sopenharmony_ci } 9244e5c31af7Sopenharmony_ci "" 9245e5c31af7Sopenharmony_ci end 9246e5c31af7Sopenharmony_ci case ivec2_to_uvec2 9247e5c31af7Sopenharmony_ci version 310 es 9248e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9249e5c31af7Sopenharmony_ci values 9250e5c31af7Sopenharmony_ci { 9251e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 9252e5c31af7Sopenharmony_ci output uvec2 out0 = [ uvec2(6, 18) | uvec2(12, 9) | uvec2(18, 63) ]; 9253e5c31af7Sopenharmony_ci } 9254e5c31af7Sopenharmony_ci 9255e5c31af7Sopenharmony_ci both "" 9256e5c31af7Sopenharmony_ci #version 310 es 9257e5c31af7Sopenharmony_ci precision highp float; 9258e5c31af7Sopenharmony_ci ${DECLARATIONS} 9259e5c31af7Sopenharmony_ci 9260e5c31af7Sopenharmony_ci void main() 9261e5c31af7Sopenharmony_ci { 9262e5c31af7Sopenharmony_ci ${SETUP} 9263e5c31af7Sopenharmony_ci out0 = in0 * (ivec2(2, 3) + ivec2(4, 6)); 9264e5c31af7Sopenharmony_ci ${OUTPUT} 9265e5c31af7Sopenharmony_ci } 9266e5c31af7Sopenharmony_ci "" 9267e5c31af7Sopenharmony_ci end 9268e5c31af7Sopenharmony_ci case ivec2_to_vec2 9269e5c31af7Sopenharmony_ci version 310 es 9270e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9271e5c31af7Sopenharmony_ci values 9272e5c31af7Sopenharmony_ci { 9273e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 9274e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(3.0, 6.0) | vec2(6.0, 3.0) | vec2(9.0, 21.0) ]; 9275e5c31af7Sopenharmony_ci } 9276e5c31af7Sopenharmony_ci 9277e5c31af7Sopenharmony_ci both "" 9278e5c31af7Sopenharmony_ci #version 310 es 9279e5c31af7Sopenharmony_ci precision highp float; 9280e5c31af7Sopenharmony_ci ${DECLARATIONS} 9281e5c31af7Sopenharmony_ci 9282e5c31af7Sopenharmony_ci void main() 9283e5c31af7Sopenharmony_ci { 9284e5c31af7Sopenharmony_ci ${SETUP} 9285e5c31af7Sopenharmony_ci out0 = in0 * (vec2(1.0, 2.0) + vec2(2.0, 1.0)); 9286e5c31af7Sopenharmony_ci ${OUTPUT} 9287e5c31af7Sopenharmony_ci } 9288e5c31af7Sopenharmony_ci "" 9289e5c31af7Sopenharmony_ci end 9290e5c31af7Sopenharmony_ci case uvec2_to_vec2 9291e5c31af7Sopenharmony_ci version 310 es 9292e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9293e5c31af7Sopenharmony_ci values 9294e5c31af7Sopenharmony_ci { 9295e5c31af7Sopenharmony_ci input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 9296e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(6.0, 9.0) | vec2(12.0, 18.0) | vec2(3.0, 39.0) ]; 9297e5c31af7Sopenharmony_ci } 9298e5c31af7Sopenharmony_ci 9299e5c31af7Sopenharmony_ci both "" 9300e5c31af7Sopenharmony_ci #version 310 es 9301e5c31af7Sopenharmony_ci precision highp float; 9302e5c31af7Sopenharmony_ci ${DECLARATIONS} 9303e5c31af7Sopenharmony_ci 9304e5c31af7Sopenharmony_ci void main() 9305e5c31af7Sopenharmony_ci { 9306e5c31af7Sopenharmony_ci ${SETUP} 9307e5c31af7Sopenharmony_ci out0 = in0 * (vec2(1.0, 2.0) + vec2(2.0, 1.0)); 9308e5c31af7Sopenharmony_ci ${OUTPUT} 9309e5c31af7Sopenharmony_ci } 9310e5c31af7Sopenharmony_ci "" 9311e5c31af7Sopenharmony_ci end 9312e5c31af7Sopenharmony_ci case ivec3_to_uvec3 9313e5c31af7Sopenharmony_ci version 310 es 9314e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9315e5c31af7Sopenharmony_ci values 9316e5c31af7Sopenharmony_ci { 9317e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 9318e5c31af7Sopenharmony_ci output uvec3 out0 = [ uvec3(6, 18, 21) | uvec3(12, 9, 14) | uvec3(18, 63, 14) ]; 9319e5c31af7Sopenharmony_ci } 9320e5c31af7Sopenharmony_ci 9321e5c31af7Sopenharmony_ci both "" 9322e5c31af7Sopenharmony_ci #version 310 es 9323e5c31af7Sopenharmony_ci precision highp float; 9324e5c31af7Sopenharmony_ci ${DECLARATIONS} 9325e5c31af7Sopenharmony_ci 9326e5c31af7Sopenharmony_ci void main() 9327e5c31af7Sopenharmony_ci { 9328e5c31af7Sopenharmony_ci ${SETUP} 9329e5c31af7Sopenharmony_ci out0 = in0 * (ivec3(2, 3, 5) + ivec3(4, 6, 2)); 9330e5c31af7Sopenharmony_ci ${OUTPUT} 9331e5c31af7Sopenharmony_ci } 9332e5c31af7Sopenharmony_ci "" 9333e5c31af7Sopenharmony_ci end 9334e5c31af7Sopenharmony_ci case ivec3_to_vec3 9335e5c31af7Sopenharmony_ci version 310 es 9336e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9337e5c31af7Sopenharmony_ci values 9338e5c31af7Sopenharmony_ci { 9339e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 9340e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(3.0, 6.0, 15.0) | vec3(6.0, 3.0, 10.0) | vec3(9.0, 21.0, 10.0) ]; 9341e5c31af7Sopenharmony_ci } 9342e5c31af7Sopenharmony_ci 9343e5c31af7Sopenharmony_ci both "" 9344e5c31af7Sopenharmony_ci #version 310 es 9345e5c31af7Sopenharmony_ci precision highp float; 9346e5c31af7Sopenharmony_ci ${DECLARATIONS} 9347e5c31af7Sopenharmony_ci 9348e5c31af7Sopenharmony_ci void main() 9349e5c31af7Sopenharmony_ci { 9350e5c31af7Sopenharmony_ci ${SETUP} 9351e5c31af7Sopenharmony_ci out0 = in0 * (vec3(1.0, 2.0, 3.0) + vec3(2.0, 1.0, 2.0)); 9352e5c31af7Sopenharmony_ci ${OUTPUT} 9353e5c31af7Sopenharmony_ci } 9354e5c31af7Sopenharmony_ci "" 9355e5c31af7Sopenharmony_ci end 9356e5c31af7Sopenharmony_ci case uvec3_to_vec3 9357e5c31af7Sopenharmony_ci version 310 es 9358e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9359e5c31af7Sopenharmony_ci values 9360e5c31af7Sopenharmony_ci { 9361e5c31af7Sopenharmony_ci input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 9362e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(6.0, 9.0, 25.0) | vec3(12.0, 18.0, 10.0) | vec3(3.0, 39.0, 35.0) ]; 9363e5c31af7Sopenharmony_ci } 9364e5c31af7Sopenharmony_ci 9365e5c31af7Sopenharmony_ci both "" 9366e5c31af7Sopenharmony_ci #version 310 es 9367e5c31af7Sopenharmony_ci precision highp float; 9368e5c31af7Sopenharmony_ci ${DECLARATIONS} 9369e5c31af7Sopenharmony_ci 9370e5c31af7Sopenharmony_ci void main() 9371e5c31af7Sopenharmony_ci { 9372e5c31af7Sopenharmony_ci ${SETUP} 9373e5c31af7Sopenharmony_ci out0 = in0 * (vec3(1.0, 2.0, 3.0) + vec3(2.0, 1.0, 2.0)); 9374e5c31af7Sopenharmony_ci ${OUTPUT} 9375e5c31af7Sopenharmony_ci } 9376e5c31af7Sopenharmony_ci "" 9377e5c31af7Sopenharmony_ci end 9378e5c31af7Sopenharmony_ci case ivec4_to_uvec4 9379e5c31af7Sopenharmony_ci version 310 es 9380e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9381e5c31af7Sopenharmony_ci values 9382e5c31af7Sopenharmony_ci { 9383e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 9384e5c31af7Sopenharmony_ci output uvec4 out0 = [ uvec4(6, 18, 21, 68) | uvec4(12, 9, 14, 102) | uvec4(18, 63, 14, 85) ]; 9385e5c31af7Sopenharmony_ci } 9386e5c31af7Sopenharmony_ci 9387e5c31af7Sopenharmony_ci both "" 9388e5c31af7Sopenharmony_ci #version 310 es 9389e5c31af7Sopenharmony_ci precision highp float; 9390e5c31af7Sopenharmony_ci ${DECLARATIONS} 9391e5c31af7Sopenharmony_ci 9392e5c31af7Sopenharmony_ci void main() 9393e5c31af7Sopenharmony_ci { 9394e5c31af7Sopenharmony_ci ${SETUP} 9395e5c31af7Sopenharmony_ci out0 = in0 * (ivec4(2, 3, 5, 8) + ivec4(4, 6, 2, 9)); 9396e5c31af7Sopenharmony_ci ${OUTPUT} 9397e5c31af7Sopenharmony_ci } 9398e5c31af7Sopenharmony_ci "" 9399e5c31af7Sopenharmony_ci end 9400e5c31af7Sopenharmony_ci case ivec4_to_vec4 9401e5c31af7Sopenharmony_ci version 310 es 9402e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9403e5c31af7Sopenharmony_ci values 9404e5c31af7Sopenharmony_ci { 9405e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 9406e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(3.0, 6.0, 15.0, 40.0) | vec4(6.0, 3.0, 10.0, 60.0) | vec4(9.0, 21.0, 10.0, 50.0) ]; 9407e5c31af7Sopenharmony_ci } 9408e5c31af7Sopenharmony_ci 9409e5c31af7Sopenharmony_ci both "" 9410e5c31af7Sopenharmony_ci #version 310 es 9411e5c31af7Sopenharmony_ci precision highp float; 9412e5c31af7Sopenharmony_ci ${DECLARATIONS} 9413e5c31af7Sopenharmony_ci 9414e5c31af7Sopenharmony_ci void main() 9415e5c31af7Sopenharmony_ci { 9416e5c31af7Sopenharmony_ci ${SETUP} 9417e5c31af7Sopenharmony_ci out0 = in0 * (vec4(1.0, 2.0, 3.0, 4.0) + vec4(2.0, 1.0, 2.0, 6.0)); 9418e5c31af7Sopenharmony_ci ${OUTPUT} 9419e5c31af7Sopenharmony_ci } 9420e5c31af7Sopenharmony_ci "" 9421e5c31af7Sopenharmony_ci end 9422e5c31af7Sopenharmony_ci case uvec4_to_vec4 9423e5c31af7Sopenharmony_ci version 310 es 9424e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9425e5c31af7Sopenharmony_ci values 9426e5c31af7Sopenharmony_ci { 9427e5c31af7Sopenharmony_ci input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 9428e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(6.0, 9.0, 25.0, 80.0) | vec4(12.0, 18.0, 10.0, 90.0) | vec4(3.0, 39.0, 35.0, 40.0) ]; 9429e5c31af7Sopenharmony_ci } 9430e5c31af7Sopenharmony_ci 9431e5c31af7Sopenharmony_ci both "" 9432e5c31af7Sopenharmony_ci #version 310 es 9433e5c31af7Sopenharmony_ci precision highp float; 9434e5c31af7Sopenharmony_ci ${DECLARATIONS} 9435e5c31af7Sopenharmony_ci 9436e5c31af7Sopenharmony_ci void main() 9437e5c31af7Sopenharmony_ci { 9438e5c31af7Sopenharmony_ci ${SETUP} 9439e5c31af7Sopenharmony_ci out0 = in0 * (vec4(1.0, 2.0, 3.0, 4.0) + vec4(2.0, 1.0, 2.0, 6.0)); 9440e5c31af7Sopenharmony_ci ${OUTPUT} 9441e5c31af7Sopenharmony_ci } 9442e5c31af7Sopenharmony_ci "" 9443e5c31af7Sopenharmony_ci end 9444e5c31af7Sopenharmony_ci 9445e5c31af7Sopenharmony_ci end # input_outside_parens 9446e5c31af7Sopenharmony_ci 9447e5c31af7Sopenharmony_ci end # literal_before_paren_expr 9448e5c31af7Sopenharmony_ci 9449e5c31af7Sopenharmony_ciend # parenthesized_expressions 9450e5c31af7Sopenharmony_cigroup invalid "Invalid conversions" 9451e5c31af7Sopenharmony_ci 9452e5c31af7Sopenharmony_ci group variables "Single variables" 9453e5c31af7Sopenharmony_ci 9454e5c31af7Sopenharmony_ci case uint_to_int 9455e5c31af7Sopenharmony_ci expect compile_fail 9456e5c31af7Sopenharmony_ci version 310 es 9457e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9458e5c31af7Sopenharmony_ci values 9459e5c31af7Sopenharmony_ci { 9460e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 9461e5c31af7Sopenharmony_ci output int out0 = [ 2 | 2 | 2 | 2 | 2 ]; 9462e5c31af7Sopenharmony_ci } 9463e5c31af7Sopenharmony_ci 9464e5c31af7Sopenharmony_ci both "" 9465e5c31af7Sopenharmony_ci #version 310 es 9466e5c31af7Sopenharmony_ci precision highp float; 9467e5c31af7Sopenharmony_ci ${DECLARATIONS} 9468e5c31af7Sopenharmony_ci 9469e5c31af7Sopenharmony_ci void main() 9470e5c31af7Sopenharmony_ci { 9471e5c31af7Sopenharmony_ci ${SETUP} 9472e5c31af7Sopenharmony_ci out0 = in0 + 2; 9473e5c31af7Sopenharmony_ci ${OUTPUT} 9474e5c31af7Sopenharmony_ci } 9475e5c31af7Sopenharmony_ci "" 9476e5c31af7Sopenharmony_ci end 9477e5c31af7Sopenharmony_ci case uint_to_ivec2 9478e5c31af7Sopenharmony_ci expect compile_fail 9479e5c31af7Sopenharmony_ci version 310 es 9480e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9481e5c31af7Sopenharmony_ci values 9482e5c31af7Sopenharmony_ci { 9483e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 9484e5c31af7Sopenharmony_ci output ivec2 out0 = [ ivec2(1, 2) | ivec2(1, 2) | ivec2(1, 2) | ivec2(1, 2) | ivec2(1, 2) ]; 9485e5c31af7Sopenharmony_ci } 9486e5c31af7Sopenharmony_ci 9487e5c31af7Sopenharmony_ci both "" 9488e5c31af7Sopenharmony_ci #version 310 es 9489e5c31af7Sopenharmony_ci precision highp float; 9490e5c31af7Sopenharmony_ci ${DECLARATIONS} 9491e5c31af7Sopenharmony_ci 9492e5c31af7Sopenharmony_ci void main() 9493e5c31af7Sopenharmony_ci { 9494e5c31af7Sopenharmony_ci ${SETUP} 9495e5c31af7Sopenharmony_ci out0 = in0 + ivec2(1, 2); 9496e5c31af7Sopenharmony_ci ${OUTPUT} 9497e5c31af7Sopenharmony_ci } 9498e5c31af7Sopenharmony_ci "" 9499e5c31af7Sopenharmony_ci end 9500e5c31af7Sopenharmony_ci case uint_to_ivec3 9501e5c31af7Sopenharmony_ci expect compile_fail 9502e5c31af7Sopenharmony_ci version 310 es 9503e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9504e5c31af7Sopenharmony_ci values 9505e5c31af7Sopenharmony_ci { 9506e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 9507e5c31af7Sopenharmony_ci output ivec3 out0 = [ ivec3(1, 2, 3) | ivec3(1, 2, 3) | ivec3(1, 2, 3) | ivec3(1, 2, 3) | ivec3(1, 2, 3) ]; 9508e5c31af7Sopenharmony_ci } 9509e5c31af7Sopenharmony_ci 9510e5c31af7Sopenharmony_ci both "" 9511e5c31af7Sopenharmony_ci #version 310 es 9512e5c31af7Sopenharmony_ci precision highp float; 9513e5c31af7Sopenharmony_ci ${DECLARATIONS} 9514e5c31af7Sopenharmony_ci 9515e5c31af7Sopenharmony_ci void main() 9516e5c31af7Sopenharmony_ci { 9517e5c31af7Sopenharmony_ci ${SETUP} 9518e5c31af7Sopenharmony_ci out0 = in0 + ivec3(1, 2, 3); 9519e5c31af7Sopenharmony_ci ${OUTPUT} 9520e5c31af7Sopenharmony_ci } 9521e5c31af7Sopenharmony_ci "" 9522e5c31af7Sopenharmony_ci end 9523e5c31af7Sopenharmony_ci case uint_to_ivec4 9524e5c31af7Sopenharmony_ci expect compile_fail 9525e5c31af7Sopenharmony_ci version 310 es 9526e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9527e5c31af7Sopenharmony_ci values 9528e5c31af7Sopenharmony_ci { 9529e5c31af7Sopenharmony_ci input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 9530e5c31af7Sopenharmony_ci output ivec4 out0 = [ ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) ]; 9531e5c31af7Sopenharmony_ci } 9532e5c31af7Sopenharmony_ci 9533e5c31af7Sopenharmony_ci both "" 9534e5c31af7Sopenharmony_ci #version 310 es 9535e5c31af7Sopenharmony_ci precision highp float; 9536e5c31af7Sopenharmony_ci ${DECLARATIONS} 9537e5c31af7Sopenharmony_ci 9538e5c31af7Sopenharmony_ci void main() 9539e5c31af7Sopenharmony_ci { 9540e5c31af7Sopenharmony_ci ${SETUP} 9541e5c31af7Sopenharmony_ci out0 = in0 + ivec4(1, 2, 3, 4); 9542e5c31af7Sopenharmony_ci ${OUTPUT} 9543e5c31af7Sopenharmony_ci } 9544e5c31af7Sopenharmony_ci "" 9545e5c31af7Sopenharmony_ci end 9546e5c31af7Sopenharmony_ci case ivec2_to_uint 9547e5c31af7Sopenharmony_ci expect compile_fail 9548e5c31af7Sopenharmony_ci version 310 es 9549e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9550e5c31af7Sopenharmony_ci values 9551e5c31af7Sopenharmony_ci { 9552e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 9553e5c31af7Sopenharmony_ci output uint out0 = [ 1 | 1 | 1 ]; 9554e5c31af7Sopenharmony_ci } 9555e5c31af7Sopenharmony_ci 9556e5c31af7Sopenharmony_ci both "" 9557e5c31af7Sopenharmony_ci #version 310 es 9558e5c31af7Sopenharmony_ci precision highp float; 9559e5c31af7Sopenharmony_ci ${DECLARATIONS} 9560e5c31af7Sopenharmony_ci 9561e5c31af7Sopenharmony_ci void main() 9562e5c31af7Sopenharmony_ci { 9563e5c31af7Sopenharmony_ci ${SETUP} 9564e5c31af7Sopenharmony_ci out0 = in0 + 1; 9565e5c31af7Sopenharmony_ci ${OUTPUT} 9566e5c31af7Sopenharmony_ci } 9567e5c31af7Sopenharmony_ci "" 9568e5c31af7Sopenharmony_ci end 9569e5c31af7Sopenharmony_ci case ivec2_to_ivec3 9570e5c31af7Sopenharmony_ci expect compile_fail 9571e5c31af7Sopenharmony_ci version 310 es 9572e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9573e5c31af7Sopenharmony_ci values 9574e5c31af7Sopenharmony_ci { 9575e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 9576e5c31af7Sopenharmony_ci output ivec3 out0 = [ ivec3(1, 2, 3) | ivec3(1, 2, 3) | ivec3(1, 2, 3) ]; 9577e5c31af7Sopenharmony_ci } 9578e5c31af7Sopenharmony_ci 9579e5c31af7Sopenharmony_ci both "" 9580e5c31af7Sopenharmony_ci #version 310 es 9581e5c31af7Sopenharmony_ci precision highp float; 9582e5c31af7Sopenharmony_ci ${DECLARATIONS} 9583e5c31af7Sopenharmony_ci 9584e5c31af7Sopenharmony_ci void main() 9585e5c31af7Sopenharmony_ci { 9586e5c31af7Sopenharmony_ci ${SETUP} 9587e5c31af7Sopenharmony_ci out0 = in0 + ivec3(1, 2, 3); 9588e5c31af7Sopenharmony_ci ${OUTPUT} 9589e5c31af7Sopenharmony_ci } 9590e5c31af7Sopenharmony_ci "" 9591e5c31af7Sopenharmony_ci end 9592e5c31af7Sopenharmony_ci case ivec2_to_uvec3 9593e5c31af7Sopenharmony_ci expect compile_fail 9594e5c31af7Sopenharmony_ci version 310 es 9595e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9596e5c31af7Sopenharmony_ci values 9597e5c31af7Sopenharmony_ci { 9598e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 9599e5c31af7Sopenharmony_ci output uvec3 out0 = [ uvec3(2, 3, 5) | uvec3(2, 3, 5) | uvec3(2, 3, 5) ]; 9600e5c31af7Sopenharmony_ci } 9601e5c31af7Sopenharmony_ci 9602e5c31af7Sopenharmony_ci both "" 9603e5c31af7Sopenharmony_ci #version 310 es 9604e5c31af7Sopenharmony_ci precision highp float; 9605e5c31af7Sopenharmony_ci ${DECLARATIONS} 9606e5c31af7Sopenharmony_ci 9607e5c31af7Sopenharmony_ci void main() 9608e5c31af7Sopenharmony_ci { 9609e5c31af7Sopenharmony_ci ${SETUP} 9610e5c31af7Sopenharmony_ci out0 = in0 + ivec3(2, 3, 5); 9611e5c31af7Sopenharmony_ci ${OUTPUT} 9612e5c31af7Sopenharmony_ci } 9613e5c31af7Sopenharmony_ci "" 9614e5c31af7Sopenharmony_ci end 9615e5c31af7Sopenharmony_ci case ivec2_to_ivec4 9616e5c31af7Sopenharmony_ci expect compile_fail 9617e5c31af7Sopenharmony_ci version 310 es 9618e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9619e5c31af7Sopenharmony_ci values 9620e5c31af7Sopenharmony_ci { 9621e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 9622e5c31af7Sopenharmony_ci output ivec4 out0 = [ ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) ]; 9623e5c31af7Sopenharmony_ci } 9624e5c31af7Sopenharmony_ci 9625e5c31af7Sopenharmony_ci both "" 9626e5c31af7Sopenharmony_ci #version 310 es 9627e5c31af7Sopenharmony_ci precision highp float; 9628e5c31af7Sopenharmony_ci ${DECLARATIONS} 9629e5c31af7Sopenharmony_ci 9630e5c31af7Sopenharmony_ci void main() 9631e5c31af7Sopenharmony_ci { 9632e5c31af7Sopenharmony_ci ${SETUP} 9633e5c31af7Sopenharmony_ci out0 = in0 + ivec4(1, 2, 3, 4); 9634e5c31af7Sopenharmony_ci ${OUTPUT} 9635e5c31af7Sopenharmony_ci } 9636e5c31af7Sopenharmony_ci "" 9637e5c31af7Sopenharmony_ci end 9638e5c31af7Sopenharmony_ci case ivec2_to_uvec4 9639e5c31af7Sopenharmony_ci expect compile_fail 9640e5c31af7Sopenharmony_ci version 310 es 9641e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9642e5c31af7Sopenharmony_ci values 9643e5c31af7Sopenharmony_ci { 9644e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 9645e5c31af7Sopenharmony_ci output uvec4 out0 = [ uvec4(2, 3, 5, 8) | uvec4(2, 3, 5, 8) | uvec4(2, 3, 5, 8) ]; 9646e5c31af7Sopenharmony_ci } 9647e5c31af7Sopenharmony_ci 9648e5c31af7Sopenharmony_ci both "" 9649e5c31af7Sopenharmony_ci #version 310 es 9650e5c31af7Sopenharmony_ci precision highp float; 9651e5c31af7Sopenharmony_ci ${DECLARATIONS} 9652e5c31af7Sopenharmony_ci 9653e5c31af7Sopenharmony_ci void main() 9654e5c31af7Sopenharmony_ci { 9655e5c31af7Sopenharmony_ci ${SETUP} 9656e5c31af7Sopenharmony_ci out0 = in0 + ivec4(2, 3, 5, 8); 9657e5c31af7Sopenharmony_ci ${OUTPUT} 9658e5c31af7Sopenharmony_ci } 9659e5c31af7Sopenharmony_ci "" 9660e5c31af7Sopenharmony_ci end 9661e5c31af7Sopenharmony_ci case ivec2_to_vec3 9662e5c31af7Sopenharmony_ci expect compile_fail 9663e5c31af7Sopenharmony_ci version 310 es 9664e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9665e5c31af7Sopenharmony_ci values 9666e5c31af7Sopenharmony_ci { 9667e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 9668e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(1.0, 2.0, 3.0) | vec3(1.0, 2.0, 3.0) | vec3(1.0, 2.0, 3.0) ]; 9669e5c31af7Sopenharmony_ci } 9670e5c31af7Sopenharmony_ci 9671e5c31af7Sopenharmony_ci both "" 9672e5c31af7Sopenharmony_ci #version 310 es 9673e5c31af7Sopenharmony_ci precision highp float; 9674e5c31af7Sopenharmony_ci ${DECLARATIONS} 9675e5c31af7Sopenharmony_ci 9676e5c31af7Sopenharmony_ci void main() 9677e5c31af7Sopenharmony_ci { 9678e5c31af7Sopenharmony_ci ${SETUP} 9679e5c31af7Sopenharmony_ci out0 = in0 + vec3(1.0, 2.0, 3.0); 9680e5c31af7Sopenharmony_ci ${OUTPUT} 9681e5c31af7Sopenharmony_ci } 9682e5c31af7Sopenharmony_ci "" 9683e5c31af7Sopenharmony_ci end 9684e5c31af7Sopenharmony_ci case ivec2_to_vec4 9685e5c31af7Sopenharmony_ci expect compile_fail 9686e5c31af7Sopenharmony_ci version 310 es 9687e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9688e5c31af7Sopenharmony_ci values 9689e5c31af7Sopenharmony_ci { 9690e5c31af7Sopenharmony_ci input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 9691e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(1.0, 2.0, 3.0, 4.0) | vec4(1.0, 2.0, 3.0, 4.0) | vec4(1.0, 2.0, 3.0, 4.0) ]; 9692e5c31af7Sopenharmony_ci } 9693e5c31af7Sopenharmony_ci 9694e5c31af7Sopenharmony_ci both "" 9695e5c31af7Sopenharmony_ci #version 310 es 9696e5c31af7Sopenharmony_ci precision highp float; 9697e5c31af7Sopenharmony_ci ${DECLARATIONS} 9698e5c31af7Sopenharmony_ci 9699e5c31af7Sopenharmony_ci void main() 9700e5c31af7Sopenharmony_ci { 9701e5c31af7Sopenharmony_ci ${SETUP} 9702e5c31af7Sopenharmony_ci out0 = in0 + vec4(1.0, 2.0, 3.0, 4.0); 9703e5c31af7Sopenharmony_ci ${OUTPUT} 9704e5c31af7Sopenharmony_ci } 9705e5c31af7Sopenharmony_ci "" 9706e5c31af7Sopenharmony_ci end 9707e5c31af7Sopenharmony_ci case uvec2_to_int 9708e5c31af7Sopenharmony_ci expect compile_fail 9709e5c31af7Sopenharmony_ci version 310 es 9710e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9711e5c31af7Sopenharmony_ci values 9712e5c31af7Sopenharmony_ci { 9713e5c31af7Sopenharmony_ci input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 9714e5c31af7Sopenharmony_ci output int out0 = [ 2 | 2 | 2 ]; 9715e5c31af7Sopenharmony_ci } 9716e5c31af7Sopenharmony_ci 9717e5c31af7Sopenharmony_ci both "" 9718e5c31af7Sopenharmony_ci #version 310 es 9719e5c31af7Sopenharmony_ci precision highp float; 9720e5c31af7Sopenharmony_ci ${DECLARATIONS} 9721e5c31af7Sopenharmony_ci 9722e5c31af7Sopenharmony_ci void main() 9723e5c31af7Sopenharmony_ci { 9724e5c31af7Sopenharmony_ci ${SETUP} 9725e5c31af7Sopenharmony_ci out0 = in0 + 2; 9726e5c31af7Sopenharmony_ci ${OUTPUT} 9727e5c31af7Sopenharmony_ci } 9728e5c31af7Sopenharmony_ci "" 9729e5c31af7Sopenharmony_ci end 9730e5c31af7Sopenharmony_ci case uvec2_to_ivec2 9731e5c31af7Sopenharmony_ci expect compile_fail 9732e5c31af7Sopenharmony_ci version 310 es 9733e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9734e5c31af7Sopenharmony_ci values 9735e5c31af7Sopenharmony_ci { 9736e5c31af7Sopenharmony_ci input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 9737e5c31af7Sopenharmony_ci output ivec2 out0 = [ ivec2(1, 2) | ivec2(1, 2) | ivec2(1, 2) ]; 9738e5c31af7Sopenharmony_ci } 9739e5c31af7Sopenharmony_ci 9740e5c31af7Sopenharmony_ci both "" 9741e5c31af7Sopenharmony_ci #version 310 es 9742e5c31af7Sopenharmony_ci precision highp float; 9743e5c31af7Sopenharmony_ci ${DECLARATIONS} 9744e5c31af7Sopenharmony_ci 9745e5c31af7Sopenharmony_ci void main() 9746e5c31af7Sopenharmony_ci { 9747e5c31af7Sopenharmony_ci ${SETUP} 9748e5c31af7Sopenharmony_ci out0 = in0 + ivec2(1, 2); 9749e5c31af7Sopenharmony_ci ${OUTPUT} 9750e5c31af7Sopenharmony_ci } 9751e5c31af7Sopenharmony_ci "" 9752e5c31af7Sopenharmony_ci end 9753e5c31af7Sopenharmony_ci case uvec2_to_ivec3 9754e5c31af7Sopenharmony_ci expect compile_fail 9755e5c31af7Sopenharmony_ci version 310 es 9756e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9757e5c31af7Sopenharmony_ci values 9758e5c31af7Sopenharmony_ci { 9759e5c31af7Sopenharmony_ci input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 9760e5c31af7Sopenharmony_ci output ivec3 out0 = [ ivec3(1, 2, 3) | ivec3(1, 2, 3) | ivec3(1, 2, 3) ]; 9761e5c31af7Sopenharmony_ci } 9762e5c31af7Sopenharmony_ci 9763e5c31af7Sopenharmony_ci both "" 9764e5c31af7Sopenharmony_ci #version 310 es 9765e5c31af7Sopenharmony_ci precision highp float; 9766e5c31af7Sopenharmony_ci ${DECLARATIONS} 9767e5c31af7Sopenharmony_ci 9768e5c31af7Sopenharmony_ci void main() 9769e5c31af7Sopenharmony_ci { 9770e5c31af7Sopenharmony_ci ${SETUP} 9771e5c31af7Sopenharmony_ci out0 = in0 + ivec3(1, 2, 3); 9772e5c31af7Sopenharmony_ci ${OUTPUT} 9773e5c31af7Sopenharmony_ci } 9774e5c31af7Sopenharmony_ci "" 9775e5c31af7Sopenharmony_ci end 9776e5c31af7Sopenharmony_ci case uvec2_to_uvec3 9777e5c31af7Sopenharmony_ci expect compile_fail 9778e5c31af7Sopenharmony_ci version 310 es 9779e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9780e5c31af7Sopenharmony_ci values 9781e5c31af7Sopenharmony_ci { 9782e5c31af7Sopenharmony_ci input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 9783e5c31af7Sopenharmony_ci output uvec3 out0 = [ uvec3(2, 3, 5) | uvec3(2, 3, 5) | uvec3(2, 3, 5) ]; 9784e5c31af7Sopenharmony_ci } 9785e5c31af7Sopenharmony_ci 9786e5c31af7Sopenharmony_ci both "" 9787e5c31af7Sopenharmony_ci #version 310 es 9788e5c31af7Sopenharmony_ci precision highp float; 9789e5c31af7Sopenharmony_ci ${DECLARATIONS} 9790e5c31af7Sopenharmony_ci 9791e5c31af7Sopenharmony_ci void main() 9792e5c31af7Sopenharmony_ci { 9793e5c31af7Sopenharmony_ci ${SETUP} 9794e5c31af7Sopenharmony_ci out0 = in0 + ivec3(2, 3, 5); 9795e5c31af7Sopenharmony_ci ${OUTPUT} 9796e5c31af7Sopenharmony_ci } 9797e5c31af7Sopenharmony_ci "" 9798e5c31af7Sopenharmony_ci end 9799e5c31af7Sopenharmony_ci case uvec2_to_ivec4 9800e5c31af7Sopenharmony_ci expect compile_fail 9801e5c31af7Sopenharmony_ci version 310 es 9802e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9803e5c31af7Sopenharmony_ci values 9804e5c31af7Sopenharmony_ci { 9805e5c31af7Sopenharmony_ci input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 9806e5c31af7Sopenharmony_ci output ivec4 out0 = [ ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) ]; 9807e5c31af7Sopenharmony_ci } 9808e5c31af7Sopenharmony_ci 9809e5c31af7Sopenharmony_ci both "" 9810e5c31af7Sopenharmony_ci #version 310 es 9811e5c31af7Sopenharmony_ci precision highp float; 9812e5c31af7Sopenharmony_ci ${DECLARATIONS} 9813e5c31af7Sopenharmony_ci 9814e5c31af7Sopenharmony_ci void main() 9815e5c31af7Sopenharmony_ci { 9816e5c31af7Sopenharmony_ci ${SETUP} 9817e5c31af7Sopenharmony_ci out0 = in0 + ivec4(1, 2, 3, 4); 9818e5c31af7Sopenharmony_ci ${OUTPUT} 9819e5c31af7Sopenharmony_ci } 9820e5c31af7Sopenharmony_ci "" 9821e5c31af7Sopenharmony_ci end 9822e5c31af7Sopenharmony_ci case uvec2_to_uvec4 9823e5c31af7Sopenharmony_ci expect compile_fail 9824e5c31af7Sopenharmony_ci version 310 es 9825e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9826e5c31af7Sopenharmony_ci values 9827e5c31af7Sopenharmony_ci { 9828e5c31af7Sopenharmony_ci input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 9829e5c31af7Sopenharmony_ci output uvec4 out0 = [ uvec4(2, 3, 5, 8) | uvec4(2, 3, 5, 8) | uvec4(2, 3, 5, 8) ]; 9830e5c31af7Sopenharmony_ci } 9831e5c31af7Sopenharmony_ci 9832e5c31af7Sopenharmony_ci both "" 9833e5c31af7Sopenharmony_ci #version 310 es 9834e5c31af7Sopenharmony_ci precision highp float; 9835e5c31af7Sopenharmony_ci ${DECLARATIONS} 9836e5c31af7Sopenharmony_ci 9837e5c31af7Sopenharmony_ci void main() 9838e5c31af7Sopenharmony_ci { 9839e5c31af7Sopenharmony_ci ${SETUP} 9840e5c31af7Sopenharmony_ci out0 = in0 + ivec4(2, 3, 5, 8); 9841e5c31af7Sopenharmony_ci ${OUTPUT} 9842e5c31af7Sopenharmony_ci } 9843e5c31af7Sopenharmony_ci "" 9844e5c31af7Sopenharmony_ci end 9845e5c31af7Sopenharmony_ci case uvec2_to_vec3 9846e5c31af7Sopenharmony_ci expect compile_fail 9847e5c31af7Sopenharmony_ci version 310 es 9848e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9849e5c31af7Sopenharmony_ci values 9850e5c31af7Sopenharmony_ci { 9851e5c31af7Sopenharmony_ci input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 9852e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(1.0, 2.0, 3.0) | vec3(1.0, 2.0, 3.0) | vec3(1.0, 2.0, 3.0) ]; 9853e5c31af7Sopenharmony_ci } 9854e5c31af7Sopenharmony_ci 9855e5c31af7Sopenharmony_ci both "" 9856e5c31af7Sopenharmony_ci #version 310 es 9857e5c31af7Sopenharmony_ci precision highp float; 9858e5c31af7Sopenharmony_ci ${DECLARATIONS} 9859e5c31af7Sopenharmony_ci 9860e5c31af7Sopenharmony_ci void main() 9861e5c31af7Sopenharmony_ci { 9862e5c31af7Sopenharmony_ci ${SETUP} 9863e5c31af7Sopenharmony_ci out0 = in0 + vec3(1.0, 2.0, 3.0); 9864e5c31af7Sopenharmony_ci ${OUTPUT} 9865e5c31af7Sopenharmony_ci } 9866e5c31af7Sopenharmony_ci "" 9867e5c31af7Sopenharmony_ci end 9868e5c31af7Sopenharmony_ci case uvec2_to_vec4 9869e5c31af7Sopenharmony_ci expect compile_fail 9870e5c31af7Sopenharmony_ci version 310 es 9871e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9872e5c31af7Sopenharmony_ci values 9873e5c31af7Sopenharmony_ci { 9874e5c31af7Sopenharmony_ci input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 9875e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(1.0, 2.0, 3.0, 4.0) | vec4(1.0, 2.0, 3.0, 4.0) | vec4(1.0, 2.0, 3.0, 4.0) ]; 9876e5c31af7Sopenharmony_ci } 9877e5c31af7Sopenharmony_ci 9878e5c31af7Sopenharmony_ci both "" 9879e5c31af7Sopenharmony_ci #version 310 es 9880e5c31af7Sopenharmony_ci precision highp float; 9881e5c31af7Sopenharmony_ci ${DECLARATIONS} 9882e5c31af7Sopenharmony_ci 9883e5c31af7Sopenharmony_ci void main() 9884e5c31af7Sopenharmony_ci { 9885e5c31af7Sopenharmony_ci ${SETUP} 9886e5c31af7Sopenharmony_ci out0 = in0 + vec4(1.0, 2.0, 3.0, 4.0); 9887e5c31af7Sopenharmony_ci ${OUTPUT} 9888e5c31af7Sopenharmony_ci } 9889e5c31af7Sopenharmony_ci "" 9890e5c31af7Sopenharmony_ci end 9891e5c31af7Sopenharmony_ci case ivec3_to_uint 9892e5c31af7Sopenharmony_ci expect compile_fail 9893e5c31af7Sopenharmony_ci version 310 es 9894e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9895e5c31af7Sopenharmony_ci values 9896e5c31af7Sopenharmony_ci { 9897e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 9898e5c31af7Sopenharmony_ci output uint out0 = [ 1 | 1 | 1 ]; 9899e5c31af7Sopenharmony_ci } 9900e5c31af7Sopenharmony_ci 9901e5c31af7Sopenharmony_ci both "" 9902e5c31af7Sopenharmony_ci #version 310 es 9903e5c31af7Sopenharmony_ci precision highp float; 9904e5c31af7Sopenharmony_ci ${DECLARATIONS} 9905e5c31af7Sopenharmony_ci 9906e5c31af7Sopenharmony_ci void main() 9907e5c31af7Sopenharmony_ci { 9908e5c31af7Sopenharmony_ci ${SETUP} 9909e5c31af7Sopenharmony_ci out0 = in0 + 1; 9910e5c31af7Sopenharmony_ci ${OUTPUT} 9911e5c31af7Sopenharmony_ci } 9912e5c31af7Sopenharmony_ci "" 9913e5c31af7Sopenharmony_ci end 9914e5c31af7Sopenharmony_ci case ivec3_to_ivec2 9915e5c31af7Sopenharmony_ci expect compile_fail 9916e5c31af7Sopenharmony_ci version 310 es 9917e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9918e5c31af7Sopenharmony_ci values 9919e5c31af7Sopenharmony_ci { 9920e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 9921e5c31af7Sopenharmony_ci output ivec2 out0 = [ ivec2(1, 2) | ivec2(1, 2) | ivec2(1, 2) ]; 9922e5c31af7Sopenharmony_ci } 9923e5c31af7Sopenharmony_ci 9924e5c31af7Sopenharmony_ci both "" 9925e5c31af7Sopenharmony_ci #version 310 es 9926e5c31af7Sopenharmony_ci precision highp float; 9927e5c31af7Sopenharmony_ci ${DECLARATIONS} 9928e5c31af7Sopenharmony_ci 9929e5c31af7Sopenharmony_ci void main() 9930e5c31af7Sopenharmony_ci { 9931e5c31af7Sopenharmony_ci ${SETUP} 9932e5c31af7Sopenharmony_ci out0 = in0 + ivec2(1, 2); 9933e5c31af7Sopenharmony_ci ${OUTPUT} 9934e5c31af7Sopenharmony_ci } 9935e5c31af7Sopenharmony_ci "" 9936e5c31af7Sopenharmony_ci end 9937e5c31af7Sopenharmony_ci case ivec3_to_uvec2 9938e5c31af7Sopenharmony_ci expect compile_fail 9939e5c31af7Sopenharmony_ci version 310 es 9940e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9941e5c31af7Sopenharmony_ci values 9942e5c31af7Sopenharmony_ci { 9943e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 9944e5c31af7Sopenharmony_ci output uvec2 out0 = [ uvec2(2, 3) | uvec2(2, 3) | uvec2(2, 3) ]; 9945e5c31af7Sopenharmony_ci } 9946e5c31af7Sopenharmony_ci 9947e5c31af7Sopenharmony_ci both "" 9948e5c31af7Sopenharmony_ci #version 310 es 9949e5c31af7Sopenharmony_ci precision highp float; 9950e5c31af7Sopenharmony_ci ${DECLARATIONS} 9951e5c31af7Sopenharmony_ci 9952e5c31af7Sopenharmony_ci void main() 9953e5c31af7Sopenharmony_ci { 9954e5c31af7Sopenharmony_ci ${SETUP} 9955e5c31af7Sopenharmony_ci out0 = in0 + ivec2(2, 3); 9956e5c31af7Sopenharmony_ci ${OUTPUT} 9957e5c31af7Sopenharmony_ci } 9958e5c31af7Sopenharmony_ci "" 9959e5c31af7Sopenharmony_ci end 9960e5c31af7Sopenharmony_ci case ivec3_to_ivec4 9961e5c31af7Sopenharmony_ci expect compile_fail 9962e5c31af7Sopenharmony_ci version 310 es 9963e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9964e5c31af7Sopenharmony_ci values 9965e5c31af7Sopenharmony_ci { 9966e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 9967e5c31af7Sopenharmony_ci output ivec4 out0 = [ ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) ]; 9968e5c31af7Sopenharmony_ci } 9969e5c31af7Sopenharmony_ci 9970e5c31af7Sopenharmony_ci both "" 9971e5c31af7Sopenharmony_ci #version 310 es 9972e5c31af7Sopenharmony_ci precision highp float; 9973e5c31af7Sopenharmony_ci ${DECLARATIONS} 9974e5c31af7Sopenharmony_ci 9975e5c31af7Sopenharmony_ci void main() 9976e5c31af7Sopenharmony_ci { 9977e5c31af7Sopenharmony_ci ${SETUP} 9978e5c31af7Sopenharmony_ci out0 = in0 + ivec4(1, 2, 3, 4); 9979e5c31af7Sopenharmony_ci ${OUTPUT} 9980e5c31af7Sopenharmony_ci } 9981e5c31af7Sopenharmony_ci "" 9982e5c31af7Sopenharmony_ci end 9983e5c31af7Sopenharmony_ci case ivec3_to_uvec4 9984e5c31af7Sopenharmony_ci expect compile_fail 9985e5c31af7Sopenharmony_ci version 310 es 9986e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9987e5c31af7Sopenharmony_ci values 9988e5c31af7Sopenharmony_ci { 9989e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 9990e5c31af7Sopenharmony_ci output uvec4 out0 = [ uvec4(2, 3, 5, 8) | uvec4(2, 3, 5, 8) | uvec4(2, 3, 5, 8) ]; 9991e5c31af7Sopenharmony_ci } 9992e5c31af7Sopenharmony_ci 9993e5c31af7Sopenharmony_ci both "" 9994e5c31af7Sopenharmony_ci #version 310 es 9995e5c31af7Sopenharmony_ci precision highp float; 9996e5c31af7Sopenharmony_ci ${DECLARATIONS} 9997e5c31af7Sopenharmony_ci 9998e5c31af7Sopenharmony_ci void main() 9999e5c31af7Sopenharmony_ci { 10000e5c31af7Sopenharmony_ci ${SETUP} 10001e5c31af7Sopenharmony_ci out0 = in0 + ivec4(2, 3, 5, 8); 10002e5c31af7Sopenharmony_ci ${OUTPUT} 10003e5c31af7Sopenharmony_ci } 10004e5c31af7Sopenharmony_ci "" 10005e5c31af7Sopenharmony_ci end 10006e5c31af7Sopenharmony_ci case ivec3_to_vec2 10007e5c31af7Sopenharmony_ci expect compile_fail 10008e5c31af7Sopenharmony_ci version 310 es 10009e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10010e5c31af7Sopenharmony_ci values 10011e5c31af7Sopenharmony_ci { 10012e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 10013e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(1.0, 2.0) | vec2(1.0, 2.0) | vec2(1.0, 2.0) ]; 10014e5c31af7Sopenharmony_ci } 10015e5c31af7Sopenharmony_ci 10016e5c31af7Sopenharmony_ci both "" 10017e5c31af7Sopenharmony_ci #version 310 es 10018e5c31af7Sopenharmony_ci precision highp float; 10019e5c31af7Sopenharmony_ci ${DECLARATIONS} 10020e5c31af7Sopenharmony_ci 10021e5c31af7Sopenharmony_ci void main() 10022e5c31af7Sopenharmony_ci { 10023e5c31af7Sopenharmony_ci ${SETUP} 10024e5c31af7Sopenharmony_ci out0 = in0 + vec2(1.0, 2.0); 10025e5c31af7Sopenharmony_ci ${OUTPUT} 10026e5c31af7Sopenharmony_ci } 10027e5c31af7Sopenharmony_ci "" 10028e5c31af7Sopenharmony_ci end 10029e5c31af7Sopenharmony_ci case ivec3_to_vec4 10030e5c31af7Sopenharmony_ci expect compile_fail 10031e5c31af7Sopenharmony_ci version 310 es 10032e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10033e5c31af7Sopenharmony_ci values 10034e5c31af7Sopenharmony_ci { 10035e5c31af7Sopenharmony_ci input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 10036e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(1.0, 2.0, 3.0, 4.0) | vec4(1.0, 2.0, 3.0, 4.0) | vec4(1.0, 2.0, 3.0, 4.0) ]; 10037e5c31af7Sopenharmony_ci } 10038e5c31af7Sopenharmony_ci 10039e5c31af7Sopenharmony_ci both "" 10040e5c31af7Sopenharmony_ci #version 310 es 10041e5c31af7Sopenharmony_ci precision highp float; 10042e5c31af7Sopenharmony_ci ${DECLARATIONS} 10043e5c31af7Sopenharmony_ci 10044e5c31af7Sopenharmony_ci void main() 10045e5c31af7Sopenharmony_ci { 10046e5c31af7Sopenharmony_ci ${SETUP} 10047e5c31af7Sopenharmony_ci out0 = in0 + vec4(1.0, 2.0, 3.0, 4.0); 10048e5c31af7Sopenharmony_ci ${OUTPUT} 10049e5c31af7Sopenharmony_ci } 10050e5c31af7Sopenharmony_ci "" 10051e5c31af7Sopenharmony_ci end 10052e5c31af7Sopenharmony_ci case uvec3_to_int 10053e5c31af7Sopenharmony_ci expect compile_fail 10054e5c31af7Sopenharmony_ci version 310 es 10055e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10056e5c31af7Sopenharmony_ci values 10057e5c31af7Sopenharmony_ci { 10058e5c31af7Sopenharmony_ci input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 10059e5c31af7Sopenharmony_ci output int out0 = [ 2 | 2 | 2 ]; 10060e5c31af7Sopenharmony_ci } 10061e5c31af7Sopenharmony_ci 10062e5c31af7Sopenharmony_ci both "" 10063e5c31af7Sopenharmony_ci #version 310 es 10064e5c31af7Sopenharmony_ci precision highp float; 10065e5c31af7Sopenharmony_ci ${DECLARATIONS} 10066e5c31af7Sopenharmony_ci 10067e5c31af7Sopenharmony_ci void main() 10068e5c31af7Sopenharmony_ci { 10069e5c31af7Sopenharmony_ci ${SETUP} 10070e5c31af7Sopenharmony_ci out0 = in0 + 2; 10071e5c31af7Sopenharmony_ci ${OUTPUT} 10072e5c31af7Sopenharmony_ci } 10073e5c31af7Sopenharmony_ci "" 10074e5c31af7Sopenharmony_ci end 10075e5c31af7Sopenharmony_ci case uvec3_to_ivec2 10076e5c31af7Sopenharmony_ci expect compile_fail 10077e5c31af7Sopenharmony_ci version 310 es 10078e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10079e5c31af7Sopenharmony_ci values 10080e5c31af7Sopenharmony_ci { 10081e5c31af7Sopenharmony_ci input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 10082e5c31af7Sopenharmony_ci output ivec2 out0 = [ ivec2(1, 2) | ivec2(1, 2) | ivec2(1, 2) ]; 10083e5c31af7Sopenharmony_ci } 10084e5c31af7Sopenharmony_ci 10085e5c31af7Sopenharmony_ci both "" 10086e5c31af7Sopenharmony_ci #version 310 es 10087e5c31af7Sopenharmony_ci precision highp float; 10088e5c31af7Sopenharmony_ci ${DECLARATIONS} 10089e5c31af7Sopenharmony_ci 10090e5c31af7Sopenharmony_ci void main() 10091e5c31af7Sopenharmony_ci { 10092e5c31af7Sopenharmony_ci ${SETUP} 10093e5c31af7Sopenharmony_ci out0 = in0 + ivec2(1, 2); 10094e5c31af7Sopenharmony_ci ${OUTPUT} 10095e5c31af7Sopenharmony_ci } 10096e5c31af7Sopenharmony_ci "" 10097e5c31af7Sopenharmony_ci end 10098e5c31af7Sopenharmony_ci case uvec3_to_uvec2 10099e5c31af7Sopenharmony_ci expect compile_fail 10100e5c31af7Sopenharmony_ci version 310 es 10101e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10102e5c31af7Sopenharmony_ci values 10103e5c31af7Sopenharmony_ci { 10104e5c31af7Sopenharmony_ci input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 10105e5c31af7Sopenharmony_ci output uvec2 out0 = [ uvec2(2, 3) | uvec2(2, 3) | uvec2(2, 3) ]; 10106e5c31af7Sopenharmony_ci } 10107e5c31af7Sopenharmony_ci 10108e5c31af7Sopenharmony_ci both "" 10109e5c31af7Sopenharmony_ci #version 310 es 10110e5c31af7Sopenharmony_ci precision highp float; 10111e5c31af7Sopenharmony_ci ${DECLARATIONS} 10112e5c31af7Sopenharmony_ci 10113e5c31af7Sopenharmony_ci void main() 10114e5c31af7Sopenharmony_ci { 10115e5c31af7Sopenharmony_ci ${SETUP} 10116e5c31af7Sopenharmony_ci out0 = in0 + ivec2(2, 3); 10117e5c31af7Sopenharmony_ci ${OUTPUT} 10118e5c31af7Sopenharmony_ci } 10119e5c31af7Sopenharmony_ci "" 10120e5c31af7Sopenharmony_ci end 10121e5c31af7Sopenharmony_ci case uvec3_to_ivec3 10122e5c31af7Sopenharmony_ci expect compile_fail 10123e5c31af7Sopenharmony_ci version 310 es 10124e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10125e5c31af7Sopenharmony_ci values 10126e5c31af7Sopenharmony_ci { 10127e5c31af7Sopenharmony_ci input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 10128e5c31af7Sopenharmony_ci output ivec3 out0 = [ ivec3(1, 2, 3) | ivec3(1, 2, 3) | ivec3(1, 2, 3) ]; 10129e5c31af7Sopenharmony_ci } 10130e5c31af7Sopenharmony_ci 10131e5c31af7Sopenharmony_ci both "" 10132e5c31af7Sopenharmony_ci #version 310 es 10133e5c31af7Sopenharmony_ci precision highp float; 10134e5c31af7Sopenharmony_ci ${DECLARATIONS} 10135e5c31af7Sopenharmony_ci 10136e5c31af7Sopenharmony_ci void main() 10137e5c31af7Sopenharmony_ci { 10138e5c31af7Sopenharmony_ci ${SETUP} 10139e5c31af7Sopenharmony_ci out0 = in0 + ivec3(1, 2, 3); 10140e5c31af7Sopenharmony_ci ${OUTPUT} 10141e5c31af7Sopenharmony_ci } 10142e5c31af7Sopenharmony_ci "" 10143e5c31af7Sopenharmony_ci end 10144e5c31af7Sopenharmony_ci case uvec3_to_ivec4 10145e5c31af7Sopenharmony_ci expect compile_fail 10146e5c31af7Sopenharmony_ci version 310 es 10147e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10148e5c31af7Sopenharmony_ci values 10149e5c31af7Sopenharmony_ci { 10150e5c31af7Sopenharmony_ci input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 10151e5c31af7Sopenharmony_ci output ivec4 out0 = [ ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) ]; 10152e5c31af7Sopenharmony_ci } 10153e5c31af7Sopenharmony_ci 10154e5c31af7Sopenharmony_ci both "" 10155e5c31af7Sopenharmony_ci #version 310 es 10156e5c31af7Sopenharmony_ci precision highp float; 10157e5c31af7Sopenharmony_ci ${DECLARATIONS} 10158e5c31af7Sopenharmony_ci 10159e5c31af7Sopenharmony_ci void main() 10160e5c31af7Sopenharmony_ci { 10161e5c31af7Sopenharmony_ci ${SETUP} 10162e5c31af7Sopenharmony_ci out0 = in0 + ivec4(1, 2, 3, 4); 10163e5c31af7Sopenharmony_ci ${OUTPUT} 10164e5c31af7Sopenharmony_ci } 10165e5c31af7Sopenharmony_ci "" 10166e5c31af7Sopenharmony_ci end 10167e5c31af7Sopenharmony_ci case uvec3_to_uvec4 10168e5c31af7Sopenharmony_ci expect compile_fail 10169e5c31af7Sopenharmony_ci version 310 es 10170e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10171e5c31af7Sopenharmony_ci values 10172e5c31af7Sopenharmony_ci { 10173e5c31af7Sopenharmony_ci input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 10174e5c31af7Sopenharmony_ci output uvec4 out0 = [ uvec4(2, 3, 5, 8) | uvec4(2, 3, 5, 8) | uvec4(2, 3, 5, 8) ]; 10175e5c31af7Sopenharmony_ci } 10176e5c31af7Sopenharmony_ci 10177e5c31af7Sopenharmony_ci both "" 10178e5c31af7Sopenharmony_ci #version 310 es 10179e5c31af7Sopenharmony_ci precision highp float; 10180e5c31af7Sopenharmony_ci ${DECLARATIONS} 10181e5c31af7Sopenharmony_ci 10182e5c31af7Sopenharmony_ci void main() 10183e5c31af7Sopenharmony_ci { 10184e5c31af7Sopenharmony_ci ${SETUP} 10185e5c31af7Sopenharmony_ci out0 = in0 + ivec4(2, 3, 5, 8); 10186e5c31af7Sopenharmony_ci ${OUTPUT} 10187e5c31af7Sopenharmony_ci } 10188e5c31af7Sopenharmony_ci "" 10189e5c31af7Sopenharmony_ci end 10190e5c31af7Sopenharmony_ci case uvec3_to_vec2 10191e5c31af7Sopenharmony_ci expect compile_fail 10192e5c31af7Sopenharmony_ci version 310 es 10193e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10194e5c31af7Sopenharmony_ci values 10195e5c31af7Sopenharmony_ci { 10196e5c31af7Sopenharmony_ci input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 10197e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(1.0, 2.0) | vec2(1.0, 2.0) | vec2(1.0, 2.0) ]; 10198e5c31af7Sopenharmony_ci } 10199e5c31af7Sopenharmony_ci 10200e5c31af7Sopenharmony_ci both "" 10201e5c31af7Sopenharmony_ci #version 310 es 10202e5c31af7Sopenharmony_ci precision highp float; 10203e5c31af7Sopenharmony_ci ${DECLARATIONS} 10204e5c31af7Sopenharmony_ci 10205e5c31af7Sopenharmony_ci void main() 10206e5c31af7Sopenharmony_ci { 10207e5c31af7Sopenharmony_ci ${SETUP} 10208e5c31af7Sopenharmony_ci out0 = in0 + vec2(1.0, 2.0); 10209e5c31af7Sopenharmony_ci ${OUTPUT} 10210e5c31af7Sopenharmony_ci } 10211e5c31af7Sopenharmony_ci "" 10212e5c31af7Sopenharmony_ci end 10213e5c31af7Sopenharmony_ci case uvec3_to_vec4 10214e5c31af7Sopenharmony_ci expect compile_fail 10215e5c31af7Sopenharmony_ci version 310 es 10216e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10217e5c31af7Sopenharmony_ci values 10218e5c31af7Sopenharmony_ci { 10219e5c31af7Sopenharmony_ci input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 10220e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(1.0, 2.0, 3.0, 4.0) | vec4(1.0, 2.0, 3.0, 4.0) | vec4(1.0, 2.0, 3.0, 4.0) ]; 10221e5c31af7Sopenharmony_ci } 10222e5c31af7Sopenharmony_ci 10223e5c31af7Sopenharmony_ci both "" 10224e5c31af7Sopenharmony_ci #version 310 es 10225e5c31af7Sopenharmony_ci precision highp float; 10226e5c31af7Sopenharmony_ci ${DECLARATIONS} 10227e5c31af7Sopenharmony_ci 10228e5c31af7Sopenharmony_ci void main() 10229e5c31af7Sopenharmony_ci { 10230e5c31af7Sopenharmony_ci ${SETUP} 10231e5c31af7Sopenharmony_ci out0 = in0 + vec4(1.0, 2.0, 3.0, 4.0); 10232e5c31af7Sopenharmony_ci ${OUTPUT} 10233e5c31af7Sopenharmony_ci } 10234e5c31af7Sopenharmony_ci "" 10235e5c31af7Sopenharmony_ci end 10236e5c31af7Sopenharmony_ci case ivec4_to_uint 10237e5c31af7Sopenharmony_ci expect compile_fail 10238e5c31af7Sopenharmony_ci version 310 es 10239e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10240e5c31af7Sopenharmony_ci values 10241e5c31af7Sopenharmony_ci { 10242e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 10243e5c31af7Sopenharmony_ci output uint out0 = [ 1 | 1 | 1 ]; 10244e5c31af7Sopenharmony_ci } 10245e5c31af7Sopenharmony_ci 10246e5c31af7Sopenharmony_ci both "" 10247e5c31af7Sopenharmony_ci #version 310 es 10248e5c31af7Sopenharmony_ci precision highp float; 10249e5c31af7Sopenharmony_ci ${DECLARATIONS} 10250e5c31af7Sopenharmony_ci 10251e5c31af7Sopenharmony_ci void main() 10252e5c31af7Sopenharmony_ci { 10253e5c31af7Sopenharmony_ci ${SETUP} 10254e5c31af7Sopenharmony_ci out0 = in0 + 1; 10255e5c31af7Sopenharmony_ci ${OUTPUT} 10256e5c31af7Sopenharmony_ci } 10257e5c31af7Sopenharmony_ci "" 10258e5c31af7Sopenharmony_ci end 10259e5c31af7Sopenharmony_ci case ivec4_to_ivec2 10260e5c31af7Sopenharmony_ci expect compile_fail 10261e5c31af7Sopenharmony_ci version 310 es 10262e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10263e5c31af7Sopenharmony_ci values 10264e5c31af7Sopenharmony_ci { 10265e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 10266e5c31af7Sopenharmony_ci output ivec2 out0 = [ ivec2(1, 2) | ivec2(1, 2) | ivec2(1, 2) ]; 10267e5c31af7Sopenharmony_ci } 10268e5c31af7Sopenharmony_ci 10269e5c31af7Sopenharmony_ci both "" 10270e5c31af7Sopenharmony_ci #version 310 es 10271e5c31af7Sopenharmony_ci precision highp float; 10272e5c31af7Sopenharmony_ci ${DECLARATIONS} 10273e5c31af7Sopenharmony_ci 10274e5c31af7Sopenharmony_ci void main() 10275e5c31af7Sopenharmony_ci { 10276e5c31af7Sopenharmony_ci ${SETUP} 10277e5c31af7Sopenharmony_ci out0 = in0 + ivec2(1, 2); 10278e5c31af7Sopenharmony_ci ${OUTPUT} 10279e5c31af7Sopenharmony_ci } 10280e5c31af7Sopenharmony_ci "" 10281e5c31af7Sopenharmony_ci end 10282e5c31af7Sopenharmony_ci case ivec4_to_uvec2 10283e5c31af7Sopenharmony_ci expect compile_fail 10284e5c31af7Sopenharmony_ci version 310 es 10285e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10286e5c31af7Sopenharmony_ci values 10287e5c31af7Sopenharmony_ci { 10288e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 10289e5c31af7Sopenharmony_ci output uvec2 out0 = [ uvec2(2, 3) | uvec2(2, 3) | uvec2(2, 3) ]; 10290e5c31af7Sopenharmony_ci } 10291e5c31af7Sopenharmony_ci 10292e5c31af7Sopenharmony_ci both "" 10293e5c31af7Sopenharmony_ci #version 310 es 10294e5c31af7Sopenharmony_ci precision highp float; 10295e5c31af7Sopenharmony_ci ${DECLARATIONS} 10296e5c31af7Sopenharmony_ci 10297e5c31af7Sopenharmony_ci void main() 10298e5c31af7Sopenharmony_ci { 10299e5c31af7Sopenharmony_ci ${SETUP} 10300e5c31af7Sopenharmony_ci out0 = in0 + ivec2(2, 3); 10301e5c31af7Sopenharmony_ci ${OUTPUT} 10302e5c31af7Sopenharmony_ci } 10303e5c31af7Sopenharmony_ci "" 10304e5c31af7Sopenharmony_ci end 10305e5c31af7Sopenharmony_ci case ivec4_to_ivec3 10306e5c31af7Sopenharmony_ci expect compile_fail 10307e5c31af7Sopenharmony_ci version 310 es 10308e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10309e5c31af7Sopenharmony_ci values 10310e5c31af7Sopenharmony_ci { 10311e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 10312e5c31af7Sopenharmony_ci output ivec3 out0 = [ ivec3(1, 2, 3) | ivec3(1, 2, 3) | ivec3(1, 2, 3) ]; 10313e5c31af7Sopenharmony_ci } 10314e5c31af7Sopenharmony_ci 10315e5c31af7Sopenharmony_ci both "" 10316e5c31af7Sopenharmony_ci #version 310 es 10317e5c31af7Sopenharmony_ci precision highp float; 10318e5c31af7Sopenharmony_ci ${DECLARATIONS} 10319e5c31af7Sopenharmony_ci 10320e5c31af7Sopenharmony_ci void main() 10321e5c31af7Sopenharmony_ci { 10322e5c31af7Sopenharmony_ci ${SETUP} 10323e5c31af7Sopenharmony_ci out0 = in0 + ivec3(1, 2, 3); 10324e5c31af7Sopenharmony_ci ${OUTPUT} 10325e5c31af7Sopenharmony_ci } 10326e5c31af7Sopenharmony_ci "" 10327e5c31af7Sopenharmony_ci end 10328e5c31af7Sopenharmony_ci case ivec4_to_uvec3 10329e5c31af7Sopenharmony_ci expect compile_fail 10330e5c31af7Sopenharmony_ci version 310 es 10331e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10332e5c31af7Sopenharmony_ci values 10333e5c31af7Sopenharmony_ci { 10334e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 10335e5c31af7Sopenharmony_ci output uvec3 out0 = [ uvec3(2, 3, 5) | uvec3(2, 3, 5) | uvec3(2, 3, 5) ]; 10336e5c31af7Sopenharmony_ci } 10337e5c31af7Sopenharmony_ci 10338e5c31af7Sopenharmony_ci both "" 10339e5c31af7Sopenharmony_ci #version 310 es 10340e5c31af7Sopenharmony_ci precision highp float; 10341e5c31af7Sopenharmony_ci ${DECLARATIONS} 10342e5c31af7Sopenharmony_ci 10343e5c31af7Sopenharmony_ci void main() 10344e5c31af7Sopenharmony_ci { 10345e5c31af7Sopenharmony_ci ${SETUP} 10346e5c31af7Sopenharmony_ci out0 = in0 + ivec3(2, 3, 5); 10347e5c31af7Sopenharmony_ci ${OUTPUT} 10348e5c31af7Sopenharmony_ci } 10349e5c31af7Sopenharmony_ci "" 10350e5c31af7Sopenharmony_ci end 10351e5c31af7Sopenharmony_ci case ivec4_to_vec2 10352e5c31af7Sopenharmony_ci expect compile_fail 10353e5c31af7Sopenharmony_ci version 310 es 10354e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10355e5c31af7Sopenharmony_ci values 10356e5c31af7Sopenharmony_ci { 10357e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 10358e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(1.0, 2.0) | vec2(1.0, 2.0) | vec2(1.0, 2.0) ]; 10359e5c31af7Sopenharmony_ci } 10360e5c31af7Sopenharmony_ci 10361e5c31af7Sopenharmony_ci both "" 10362e5c31af7Sopenharmony_ci #version 310 es 10363e5c31af7Sopenharmony_ci precision highp float; 10364e5c31af7Sopenharmony_ci ${DECLARATIONS} 10365e5c31af7Sopenharmony_ci 10366e5c31af7Sopenharmony_ci void main() 10367e5c31af7Sopenharmony_ci { 10368e5c31af7Sopenharmony_ci ${SETUP} 10369e5c31af7Sopenharmony_ci out0 = in0 + vec2(1.0, 2.0); 10370e5c31af7Sopenharmony_ci ${OUTPUT} 10371e5c31af7Sopenharmony_ci } 10372e5c31af7Sopenharmony_ci "" 10373e5c31af7Sopenharmony_ci end 10374e5c31af7Sopenharmony_ci case ivec4_to_vec3 10375e5c31af7Sopenharmony_ci expect compile_fail 10376e5c31af7Sopenharmony_ci version 310 es 10377e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10378e5c31af7Sopenharmony_ci values 10379e5c31af7Sopenharmony_ci { 10380e5c31af7Sopenharmony_ci input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 10381e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(1.0, 2.0, 3.0) | vec3(1.0, 2.0, 3.0) | vec3(1.0, 2.0, 3.0) ]; 10382e5c31af7Sopenharmony_ci } 10383e5c31af7Sopenharmony_ci 10384e5c31af7Sopenharmony_ci both "" 10385e5c31af7Sopenharmony_ci #version 310 es 10386e5c31af7Sopenharmony_ci precision highp float; 10387e5c31af7Sopenharmony_ci ${DECLARATIONS} 10388e5c31af7Sopenharmony_ci 10389e5c31af7Sopenharmony_ci void main() 10390e5c31af7Sopenharmony_ci { 10391e5c31af7Sopenharmony_ci ${SETUP} 10392e5c31af7Sopenharmony_ci out0 = in0 + vec3(1.0, 2.0, 3.0); 10393e5c31af7Sopenharmony_ci ${OUTPUT} 10394e5c31af7Sopenharmony_ci } 10395e5c31af7Sopenharmony_ci "" 10396e5c31af7Sopenharmony_ci end 10397e5c31af7Sopenharmony_ci case uvec4_to_int 10398e5c31af7Sopenharmony_ci expect compile_fail 10399e5c31af7Sopenharmony_ci version 310 es 10400e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10401e5c31af7Sopenharmony_ci values 10402e5c31af7Sopenharmony_ci { 10403e5c31af7Sopenharmony_ci input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 10404e5c31af7Sopenharmony_ci output int out0 = [ 2 | 2 | 2 ]; 10405e5c31af7Sopenharmony_ci } 10406e5c31af7Sopenharmony_ci 10407e5c31af7Sopenharmony_ci both "" 10408e5c31af7Sopenharmony_ci #version 310 es 10409e5c31af7Sopenharmony_ci precision highp float; 10410e5c31af7Sopenharmony_ci ${DECLARATIONS} 10411e5c31af7Sopenharmony_ci 10412e5c31af7Sopenharmony_ci void main() 10413e5c31af7Sopenharmony_ci { 10414e5c31af7Sopenharmony_ci ${SETUP} 10415e5c31af7Sopenharmony_ci out0 = in0 + 2; 10416e5c31af7Sopenharmony_ci ${OUTPUT} 10417e5c31af7Sopenharmony_ci } 10418e5c31af7Sopenharmony_ci "" 10419e5c31af7Sopenharmony_ci end 10420e5c31af7Sopenharmony_ci case uvec4_to_ivec2 10421e5c31af7Sopenharmony_ci expect compile_fail 10422e5c31af7Sopenharmony_ci version 310 es 10423e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10424e5c31af7Sopenharmony_ci values 10425e5c31af7Sopenharmony_ci { 10426e5c31af7Sopenharmony_ci input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 10427e5c31af7Sopenharmony_ci output ivec2 out0 = [ ivec2(1, 2) | ivec2(1, 2) | ivec2(1, 2) ]; 10428e5c31af7Sopenharmony_ci } 10429e5c31af7Sopenharmony_ci 10430e5c31af7Sopenharmony_ci both "" 10431e5c31af7Sopenharmony_ci #version 310 es 10432e5c31af7Sopenharmony_ci precision highp float; 10433e5c31af7Sopenharmony_ci ${DECLARATIONS} 10434e5c31af7Sopenharmony_ci 10435e5c31af7Sopenharmony_ci void main() 10436e5c31af7Sopenharmony_ci { 10437e5c31af7Sopenharmony_ci ${SETUP} 10438e5c31af7Sopenharmony_ci out0 = in0 + ivec2(1, 2); 10439e5c31af7Sopenharmony_ci ${OUTPUT} 10440e5c31af7Sopenharmony_ci } 10441e5c31af7Sopenharmony_ci "" 10442e5c31af7Sopenharmony_ci end 10443e5c31af7Sopenharmony_ci case uvec4_to_uvec2 10444e5c31af7Sopenharmony_ci expect compile_fail 10445e5c31af7Sopenharmony_ci version 310 es 10446e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10447e5c31af7Sopenharmony_ci values 10448e5c31af7Sopenharmony_ci { 10449e5c31af7Sopenharmony_ci input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 10450e5c31af7Sopenharmony_ci output uvec2 out0 = [ uvec2(2, 3) | uvec2(2, 3) | uvec2(2, 3) ]; 10451e5c31af7Sopenharmony_ci } 10452e5c31af7Sopenharmony_ci 10453e5c31af7Sopenharmony_ci both "" 10454e5c31af7Sopenharmony_ci #version 310 es 10455e5c31af7Sopenharmony_ci precision highp float; 10456e5c31af7Sopenharmony_ci ${DECLARATIONS} 10457e5c31af7Sopenharmony_ci 10458e5c31af7Sopenharmony_ci void main() 10459e5c31af7Sopenharmony_ci { 10460e5c31af7Sopenharmony_ci ${SETUP} 10461e5c31af7Sopenharmony_ci out0 = in0 + ivec2(2, 3); 10462e5c31af7Sopenharmony_ci ${OUTPUT} 10463e5c31af7Sopenharmony_ci } 10464e5c31af7Sopenharmony_ci "" 10465e5c31af7Sopenharmony_ci end 10466e5c31af7Sopenharmony_ci case uvec4_to_ivec3 10467e5c31af7Sopenharmony_ci expect compile_fail 10468e5c31af7Sopenharmony_ci version 310 es 10469e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10470e5c31af7Sopenharmony_ci values 10471e5c31af7Sopenharmony_ci { 10472e5c31af7Sopenharmony_ci input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 10473e5c31af7Sopenharmony_ci output ivec3 out0 = [ ivec3(1, 2, 3) | ivec3(1, 2, 3) | ivec3(1, 2, 3) ]; 10474e5c31af7Sopenharmony_ci } 10475e5c31af7Sopenharmony_ci 10476e5c31af7Sopenharmony_ci both "" 10477e5c31af7Sopenharmony_ci #version 310 es 10478e5c31af7Sopenharmony_ci precision highp float; 10479e5c31af7Sopenharmony_ci ${DECLARATIONS} 10480e5c31af7Sopenharmony_ci 10481e5c31af7Sopenharmony_ci void main() 10482e5c31af7Sopenharmony_ci { 10483e5c31af7Sopenharmony_ci ${SETUP} 10484e5c31af7Sopenharmony_ci out0 = in0 + ivec3(1, 2, 3); 10485e5c31af7Sopenharmony_ci ${OUTPUT} 10486e5c31af7Sopenharmony_ci } 10487e5c31af7Sopenharmony_ci "" 10488e5c31af7Sopenharmony_ci end 10489e5c31af7Sopenharmony_ci case uvec4_to_uvec3 10490e5c31af7Sopenharmony_ci expect compile_fail 10491e5c31af7Sopenharmony_ci version 310 es 10492e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10493e5c31af7Sopenharmony_ci values 10494e5c31af7Sopenharmony_ci { 10495e5c31af7Sopenharmony_ci input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 10496e5c31af7Sopenharmony_ci output uvec3 out0 = [ uvec3(2, 3, 5) | uvec3(2, 3, 5) | uvec3(2, 3, 5) ]; 10497e5c31af7Sopenharmony_ci } 10498e5c31af7Sopenharmony_ci 10499e5c31af7Sopenharmony_ci both "" 10500e5c31af7Sopenharmony_ci #version 310 es 10501e5c31af7Sopenharmony_ci precision highp float; 10502e5c31af7Sopenharmony_ci ${DECLARATIONS} 10503e5c31af7Sopenharmony_ci 10504e5c31af7Sopenharmony_ci void main() 10505e5c31af7Sopenharmony_ci { 10506e5c31af7Sopenharmony_ci ${SETUP} 10507e5c31af7Sopenharmony_ci out0 = in0 + ivec3(2, 3, 5); 10508e5c31af7Sopenharmony_ci ${OUTPUT} 10509e5c31af7Sopenharmony_ci } 10510e5c31af7Sopenharmony_ci "" 10511e5c31af7Sopenharmony_ci end 10512e5c31af7Sopenharmony_ci case uvec4_to_ivec4 10513e5c31af7Sopenharmony_ci expect compile_fail 10514e5c31af7Sopenharmony_ci version 310 es 10515e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10516e5c31af7Sopenharmony_ci values 10517e5c31af7Sopenharmony_ci { 10518e5c31af7Sopenharmony_ci input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 10519e5c31af7Sopenharmony_ci output ivec4 out0 = [ ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) ]; 10520e5c31af7Sopenharmony_ci } 10521e5c31af7Sopenharmony_ci 10522e5c31af7Sopenharmony_ci both "" 10523e5c31af7Sopenharmony_ci #version 310 es 10524e5c31af7Sopenharmony_ci precision highp float; 10525e5c31af7Sopenharmony_ci ${DECLARATIONS} 10526e5c31af7Sopenharmony_ci 10527e5c31af7Sopenharmony_ci void main() 10528e5c31af7Sopenharmony_ci { 10529e5c31af7Sopenharmony_ci ${SETUP} 10530e5c31af7Sopenharmony_ci out0 = in0 + ivec4(1, 2, 3, 4); 10531e5c31af7Sopenharmony_ci ${OUTPUT} 10532e5c31af7Sopenharmony_ci } 10533e5c31af7Sopenharmony_ci "" 10534e5c31af7Sopenharmony_ci end 10535e5c31af7Sopenharmony_ci case uvec4_to_vec2 10536e5c31af7Sopenharmony_ci expect compile_fail 10537e5c31af7Sopenharmony_ci version 310 es 10538e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10539e5c31af7Sopenharmony_ci values 10540e5c31af7Sopenharmony_ci { 10541e5c31af7Sopenharmony_ci input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 10542e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(1.0, 2.0) | vec2(1.0, 2.0) | vec2(1.0, 2.0) ]; 10543e5c31af7Sopenharmony_ci } 10544e5c31af7Sopenharmony_ci 10545e5c31af7Sopenharmony_ci both "" 10546e5c31af7Sopenharmony_ci #version 310 es 10547e5c31af7Sopenharmony_ci precision highp float; 10548e5c31af7Sopenharmony_ci ${DECLARATIONS} 10549e5c31af7Sopenharmony_ci 10550e5c31af7Sopenharmony_ci void main() 10551e5c31af7Sopenharmony_ci { 10552e5c31af7Sopenharmony_ci ${SETUP} 10553e5c31af7Sopenharmony_ci out0 = in0 + vec2(1.0, 2.0); 10554e5c31af7Sopenharmony_ci ${OUTPUT} 10555e5c31af7Sopenharmony_ci } 10556e5c31af7Sopenharmony_ci "" 10557e5c31af7Sopenharmony_ci end 10558e5c31af7Sopenharmony_ci case uvec4_to_vec3 10559e5c31af7Sopenharmony_ci expect compile_fail 10560e5c31af7Sopenharmony_ci version 310 es 10561e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10562e5c31af7Sopenharmony_ci values 10563e5c31af7Sopenharmony_ci { 10564e5c31af7Sopenharmony_ci input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 10565e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(1.0, 2.0, 3.0) | vec3(1.0, 2.0, 3.0) | vec3(1.0, 2.0, 3.0) ]; 10566e5c31af7Sopenharmony_ci } 10567e5c31af7Sopenharmony_ci 10568e5c31af7Sopenharmony_ci both "" 10569e5c31af7Sopenharmony_ci #version 310 es 10570e5c31af7Sopenharmony_ci precision highp float; 10571e5c31af7Sopenharmony_ci ${DECLARATIONS} 10572e5c31af7Sopenharmony_ci 10573e5c31af7Sopenharmony_ci void main() 10574e5c31af7Sopenharmony_ci { 10575e5c31af7Sopenharmony_ci ${SETUP} 10576e5c31af7Sopenharmony_ci out0 = in0 + vec3(1.0, 2.0, 3.0); 10577e5c31af7Sopenharmony_ci ${OUTPUT} 10578e5c31af7Sopenharmony_ci } 10579e5c31af7Sopenharmony_ci "" 10580e5c31af7Sopenharmony_ci end 10581e5c31af7Sopenharmony_ci case float_to_int 10582e5c31af7Sopenharmony_ci expect compile_fail 10583e5c31af7Sopenharmony_ci version 310 es 10584e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10585e5c31af7Sopenharmony_ci values 10586e5c31af7Sopenharmony_ci { 10587e5c31af7Sopenharmony_ci input float in0 = [ 2.0 | 1.0 | 1.0 | 3.0 | 5.0 ]; 10588e5c31af7Sopenharmony_ci output int out0 = [ 2 | 2 | 2 | 2 | 2 ]; 10589e5c31af7Sopenharmony_ci } 10590e5c31af7Sopenharmony_ci 10591e5c31af7Sopenharmony_ci both "" 10592e5c31af7Sopenharmony_ci #version 310 es 10593e5c31af7Sopenharmony_ci precision highp float; 10594e5c31af7Sopenharmony_ci ${DECLARATIONS} 10595e5c31af7Sopenharmony_ci 10596e5c31af7Sopenharmony_ci void main() 10597e5c31af7Sopenharmony_ci { 10598e5c31af7Sopenharmony_ci ${SETUP} 10599e5c31af7Sopenharmony_ci out0 = in0 + 2; 10600e5c31af7Sopenharmony_ci ${OUTPUT} 10601e5c31af7Sopenharmony_ci } 10602e5c31af7Sopenharmony_ci "" 10603e5c31af7Sopenharmony_ci end 10604e5c31af7Sopenharmony_ci case float_to_uint 10605e5c31af7Sopenharmony_ci expect compile_fail 10606e5c31af7Sopenharmony_ci version 310 es 10607e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10608e5c31af7Sopenharmony_ci values 10609e5c31af7Sopenharmony_ci { 10610e5c31af7Sopenharmony_ci input float in0 = [ 2.0 | 1.0 | 1.0 | 3.0 | 5.0 ]; 10611e5c31af7Sopenharmony_ci output uint out0 = [ 1 | 1 | 1 | 1 | 1 ]; 10612e5c31af7Sopenharmony_ci } 10613e5c31af7Sopenharmony_ci 10614e5c31af7Sopenharmony_ci both "" 10615e5c31af7Sopenharmony_ci #version 310 es 10616e5c31af7Sopenharmony_ci precision highp float; 10617e5c31af7Sopenharmony_ci ${DECLARATIONS} 10618e5c31af7Sopenharmony_ci 10619e5c31af7Sopenharmony_ci void main() 10620e5c31af7Sopenharmony_ci { 10621e5c31af7Sopenharmony_ci ${SETUP} 10622e5c31af7Sopenharmony_ci out0 = in0 + 1; 10623e5c31af7Sopenharmony_ci ${OUTPUT} 10624e5c31af7Sopenharmony_ci } 10625e5c31af7Sopenharmony_ci "" 10626e5c31af7Sopenharmony_ci end 10627e5c31af7Sopenharmony_ci case float_to_ivec2 10628e5c31af7Sopenharmony_ci expect compile_fail 10629e5c31af7Sopenharmony_ci version 310 es 10630e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10631e5c31af7Sopenharmony_ci values 10632e5c31af7Sopenharmony_ci { 10633e5c31af7Sopenharmony_ci input float in0 = [ 2.0 | 1.0 | 1.0 | 3.0 | 5.0 ]; 10634e5c31af7Sopenharmony_ci output ivec2 out0 = [ ivec2(1, 2) | ivec2(1, 2) | ivec2(1, 2) | ivec2(1, 2) | ivec2(1, 2) ]; 10635e5c31af7Sopenharmony_ci } 10636e5c31af7Sopenharmony_ci 10637e5c31af7Sopenharmony_ci both "" 10638e5c31af7Sopenharmony_ci #version 310 es 10639e5c31af7Sopenharmony_ci precision highp float; 10640e5c31af7Sopenharmony_ci ${DECLARATIONS} 10641e5c31af7Sopenharmony_ci 10642e5c31af7Sopenharmony_ci void main() 10643e5c31af7Sopenharmony_ci { 10644e5c31af7Sopenharmony_ci ${SETUP} 10645e5c31af7Sopenharmony_ci out0 = in0 + ivec2(1, 2); 10646e5c31af7Sopenharmony_ci ${OUTPUT} 10647e5c31af7Sopenharmony_ci } 10648e5c31af7Sopenharmony_ci "" 10649e5c31af7Sopenharmony_ci end 10650e5c31af7Sopenharmony_ci case float_to_uvec2 10651e5c31af7Sopenharmony_ci expect compile_fail 10652e5c31af7Sopenharmony_ci version 310 es 10653e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10654e5c31af7Sopenharmony_ci values 10655e5c31af7Sopenharmony_ci { 10656e5c31af7Sopenharmony_ci input float in0 = [ 2.0 | 1.0 | 1.0 | 3.0 | 5.0 ]; 10657e5c31af7Sopenharmony_ci output uvec2 out0 = [ uvec2(2, 3) | uvec2(2, 3) | uvec2(2, 3) | uvec2(2, 3) | uvec2(2, 3) ]; 10658e5c31af7Sopenharmony_ci } 10659e5c31af7Sopenharmony_ci 10660e5c31af7Sopenharmony_ci both "" 10661e5c31af7Sopenharmony_ci #version 310 es 10662e5c31af7Sopenharmony_ci precision highp float; 10663e5c31af7Sopenharmony_ci ${DECLARATIONS} 10664e5c31af7Sopenharmony_ci 10665e5c31af7Sopenharmony_ci void main() 10666e5c31af7Sopenharmony_ci { 10667e5c31af7Sopenharmony_ci ${SETUP} 10668e5c31af7Sopenharmony_ci out0 = in0 + ivec2(2, 3); 10669e5c31af7Sopenharmony_ci ${OUTPUT} 10670e5c31af7Sopenharmony_ci } 10671e5c31af7Sopenharmony_ci "" 10672e5c31af7Sopenharmony_ci end 10673e5c31af7Sopenharmony_ci case float_to_ivec3 10674e5c31af7Sopenharmony_ci expect compile_fail 10675e5c31af7Sopenharmony_ci version 310 es 10676e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10677e5c31af7Sopenharmony_ci values 10678e5c31af7Sopenharmony_ci { 10679e5c31af7Sopenharmony_ci input float in0 = [ 2.0 | 1.0 | 1.0 | 3.0 | 5.0 ]; 10680e5c31af7Sopenharmony_ci output ivec3 out0 = [ ivec3(1, 2, 3) | ivec3(1, 2, 3) | ivec3(1, 2, 3) | ivec3(1, 2, 3) | ivec3(1, 2, 3) ]; 10681e5c31af7Sopenharmony_ci } 10682e5c31af7Sopenharmony_ci 10683e5c31af7Sopenharmony_ci both "" 10684e5c31af7Sopenharmony_ci #version 310 es 10685e5c31af7Sopenharmony_ci precision highp float; 10686e5c31af7Sopenharmony_ci ${DECLARATIONS} 10687e5c31af7Sopenharmony_ci 10688e5c31af7Sopenharmony_ci void main() 10689e5c31af7Sopenharmony_ci { 10690e5c31af7Sopenharmony_ci ${SETUP} 10691e5c31af7Sopenharmony_ci out0 = in0 + ivec3(1, 2, 3); 10692e5c31af7Sopenharmony_ci ${OUTPUT} 10693e5c31af7Sopenharmony_ci } 10694e5c31af7Sopenharmony_ci "" 10695e5c31af7Sopenharmony_ci end 10696e5c31af7Sopenharmony_ci case float_to_uvec3 10697e5c31af7Sopenharmony_ci expect compile_fail 10698e5c31af7Sopenharmony_ci version 310 es 10699e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10700e5c31af7Sopenharmony_ci values 10701e5c31af7Sopenharmony_ci { 10702e5c31af7Sopenharmony_ci input float in0 = [ 2.0 | 1.0 | 1.0 | 3.0 | 5.0 ]; 10703e5c31af7Sopenharmony_ci output uvec3 out0 = [ uvec3(2, 3, 5) | uvec3(2, 3, 5) | uvec3(2, 3, 5) | uvec3(2, 3, 5) | uvec3(2, 3, 5) ]; 10704e5c31af7Sopenharmony_ci } 10705e5c31af7Sopenharmony_ci 10706e5c31af7Sopenharmony_ci both "" 10707e5c31af7Sopenharmony_ci #version 310 es 10708e5c31af7Sopenharmony_ci precision highp float; 10709e5c31af7Sopenharmony_ci ${DECLARATIONS} 10710e5c31af7Sopenharmony_ci 10711e5c31af7Sopenharmony_ci void main() 10712e5c31af7Sopenharmony_ci { 10713e5c31af7Sopenharmony_ci ${SETUP} 10714e5c31af7Sopenharmony_ci out0 = in0 + ivec3(2, 3, 5); 10715e5c31af7Sopenharmony_ci ${OUTPUT} 10716e5c31af7Sopenharmony_ci } 10717e5c31af7Sopenharmony_ci "" 10718e5c31af7Sopenharmony_ci end 10719e5c31af7Sopenharmony_ci case float_to_ivec4 10720e5c31af7Sopenharmony_ci expect compile_fail 10721e5c31af7Sopenharmony_ci version 310 es 10722e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10723e5c31af7Sopenharmony_ci values 10724e5c31af7Sopenharmony_ci { 10725e5c31af7Sopenharmony_ci input float in0 = [ 2.0 | 1.0 | 1.0 | 3.0 | 5.0 ]; 10726e5c31af7Sopenharmony_ci output ivec4 out0 = [ ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) ]; 10727e5c31af7Sopenharmony_ci } 10728e5c31af7Sopenharmony_ci 10729e5c31af7Sopenharmony_ci both "" 10730e5c31af7Sopenharmony_ci #version 310 es 10731e5c31af7Sopenharmony_ci precision highp float; 10732e5c31af7Sopenharmony_ci ${DECLARATIONS} 10733e5c31af7Sopenharmony_ci 10734e5c31af7Sopenharmony_ci void main() 10735e5c31af7Sopenharmony_ci { 10736e5c31af7Sopenharmony_ci ${SETUP} 10737e5c31af7Sopenharmony_ci out0 = in0 + ivec4(1, 2, 3, 4); 10738e5c31af7Sopenharmony_ci ${OUTPUT} 10739e5c31af7Sopenharmony_ci } 10740e5c31af7Sopenharmony_ci "" 10741e5c31af7Sopenharmony_ci end 10742e5c31af7Sopenharmony_ci case float_to_uvec4 10743e5c31af7Sopenharmony_ci expect compile_fail 10744e5c31af7Sopenharmony_ci version 310 es 10745e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10746e5c31af7Sopenharmony_ci values 10747e5c31af7Sopenharmony_ci { 10748e5c31af7Sopenharmony_ci input float in0 = [ 2.0 | 1.0 | 1.0 | 3.0 | 5.0 ]; 10749e5c31af7Sopenharmony_ci output uvec4 out0 = [ uvec4(2, 3, 5, 8) | uvec4(2, 3, 5, 8) | uvec4(2, 3, 5, 8) | uvec4(2, 3, 5, 8) | uvec4(2, 3, 5, 8) ]; 10750e5c31af7Sopenharmony_ci } 10751e5c31af7Sopenharmony_ci 10752e5c31af7Sopenharmony_ci both "" 10753e5c31af7Sopenharmony_ci #version 310 es 10754e5c31af7Sopenharmony_ci precision highp float; 10755e5c31af7Sopenharmony_ci ${DECLARATIONS} 10756e5c31af7Sopenharmony_ci 10757e5c31af7Sopenharmony_ci void main() 10758e5c31af7Sopenharmony_ci { 10759e5c31af7Sopenharmony_ci ${SETUP} 10760e5c31af7Sopenharmony_ci out0 = in0 + ivec4(2, 3, 5, 8); 10761e5c31af7Sopenharmony_ci ${OUTPUT} 10762e5c31af7Sopenharmony_ci } 10763e5c31af7Sopenharmony_ci "" 10764e5c31af7Sopenharmony_ci end 10765e5c31af7Sopenharmony_ci case vec2_to_int 10766e5c31af7Sopenharmony_ci expect compile_fail 10767e5c31af7Sopenharmony_ci version 310 es 10768e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10769e5c31af7Sopenharmony_ci values 10770e5c31af7Sopenharmony_ci { 10771e5c31af7Sopenharmony_ci input vec2 in0 = [ vec2(1.0, 2.0) | vec2(2.0, 1.0) | vec2(3.0, 7.0) ]; 10772e5c31af7Sopenharmony_ci output int out0 = [ 2 | 2 | 2 ]; 10773e5c31af7Sopenharmony_ci } 10774e5c31af7Sopenharmony_ci 10775e5c31af7Sopenharmony_ci both "" 10776e5c31af7Sopenharmony_ci #version 310 es 10777e5c31af7Sopenharmony_ci precision highp float; 10778e5c31af7Sopenharmony_ci ${DECLARATIONS} 10779e5c31af7Sopenharmony_ci 10780e5c31af7Sopenharmony_ci void main() 10781e5c31af7Sopenharmony_ci { 10782e5c31af7Sopenharmony_ci ${SETUP} 10783e5c31af7Sopenharmony_ci out0 = in0 + 2; 10784e5c31af7Sopenharmony_ci ${OUTPUT} 10785e5c31af7Sopenharmony_ci } 10786e5c31af7Sopenharmony_ci "" 10787e5c31af7Sopenharmony_ci end 10788e5c31af7Sopenharmony_ci case vec2_to_uint 10789e5c31af7Sopenharmony_ci expect compile_fail 10790e5c31af7Sopenharmony_ci version 310 es 10791e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10792e5c31af7Sopenharmony_ci values 10793e5c31af7Sopenharmony_ci { 10794e5c31af7Sopenharmony_ci input vec2 in0 = [ vec2(1.0, 2.0) | vec2(2.0, 1.0) | vec2(3.0, 7.0) ]; 10795e5c31af7Sopenharmony_ci output uint out0 = [ 1 | 1 | 1 ]; 10796e5c31af7Sopenharmony_ci } 10797e5c31af7Sopenharmony_ci 10798e5c31af7Sopenharmony_ci both "" 10799e5c31af7Sopenharmony_ci #version 310 es 10800e5c31af7Sopenharmony_ci precision highp float; 10801e5c31af7Sopenharmony_ci ${DECLARATIONS} 10802e5c31af7Sopenharmony_ci 10803e5c31af7Sopenharmony_ci void main() 10804e5c31af7Sopenharmony_ci { 10805e5c31af7Sopenharmony_ci ${SETUP} 10806e5c31af7Sopenharmony_ci out0 = in0 + 1; 10807e5c31af7Sopenharmony_ci ${OUTPUT} 10808e5c31af7Sopenharmony_ci } 10809e5c31af7Sopenharmony_ci "" 10810e5c31af7Sopenharmony_ci end 10811e5c31af7Sopenharmony_ci case vec2_to_ivec2 10812e5c31af7Sopenharmony_ci expect compile_fail 10813e5c31af7Sopenharmony_ci version 310 es 10814e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10815e5c31af7Sopenharmony_ci values 10816e5c31af7Sopenharmony_ci { 10817e5c31af7Sopenharmony_ci input vec2 in0 = [ vec2(1.0, 2.0) | vec2(2.0, 1.0) | vec2(3.0, 7.0) ]; 10818e5c31af7Sopenharmony_ci output ivec2 out0 = [ ivec2(1, 2) | ivec2(1, 2) | ivec2(1, 2) ]; 10819e5c31af7Sopenharmony_ci } 10820e5c31af7Sopenharmony_ci 10821e5c31af7Sopenharmony_ci both "" 10822e5c31af7Sopenharmony_ci #version 310 es 10823e5c31af7Sopenharmony_ci precision highp float; 10824e5c31af7Sopenharmony_ci ${DECLARATIONS} 10825e5c31af7Sopenharmony_ci 10826e5c31af7Sopenharmony_ci void main() 10827e5c31af7Sopenharmony_ci { 10828e5c31af7Sopenharmony_ci ${SETUP} 10829e5c31af7Sopenharmony_ci out0 = in0 + ivec2(1, 2); 10830e5c31af7Sopenharmony_ci ${OUTPUT} 10831e5c31af7Sopenharmony_ci } 10832e5c31af7Sopenharmony_ci "" 10833e5c31af7Sopenharmony_ci end 10834e5c31af7Sopenharmony_ci case vec2_to_uvec2 10835e5c31af7Sopenharmony_ci expect compile_fail 10836e5c31af7Sopenharmony_ci version 310 es 10837e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10838e5c31af7Sopenharmony_ci values 10839e5c31af7Sopenharmony_ci { 10840e5c31af7Sopenharmony_ci input vec2 in0 = [ vec2(1.0, 2.0) | vec2(2.0, 1.0) | vec2(3.0, 7.0) ]; 10841e5c31af7Sopenharmony_ci output uvec2 out0 = [ uvec2(2, 3) | uvec2(2, 3) | uvec2(2, 3) ]; 10842e5c31af7Sopenharmony_ci } 10843e5c31af7Sopenharmony_ci 10844e5c31af7Sopenharmony_ci both "" 10845e5c31af7Sopenharmony_ci #version 310 es 10846e5c31af7Sopenharmony_ci precision highp float; 10847e5c31af7Sopenharmony_ci ${DECLARATIONS} 10848e5c31af7Sopenharmony_ci 10849e5c31af7Sopenharmony_ci void main() 10850e5c31af7Sopenharmony_ci { 10851e5c31af7Sopenharmony_ci ${SETUP} 10852e5c31af7Sopenharmony_ci out0 = in0 + ivec2(2, 3); 10853e5c31af7Sopenharmony_ci ${OUTPUT} 10854e5c31af7Sopenharmony_ci } 10855e5c31af7Sopenharmony_ci "" 10856e5c31af7Sopenharmony_ci end 10857e5c31af7Sopenharmony_ci case vec2_to_ivec3 10858e5c31af7Sopenharmony_ci expect compile_fail 10859e5c31af7Sopenharmony_ci version 310 es 10860e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10861e5c31af7Sopenharmony_ci values 10862e5c31af7Sopenharmony_ci { 10863e5c31af7Sopenharmony_ci input vec2 in0 = [ vec2(1.0, 2.0) | vec2(2.0, 1.0) | vec2(3.0, 7.0) ]; 10864e5c31af7Sopenharmony_ci output ivec3 out0 = [ ivec3(1, 2, 3) | ivec3(1, 2, 3) | ivec3(1, 2, 3) ]; 10865e5c31af7Sopenharmony_ci } 10866e5c31af7Sopenharmony_ci 10867e5c31af7Sopenharmony_ci both "" 10868e5c31af7Sopenharmony_ci #version 310 es 10869e5c31af7Sopenharmony_ci precision highp float; 10870e5c31af7Sopenharmony_ci ${DECLARATIONS} 10871e5c31af7Sopenharmony_ci 10872e5c31af7Sopenharmony_ci void main() 10873e5c31af7Sopenharmony_ci { 10874e5c31af7Sopenharmony_ci ${SETUP} 10875e5c31af7Sopenharmony_ci out0 = in0 + ivec3(1, 2, 3); 10876e5c31af7Sopenharmony_ci ${OUTPUT} 10877e5c31af7Sopenharmony_ci } 10878e5c31af7Sopenharmony_ci "" 10879e5c31af7Sopenharmony_ci end 10880e5c31af7Sopenharmony_ci case vec2_to_uvec3 10881e5c31af7Sopenharmony_ci expect compile_fail 10882e5c31af7Sopenharmony_ci version 310 es 10883e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10884e5c31af7Sopenharmony_ci values 10885e5c31af7Sopenharmony_ci { 10886e5c31af7Sopenharmony_ci input vec2 in0 = [ vec2(1.0, 2.0) | vec2(2.0, 1.0) | vec2(3.0, 7.0) ]; 10887e5c31af7Sopenharmony_ci output uvec3 out0 = [ uvec3(2, 3, 5) | uvec3(2, 3, 5) | uvec3(2, 3, 5) ]; 10888e5c31af7Sopenharmony_ci } 10889e5c31af7Sopenharmony_ci 10890e5c31af7Sopenharmony_ci both "" 10891e5c31af7Sopenharmony_ci #version 310 es 10892e5c31af7Sopenharmony_ci precision highp float; 10893e5c31af7Sopenharmony_ci ${DECLARATIONS} 10894e5c31af7Sopenharmony_ci 10895e5c31af7Sopenharmony_ci void main() 10896e5c31af7Sopenharmony_ci { 10897e5c31af7Sopenharmony_ci ${SETUP} 10898e5c31af7Sopenharmony_ci out0 = in0 + ivec3(2, 3, 5); 10899e5c31af7Sopenharmony_ci ${OUTPUT} 10900e5c31af7Sopenharmony_ci } 10901e5c31af7Sopenharmony_ci "" 10902e5c31af7Sopenharmony_ci end 10903e5c31af7Sopenharmony_ci case vec2_to_ivec4 10904e5c31af7Sopenharmony_ci expect compile_fail 10905e5c31af7Sopenharmony_ci version 310 es 10906e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10907e5c31af7Sopenharmony_ci values 10908e5c31af7Sopenharmony_ci { 10909e5c31af7Sopenharmony_ci input vec2 in0 = [ vec2(1.0, 2.0) | vec2(2.0, 1.0) | vec2(3.0, 7.0) ]; 10910e5c31af7Sopenharmony_ci output ivec4 out0 = [ ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) ]; 10911e5c31af7Sopenharmony_ci } 10912e5c31af7Sopenharmony_ci 10913e5c31af7Sopenharmony_ci both "" 10914e5c31af7Sopenharmony_ci #version 310 es 10915e5c31af7Sopenharmony_ci precision highp float; 10916e5c31af7Sopenharmony_ci ${DECLARATIONS} 10917e5c31af7Sopenharmony_ci 10918e5c31af7Sopenharmony_ci void main() 10919e5c31af7Sopenharmony_ci { 10920e5c31af7Sopenharmony_ci ${SETUP} 10921e5c31af7Sopenharmony_ci out0 = in0 + ivec4(1, 2, 3, 4); 10922e5c31af7Sopenharmony_ci ${OUTPUT} 10923e5c31af7Sopenharmony_ci } 10924e5c31af7Sopenharmony_ci "" 10925e5c31af7Sopenharmony_ci end 10926e5c31af7Sopenharmony_ci case vec2_to_uvec4 10927e5c31af7Sopenharmony_ci expect compile_fail 10928e5c31af7Sopenharmony_ci version 310 es 10929e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10930e5c31af7Sopenharmony_ci values 10931e5c31af7Sopenharmony_ci { 10932e5c31af7Sopenharmony_ci input vec2 in0 = [ vec2(1.0, 2.0) | vec2(2.0, 1.0) | vec2(3.0, 7.0) ]; 10933e5c31af7Sopenharmony_ci output uvec4 out0 = [ uvec4(2, 3, 5, 8) | uvec4(2, 3, 5, 8) | uvec4(2, 3, 5, 8) ]; 10934e5c31af7Sopenharmony_ci } 10935e5c31af7Sopenharmony_ci 10936e5c31af7Sopenharmony_ci both "" 10937e5c31af7Sopenharmony_ci #version 310 es 10938e5c31af7Sopenharmony_ci precision highp float; 10939e5c31af7Sopenharmony_ci ${DECLARATIONS} 10940e5c31af7Sopenharmony_ci 10941e5c31af7Sopenharmony_ci void main() 10942e5c31af7Sopenharmony_ci { 10943e5c31af7Sopenharmony_ci ${SETUP} 10944e5c31af7Sopenharmony_ci out0 = in0 + ivec4(2, 3, 5, 8); 10945e5c31af7Sopenharmony_ci ${OUTPUT} 10946e5c31af7Sopenharmony_ci } 10947e5c31af7Sopenharmony_ci "" 10948e5c31af7Sopenharmony_ci end 10949e5c31af7Sopenharmony_ci case vec2_to_vec3 10950e5c31af7Sopenharmony_ci expect compile_fail 10951e5c31af7Sopenharmony_ci version 310 es 10952e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10953e5c31af7Sopenharmony_ci values 10954e5c31af7Sopenharmony_ci { 10955e5c31af7Sopenharmony_ci input vec2 in0 = [ vec2(1.0, 2.0) | vec2(2.0, 1.0) | vec2(3.0, 7.0) ]; 10956e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(1.0, 2.0, 3.0) | vec3(1.0, 2.0, 3.0) | vec3(1.0, 2.0, 3.0) ]; 10957e5c31af7Sopenharmony_ci } 10958e5c31af7Sopenharmony_ci 10959e5c31af7Sopenharmony_ci both "" 10960e5c31af7Sopenharmony_ci #version 310 es 10961e5c31af7Sopenharmony_ci precision highp float; 10962e5c31af7Sopenharmony_ci ${DECLARATIONS} 10963e5c31af7Sopenharmony_ci 10964e5c31af7Sopenharmony_ci void main() 10965e5c31af7Sopenharmony_ci { 10966e5c31af7Sopenharmony_ci ${SETUP} 10967e5c31af7Sopenharmony_ci out0 = in0 + vec3(1.0, 2.0, 3.0); 10968e5c31af7Sopenharmony_ci ${OUTPUT} 10969e5c31af7Sopenharmony_ci } 10970e5c31af7Sopenharmony_ci "" 10971e5c31af7Sopenharmony_ci end 10972e5c31af7Sopenharmony_ci case vec2_to_vec4 10973e5c31af7Sopenharmony_ci expect compile_fail 10974e5c31af7Sopenharmony_ci version 310 es 10975e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10976e5c31af7Sopenharmony_ci values 10977e5c31af7Sopenharmony_ci { 10978e5c31af7Sopenharmony_ci input vec2 in0 = [ vec2(1.0, 2.0) | vec2(2.0, 1.0) | vec2(3.0, 7.0) ]; 10979e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(1.0, 2.0, 3.0, 4.0) | vec4(1.0, 2.0, 3.0, 4.0) | vec4(1.0, 2.0, 3.0, 4.0) ]; 10980e5c31af7Sopenharmony_ci } 10981e5c31af7Sopenharmony_ci 10982e5c31af7Sopenharmony_ci both "" 10983e5c31af7Sopenharmony_ci #version 310 es 10984e5c31af7Sopenharmony_ci precision highp float; 10985e5c31af7Sopenharmony_ci ${DECLARATIONS} 10986e5c31af7Sopenharmony_ci 10987e5c31af7Sopenharmony_ci void main() 10988e5c31af7Sopenharmony_ci { 10989e5c31af7Sopenharmony_ci ${SETUP} 10990e5c31af7Sopenharmony_ci out0 = in0 + vec4(1.0, 2.0, 3.0, 4.0); 10991e5c31af7Sopenharmony_ci ${OUTPUT} 10992e5c31af7Sopenharmony_ci } 10993e5c31af7Sopenharmony_ci "" 10994e5c31af7Sopenharmony_ci end 10995e5c31af7Sopenharmony_ci case vec3_to_int 10996e5c31af7Sopenharmony_ci expect compile_fail 10997e5c31af7Sopenharmony_ci version 310 es 10998e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10999e5c31af7Sopenharmony_ci values 11000e5c31af7Sopenharmony_ci { 11001e5c31af7Sopenharmony_ci input vec3 in0 = [ vec3(1.0, 2.0, 3.0) | vec3(2.0, 1.0, 2.0) | vec3(3.0, 7.0, 2.0) ]; 11002e5c31af7Sopenharmony_ci output int out0 = [ 2 | 2 | 2 ]; 11003e5c31af7Sopenharmony_ci } 11004e5c31af7Sopenharmony_ci 11005e5c31af7Sopenharmony_ci both "" 11006e5c31af7Sopenharmony_ci #version 310 es 11007e5c31af7Sopenharmony_ci precision highp float; 11008e5c31af7Sopenharmony_ci ${DECLARATIONS} 11009e5c31af7Sopenharmony_ci 11010e5c31af7Sopenharmony_ci void main() 11011e5c31af7Sopenharmony_ci { 11012e5c31af7Sopenharmony_ci ${SETUP} 11013e5c31af7Sopenharmony_ci out0 = in0 + 2; 11014e5c31af7Sopenharmony_ci ${OUTPUT} 11015e5c31af7Sopenharmony_ci } 11016e5c31af7Sopenharmony_ci "" 11017e5c31af7Sopenharmony_ci end 11018e5c31af7Sopenharmony_ci case vec3_to_uint 11019e5c31af7Sopenharmony_ci expect compile_fail 11020e5c31af7Sopenharmony_ci version 310 es 11021e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11022e5c31af7Sopenharmony_ci values 11023e5c31af7Sopenharmony_ci { 11024e5c31af7Sopenharmony_ci input vec3 in0 = [ vec3(1.0, 2.0, 3.0) | vec3(2.0, 1.0, 2.0) | vec3(3.0, 7.0, 2.0) ]; 11025e5c31af7Sopenharmony_ci output uint out0 = [ 1 | 1 | 1 ]; 11026e5c31af7Sopenharmony_ci } 11027e5c31af7Sopenharmony_ci 11028e5c31af7Sopenharmony_ci both "" 11029e5c31af7Sopenharmony_ci #version 310 es 11030e5c31af7Sopenharmony_ci precision highp float; 11031e5c31af7Sopenharmony_ci ${DECLARATIONS} 11032e5c31af7Sopenharmony_ci 11033e5c31af7Sopenharmony_ci void main() 11034e5c31af7Sopenharmony_ci { 11035e5c31af7Sopenharmony_ci ${SETUP} 11036e5c31af7Sopenharmony_ci out0 = in0 + 1; 11037e5c31af7Sopenharmony_ci ${OUTPUT} 11038e5c31af7Sopenharmony_ci } 11039e5c31af7Sopenharmony_ci "" 11040e5c31af7Sopenharmony_ci end 11041e5c31af7Sopenharmony_ci case vec3_to_ivec2 11042e5c31af7Sopenharmony_ci expect compile_fail 11043e5c31af7Sopenharmony_ci version 310 es 11044e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11045e5c31af7Sopenharmony_ci values 11046e5c31af7Sopenharmony_ci { 11047e5c31af7Sopenharmony_ci input vec3 in0 = [ vec3(1.0, 2.0, 3.0) | vec3(2.0, 1.0, 2.0) | vec3(3.0, 7.0, 2.0) ]; 11048e5c31af7Sopenharmony_ci output ivec2 out0 = [ ivec2(1, 2) | ivec2(1, 2) | ivec2(1, 2) ]; 11049e5c31af7Sopenharmony_ci } 11050e5c31af7Sopenharmony_ci 11051e5c31af7Sopenharmony_ci both "" 11052e5c31af7Sopenharmony_ci #version 310 es 11053e5c31af7Sopenharmony_ci precision highp float; 11054e5c31af7Sopenharmony_ci ${DECLARATIONS} 11055e5c31af7Sopenharmony_ci 11056e5c31af7Sopenharmony_ci void main() 11057e5c31af7Sopenharmony_ci { 11058e5c31af7Sopenharmony_ci ${SETUP} 11059e5c31af7Sopenharmony_ci out0 = in0 + ivec2(1, 2); 11060e5c31af7Sopenharmony_ci ${OUTPUT} 11061e5c31af7Sopenharmony_ci } 11062e5c31af7Sopenharmony_ci "" 11063e5c31af7Sopenharmony_ci end 11064e5c31af7Sopenharmony_ci case vec3_to_uvec2 11065e5c31af7Sopenharmony_ci expect compile_fail 11066e5c31af7Sopenharmony_ci version 310 es 11067e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11068e5c31af7Sopenharmony_ci values 11069e5c31af7Sopenharmony_ci { 11070e5c31af7Sopenharmony_ci input vec3 in0 = [ vec3(1.0, 2.0, 3.0) | vec3(2.0, 1.0, 2.0) | vec3(3.0, 7.0, 2.0) ]; 11071e5c31af7Sopenharmony_ci output uvec2 out0 = [ uvec2(2, 3) | uvec2(2, 3) | uvec2(2, 3) ]; 11072e5c31af7Sopenharmony_ci } 11073e5c31af7Sopenharmony_ci 11074e5c31af7Sopenharmony_ci both "" 11075e5c31af7Sopenharmony_ci #version 310 es 11076e5c31af7Sopenharmony_ci precision highp float; 11077e5c31af7Sopenharmony_ci ${DECLARATIONS} 11078e5c31af7Sopenharmony_ci 11079e5c31af7Sopenharmony_ci void main() 11080e5c31af7Sopenharmony_ci { 11081e5c31af7Sopenharmony_ci ${SETUP} 11082e5c31af7Sopenharmony_ci out0 = in0 + ivec2(2, 3); 11083e5c31af7Sopenharmony_ci ${OUTPUT} 11084e5c31af7Sopenharmony_ci } 11085e5c31af7Sopenharmony_ci "" 11086e5c31af7Sopenharmony_ci end 11087e5c31af7Sopenharmony_ci case vec3_to_ivec3 11088e5c31af7Sopenharmony_ci expect compile_fail 11089e5c31af7Sopenharmony_ci version 310 es 11090e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11091e5c31af7Sopenharmony_ci values 11092e5c31af7Sopenharmony_ci { 11093e5c31af7Sopenharmony_ci input vec3 in0 = [ vec3(1.0, 2.0, 3.0) | vec3(2.0, 1.0, 2.0) | vec3(3.0, 7.0, 2.0) ]; 11094e5c31af7Sopenharmony_ci output ivec3 out0 = [ ivec3(1, 2, 3) | ivec3(1, 2, 3) | ivec3(1, 2, 3) ]; 11095e5c31af7Sopenharmony_ci } 11096e5c31af7Sopenharmony_ci 11097e5c31af7Sopenharmony_ci both "" 11098e5c31af7Sopenharmony_ci #version 310 es 11099e5c31af7Sopenharmony_ci precision highp float; 11100e5c31af7Sopenharmony_ci ${DECLARATIONS} 11101e5c31af7Sopenharmony_ci 11102e5c31af7Sopenharmony_ci void main() 11103e5c31af7Sopenharmony_ci { 11104e5c31af7Sopenharmony_ci ${SETUP} 11105e5c31af7Sopenharmony_ci out0 = in0 + ivec3(1, 2, 3); 11106e5c31af7Sopenharmony_ci ${OUTPUT} 11107e5c31af7Sopenharmony_ci } 11108e5c31af7Sopenharmony_ci "" 11109e5c31af7Sopenharmony_ci end 11110e5c31af7Sopenharmony_ci case vec3_to_uvec3 11111e5c31af7Sopenharmony_ci expect compile_fail 11112e5c31af7Sopenharmony_ci version 310 es 11113e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11114e5c31af7Sopenharmony_ci values 11115e5c31af7Sopenharmony_ci { 11116e5c31af7Sopenharmony_ci input vec3 in0 = [ vec3(1.0, 2.0, 3.0) | vec3(2.0, 1.0, 2.0) | vec3(3.0, 7.0, 2.0) ]; 11117e5c31af7Sopenharmony_ci output uvec3 out0 = [ uvec3(2, 3, 5) | uvec3(2, 3, 5) | uvec3(2, 3, 5) ]; 11118e5c31af7Sopenharmony_ci } 11119e5c31af7Sopenharmony_ci 11120e5c31af7Sopenharmony_ci both "" 11121e5c31af7Sopenharmony_ci #version 310 es 11122e5c31af7Sopenharmony_ci precision highp float; 11123e5c31af7Sopenharmony_ci ${DECLARATIONS} 11124e5c31af7Sopenharmony_ci 11125e5c31af7Sopenharmony_ci void main() 11126e5c31af7Sopenharmony_ci { 11127e5c31af7Sopenharmony_ci ${SETUP} 11128e5c31af7Sopenharmony_ci out0 = in0 + ivec3(2, 3, 5); 11129e5c31af7Sopenharmony_ci ${OUTPUT} 11130e5c31af7Sopenharmony_ci } 11131e5c31af7Sopenharmony_ci "" 11132e5c31af7Sopenharmony_ci end 11133e5c31af7Sopenharmony_ci case vec3_to_ivec4 11134e5c31af7Sopenharmony_ci expect compile_fail 11135e5c31af7Sopenharmony_ci version 310 es 11136e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11137e5c31af7Sopenharmony_ci values 11138e5c31af7Sopenharmony_ci { 11139e5c31af7Sopenharmony_ci input vec3 in0 = [ vec3(1.0, 2.0, 3.0) | vec3(2.0, 1.0, 2.0) | vec3(3.0, 7.0, 2.0) ]; 11140e5c31af7Sopenharmony_ci output ivec4 out0 = [ ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) ]; 11141e5c31af7Sopenharmony_ci } 11142e5c31af7Sopenharmony_ci 11143e5c31af7Sopenharmony_ci both "" 11144e5c31af7Sopenharmony_ci #version 310 es 11145e5c31af7Sopenharmony_ci precision highp float; 11146e5c31af7Sopenharmony_ci ${DECLARATIONS} 11147e5c31af7Sopenharmony_ci 11148e5c31af7Sopenharmony_ci void main() 11149e5c31af7Sopenharmony_ci { 11150e5c31af7Sopenharmony_ci ${SETUP} 11151e5c31af7Sopenharmony_ci out0 = in0 + ivec4(1, 2, 3, 4); 11152e5c31af7Sopenharmony_ci ${OUTPUT} 11153e5c31af7Sopenharmony_ci } 11154e5c31af7Sopenharmony_ci "" 11155e5c31af7Sopenharmony_ci end 11156e5c31af7Sopenharmony_ci case vec3_to_uvec4 11157e5c31af7Sopenharmony_ci expect compile_fail 11158e5c31af7Sopenharmony_ci version 310 es 11159e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11160e5c31af7Sopenharmony_ci values 11161e5c31af7Sopenharmony_ci { 11162e5c31af7Sopenharmony_ci input vec3 in0 = [ vec3(1.0, 2.0, 3.0) | vec3(2.0, 1.0, 2.0) | vec3(3.0, 7.0, 2.0) ]; 11163e5c31af7Sopenharmony_ci output uvec4 out0 = [ uvec4(2, 3, 5, 8) | uvec4(2, 3, 5, 8) | uvec4(2, 3, 5, 8) ]; 11164e5c31af7Sopenharmony_ci } 11165e5c31af7Sopenharmony_ci 11166e5c31af7Sopenharmony_ci both "" 11167e5c31af7Sopenharmony_ci #version 310 es 11168e5c31af7Sopenharmony_ci precision highp float; 11169e5c31af7Sopenharmony_ci ${DECLARATIONS} 11170e5c31af7Sopenharmony_ci 11171e5c31af7Sopenharmony_ci void main() 11172e5c31af7Sopenharmony_ci { 11173e5c31af7Sopenharmony_ci ${SETUP} 11174e5c31af7Sopenharmony_ci out0 = in0 + ivec4(2, 3, 5, 8); 11175e5c31af7Sopenharmony_ci ${OUTPUT} 11176e5c31af7Sopenharmony_ci } 11177e5c31af7Sopenharmony_ci "" 11178e5c31af7Sopenharmony_ci end 11179e5c31af7Sopenharmony_ci case vec3_to_vec2 11180e5c31af7Sopenharmony_ci expect compile_fail 11181e5c31af7Sopenharmony_ci version 310 es 11182e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11183e5c31af7Sopenharmony_ci values 11184e5c31af7Sopenharmony_ci { 11185e5c31af7Sopenharmony_ci input vec3 in0 = [ vec3(1.0, 2.0, 3.0) | vec3(2.0, 1.0, 2.0) | vec3(3.0, 7.0, 2.0) ]; 11186e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(1.0, 2.0) | vec2(1.0, 2.0) | vec2(1.0, 2.0) ]; 11187e5c31af7Sopenharmony_ci } 11188e5c31af7Sopenharmony_ci 11189e5c31af7Sopenharmony_ci both "" 11190e5c31af7Sopenharmony_ci #version 310 es 11191e5c31af7Sopenharmony_ci precision highp float; 11192e5c31af7Sopenharmony_ci ${DECLARATIONS} 11193e5c31af7Sopenharmony_ci 11194e5c31af7Sopenharmony_ci void main() 11195e5c31af7Sopenharmony_ci { 11196e5c31af7Sopenharmony_ci ${SETUP} 11197e5c31af7Sopenharmony_ci out0 = in0 + vec2(1.0, 2.0); 11198e5c31af7Sopenharmony_ci ${OUTPUT} 11199e5c31af7Sopenharmony_ci } 11200e5c31af7Sopenharmony_ci "" 11201e5c31af7Sopenharmony_ci end 11202e5c31af7Sopenharmony_ci case vec3_to_vec4 11203e5c31af7Sopenharmony_ci expect compile_fail 11204e5c31af7Sopenharmony_ci version 310 es 11205e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11206e5c31af7Sopenharmony_ci values 11207e5c31af7Sopenharmony_ci { 11208e5c31af7Sopenharmony_ci input vec3 in0 = [ vec3(1.0, 2.0, 3.0) | vec3(2.0, 1.0, 2.0) | vec3(3.0, 7.0, 2.0) ]; 11209e5c31af7Sopenharmony_ci output vec4 out0 = [ vec4(1.0, 2.0, 3.0, 4.0) | vec4(1.0, 2.0, 3.0, 4.0) | vec4(1.0, 2.0, 3.0, 4.0) ]; 11210e5c31af7Sopenharmony_ci } 11211e5c31af7Sopenharmony_ci 11212e5c31af7Sopenharmony_ci both "" 11213e5c31af7Sopenharmony_ci #version 310 es 11214e5c31af7Sopenharmony_ci precision highp float; 11215e5c31af7Sopenharmony_ci ${DECLARATIONS} 11216e5c31af7Sopenharmony_ci 11217e5c31af7Sopenharmony_ci void main() 11218e5c31af7Sopenharmony_ci { 11219e5c31af7Sopenharmony_ci ${SETUP} 11220e5c31af7Sopenharmony_ci out0 = in0 + vec4(1.0, 2.0, 3.0, 4.0); 11221e5c31af7Sopenharmony_ci ${OUTPUT} 11222e5c31af7Sopenharmony_ci } 11223e5c31af7Sopenharmony_ci "" 11224e5c31af7Sopenharmony_ci end 11225e5c31af7Sopenharmony_ci case vec4_to_int 11226e5c31af7Sopenharmony_ci expect compile_fail 11227e5c31af7Sopenharmony_ci version 310 es 11228e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11229e5c31af7Sopenharmony_ci values 11230e5c31af7Sopenharmony_ci { 11231e5c31af7Sopenharmony_ci input vec4 in0 = [ vec4(1.0, 2.0, 3.0, 4.0) | vec4(2.0, 1.0, 2.0, 6.0) | vec4(3.0, 7.0, 2.0, 5.0) ]; 11232e5c31af7Sopenharmony_ci output int out0 = [ 2 | 2 | 2 ]; 11233e5c31af7Sopenharmony_ci } 11234e5c31af7Sopenharmony_ci 11235e5c31af7Sopenharmony_ci both "" 11236e5c31af7Sopenharmony_ci #version 310 es 11237e5c31af7Sopenharmony_ci precision highp float; 11238e5c31af7Sopenharmony_ci ${DECLARATIONS} 11239e5c31af7Sopenharmony_ci 11240e5c31af7Sopenharmony_ci void main() 11241e5c31af7Sopenharmony_ci { 11242e5c31af7Sopenharmony_ci ${SETUP} 11243e5c31af7Sopenharmony_ci out0 = in0 + 2; 11244e5c31af7Sopenharmony_ci ${OUTPUT} 11245e5c31af7Sopenharmony_ci } 11246e5c31af7Sopenharmony_ci "" 11247e5c31af7Sopenharmony_ci end 11248e5c31af7Sopenharmony_ci case vec4_to_uint 11249e5c31af7Sopenharmony_ci expect compile_fail 11250e5c31af7Sopenharmony_ci version 310 es 11251e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11252e5c31af7Sopenharmony_ci values 11253e5c31af7Sopenharmony_ci { 11254e5c31af7Sopenharmony_ci input vec4 in0 = [ vec4(1.0, 2.0, 3.0, 4.0) | vec4(2.0, 1.0, 2.0, 6.0) | vec4(3.0, 7.0, 2.0, 5.0) ]; 11255e5c31af7Sopenharmony_ci output uint out0 = [ 1 | 1 | 1 ]; 11256e5c31af7Sopenharmony_ci } 11257e5c31af7Sopenharmony_ci 11258e5c31af7Sopenharmony_ci both "" 11259e5c31af7Sopenharmony_ci #version 310 es 11260e5c31af7Sopenharmony_ci precision highp float; 11261e5c31af7Sopenharmony_ci ${DECLARATIONS} 11262e5c31af7Sopenharmony_ci 11263e5c31af7Sopenharmony_ci void main() 11264e5c31af7Sopenharmony_ci { 11265e5c31af7Sopenharmony_ci ${SETUP} 11266e5c31af7Sopenharmony_ci out0 = in0 + 1; 11267e5c31af7Sopenharmony_ci ${OUTPUT} 11268e5c31af7Sopenharmony_ci } 11269e5c31af7Sopenharmony_ci "" 11270e5c31af7Sopenharmony_ci end 11271e5c31af7Sopenharmony_ci case vec4_to_ivec2 11272e5c31af7Sopenharmony_ci expect compile_fail 11273e5c31af7Sopenharmony_ci version 310 es 11274e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11275e5c31af7Sopenharmony_ci values 11276e5c31af7Sopenharmony_ci { 11277e5c31af7Sopenharmony_ci input vec4 in0 = [ vec4(1.0, 2.0, 3.0, 4.0) | vec4(2.0, 1.0, 2.0, 6.0) | vec4(3.0, 7.0, 2.0, 5.0) ]; 11278e5c31af7Sopenharmony_ci output ivec2 out0 = [ ivec2(1, 2) | ivec2(1, 2) | ivec2(1, 2) ]; 11279e5c31af7Sopenharmony_ci } 11280e5c31af7Sopenharmony_ci 11281e5c31af7Sopenharmony_ci both "" 11282e5c31af7Sopenharmony_ci #version 310 es 11283e5c31af7Sopenharmony_ci precision highp float; 11284e5c31af7Sopenharmony_ci ${DECLARATIONS} 11285e5c31af7Sopenharmony_ci 11286e5c31af7Sopenharmony_ci void main() 11287e5c31af7Sopenharmony_ci { 11288e5c31af7Sopenharmony_ci ${SETUP} 11289e5c31af7Sopenharmony_ci out0 = in0 + ivec2(1, 2); 11290e5c31af7Sopenharmony_ci ${OUTPUT} 11291e5c31af7Sopenharmony_ci } 11292e5c31af7Sopenharmony_ci "" 11293e5c31af7Sopenharmony_ci end 11294e5c31af7Sopenharmony_ci case vec4_to_uvec2 11295e5c31af7Sopenharmony_ci expect compile_fail 11296e5c31af7Sopenharmony_ci version 310 es 11297e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11298e5c31af7Sopenharmony_ci values 11299e5c31af7Sopenharmony_ci { 11300e5c31af7Sopenharmony_ci input vec4 in0 = [ vec4(1.0, 2.0, 3.0, 4.0) | vec4(2.0, 1.0, 2.0, 6.0) | vec4(3.0, 7.0, 2.0, 5.0) ]; 11301e5c31af7Sopenharmony_ci output uvec2 out0 = [ uvec2(2, 3) | uvec2(2, 3) | uvec2(2, 3) ]; 11302e5c31af7Sopenharmony_ci } 11303e5c31af7Sopenharmony_ci 11304e5c31af7Sopenharmony_ci both "" 11305e5c31af7Sopenharmony_ci #version 310 es 11306e5c31af7Sopenharmony_ci precision highp float; 11307e5c31af7Sopenharmony_ci ${DECLARATIONS} 11308e5c31af7Sopenharmony_ci 11309e5c31af7Sopenharmony_ci void main() 11310e5c31af7Sopenharmony_ci { 11311e5c31af7Sopenharmony_ci ${SETUP} 11312e5c31af7Sopenharmony_ci out0 = in0 + ivec2(2, 3); 11313e5c31af7Sopenharmony_ci ${OUTPUT} 11314e5c31af7Sopenharmony_ci } 11315e5c31af7Sopenharmony_ci "" 11316e5c31af7Sopenharmony_ci end 11317e5c31af7Sopenharmony_ci case vec4_to_ivec3 11318e5c31af7Sopenharmony_ci expect compile_fail 11319e5c31af7Sopenharmony_ci version 310 es 11320e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11321e5c31af7Sopenharmony_ci values 11322e5c31af7Sopenharmony_ci { 11323e5c31af7Sopenharmony_ci input vec4 in0 = [ vec4(1.0, 2.0, 3.0, 4.0) | vec4(2.0, 1.0, 2.0, 6.0) | vec4(3.0, 7.0, 2.0, 5.0) ]; 11324e5c31af7Sopenharmony_ci output ivec3 out0 = [ ivec3(1, 2, 3) | ivec3(1, 2, 3) | ivec3(1, 2, 3) ]; 11325e5c31af7Sopenharmony_ci } 11326e5c31af7Sopenharmony_ci 11327e5c31af7Sopenharmony_ci both "" 11328e5c31af7Sopenharmony_ci #version 310 es 11329e5c31af7Sopenharmony_ci precision highp float; 11330e5c31af7Sopenharmony_ci ${DECLARATIONS} 11331e5c31af7Sopenharmony_ci 11332e5c31af7Sopenharmony_ci void main() 11333e5c31af7Sopenharmony_ci { 11334e5c31af7Sopenharmony_ci ${SETUP} 11335e5c31af7Sopenharmony_ci out0 = in0 + ivec3(1, 2, 3); 11336e5c31af7Sopenharmony_ci ${OUTPUT} 11337e5c31af7Sopenharmony_ci } 11338e5c31af7Sopenharmony_ci "" 11339e5c31af7Sopenharmony_ci end 11340e5c31af7Sopenharmony_ci case vec4_to_uvec3 11341e5c31af7Sopenharmony_ci expect compile_fail 11342e5c31af7Sopenharmony_ci version 310 es 11343e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11344e5c31af7Sopenharmony_ci values 11345e5c31af7Sopenharmony_ci { 11346e5c31af7Sopenharmony_ci input vec4 in0 = [ vec4(1.0, 2.0, 3.0, 4.0) | vec4(2.0, 1.0, 2.0, 6.0) | vec4(3.0, 7.0, 2.0, 5.0) ]; 11347e5c31af7Sopenharmony_ci output uvec3 out0 = [ uvec3(2, 3, 5) | uvec3(2, 3, 5) | uvec3(2, 3, 5) ]; 11348e5c31af7Sopenharmony_ci } 11349e5c31af7Sopenharmony_ci 11350e5c31af7Sopenharmony_ci both "" 11351e5c31af7Sopenharmony_ci #version 310 es 11352e5c31af7Sopenharmony_ci precision highp float; 11353e5c31af7Sopenharmony_ci ${DECLARATIONS} 11354e5c31af7Sopenharmony_ci 11355e5c31af7Sopenharmony_ci void main() 11356e5c31af7Sopenharmony_ci { 11357e5c31af7Sopenharmony_ci ${SETUP} 11358e5c31af7Sopenharmony_ci out0 = in0 + ivec3(2, 3, 5); 11359e5c31af7Sopenharmony_ci ${OUTPUT} 11360e5c31af7Sopenharmony_ci } 11361e5c31af7Sopenharmony_ci "" 11362e5c31af7Sopenharmony_ci end 11363e5c31af7Sopenharmony_ci case vec4_to_ivec4 11364e5c31af7Sopenharmony_ci expect compile_fail 11365e5c31af7Sopenharmony_ci version 310 es 11366e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11367e5c31af7Sopenharmony_ci values 11368e5c31af7Sopenharmony_ci { 11369e5c31af7Sopenharmony_ci input vec4 in0 = [ vec4(1.0, 2.0, 3.0, 4.0) | vec4(2.0, 1.0, 2.0, 6.0) | vec4(3.0, 7.0, 2.0, 5.0) ]; 11370e5c31af7Sopenharmony_ci output ivec4 out0 = [ ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) ]; 11371e5c31af7Sopenharmony_ci } 11372e5c31af7Sopenharmony_ci 11373e5c31af7Sopenharmony_ci both "" 11374e5c31af7Sopenharmony_ci #version 310 es 11375e5c31af7Sopenharmony_ci precision highp float; 11376e5c31af7Sopenharmony_ci ${DECLARATIONS} 11377e5c31af7Sopenharmony_ci 11378e5c31af7Sopenharmony_ci void main() 11379e5c31af7Sopenharmony_ci { 11380e5c31af7Sopenharmony_ci ${SETUP} 11381e5c31af7Sopenharmony_ci out0 = in0 + ivec4(1, 2, 3, 4); 11382e5c31af7Sopenharmony_ci ${OUTPUT} 11383e5c31af7Sopenharmony_ci } 11384e5c31af7Sopenharmony_ci "" 11385e5c31af7Sopenharmony_ci end 11386e5c31af7Sopenharmony_ci case vec4_to_uvec4 11387e5c31af7Sopenharmony_ci expect compile_fail 11388e5c31af7Sopenharmony_ci version 310 es 11389e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11390e5c31af7Sopenharmony_ci values 11391e5c31af7Sopenharmony_ci { 11392e5c31af7Sopenharmony_ci input vec4 in0 = [ vec4(1.0, 2.0, 3.0, 4.0) | vec4(2.0, 1.0, 2.0, 6.0) | vec4(3.0, 7.0, 2.0, 5.0) ]; 11393e5c31af7Sopenharmony_ci output uvec4 out0 = [ uvec4(2, 3, 5, 8) | uvec4(2, 3, 5, 8) | uvec4(2, 3, 5, 8) ]; 11394e5c31af7Sopenharmony_ci } 11395e5c31af7Sopenharmony_ci 11396e5c31af7Sopenharmony_ci both "" 11397e5c31af7Sopenharmony_ci #version 310 es 11398e5c31af7Sopenharmony_ci precision highp float; 11399e5c31af7Sopenharmony_ci ${DECLARATIONS} 11400e5c31af7Sopenharmony_ci 11401e5c31af7Sopenharmony_ci void main() 11402e5c31af7Sopenharmony_ci { 11403e5c31af7Sopenharmony_ci ${SETUP} 11404e5c31af7Sopenharmony_ci out0 = in0 + ivec4(2, 3, 5, 8); 11405e5c31af7Sopenharmony_ci ${OUTPUT} 11406e5c31af7Sopenharmony_ci } 11407e5c31af7Sopenharmony_ci "" 11408e5c31af7Sopenharmony_ci end 11409e5c31af7Sopenharmony_ci case vec4_to_vec2 11410e5c31af7Sopenharmony_ci expect compile_fail 11411e5c31af7Sopenharmony_ci version 310 es 11412e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11413e5c31af7Sopenharmony_ci values 11414e5c31af7Sopenharmony_ci { 11415e5c31af7Sopenharmony_ci input vec4 in0 = [ vec4(1.0, 2.0, 3.0, 4.0) | vec4(2.0, 1.0, 2.0, 6.0) | vec4(3.0, 7.0, 2.0, 5.0) ]; 11416e5c31af7Sopenharmony_ci output vec2 out0 = [ vec2(1.0, 2.0) | vec2(1.0, 2.0) | vec2(1.0, 2.0) ]; 11417e5c31af7Sopenharmony_ci } 11418e5c31af7Sopenharmony_ci 11419e5c31af7Sopenharmony_ci both "" 11420e5c31af7Sopenharmony_ci #version 310 es 11421e5c31af7Sopenharmony_ci precision highp float; 11422e5c31af7Sopenharmony_ci ${DECLARATIONS} 11423e5c31af7Sopenharmony_ci 11424e5c31af7Sopenharmony_ci void main() 11425e5c31af7Sopenharmony_ci { 11426e5c31af7Sopenharmony_ci ${SETUP} 11427e5c31af7Sopenharmony_ci out0 = in0 + vec2(1.0, 2.0); 11428e5c31af7Sopenharmony_ci ${OUTPUT} 11429e5c31af7Sopenharmony_ci } 11430e5c31af7Sopenharmony_ci "" 11431e5c31af7Sopenharmony_ci end 11432e5c31af7Sopenharmony_ci case vec4_to_vec3 11433e5c31af7Sopenharmony_ci expect compile_fail 11434e5c31af7Sopenharmony_ci version 310 es 11435e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11436e5c31af7Sopenharmony_ci values 11437e5c31af7Sopenharmony_ci { 11438e5c31af7Sopenharmony_ci input vec4 in0 = [ vec4(1.0, 2.0, 3.0, 4.0) | vec4(2.0, 1.0, 2.0, 6.0) | vec4(3.0, 7.0, 2.0, 5.0) ]; 11439e5c31af7Sopenharmony_ci output vec3 out0 = [ vec3(1.0, 2.0, 3.0) | vec3(1.0, 2.0, 3.0) | vec3(1.0, 2.0, 3.0) ]; 11440e5c31af7Sopenharmony_ci } 11441e5c31af7Sopenharmony_ci 11442e5c31af7Sopenharmony_ci both "" 11443e5c31af7Sopenharmony_ci #version 310 es 11444e5c31af7Sopenharmony_ci precision highp float; 11445e5c31af7Sopenharmony_ci ${DECLARATIONS} 11446e5c31af7Sopenharmony_ci 11447e5c31af7Sopenharmony_ci void main() 11448e5c31af7Sopenharmony_ci { 11449e5c31af7Sopenharmony_ci ${SETUP} 11450e5c31af7Sopenharmony_ci out0 = in0 + vec3(1.0, 2.0, 3.0); 11451e5c31af7Sopenharmony_ci ${OUTPUT} 11452e5c31af7Sopenharmony_ci } 11453e5c31af7Sopenharmony_ci "" 11454e5c31af7Sopenharmony_ci end 11455e5c31af7Sopenharmony_ci 11456e5c31af7Sopenharmony_ci end # variables 11457e5c31af7Sopenharmony_ci group arrays "Arrays" 11458e5c31af7Sopenharmony_ci 11459e5c31af7Sopenharmony_ci case int_to_float 11460e5c31af7Sopenharmony_ci expect compile_fail 11461e5c31af7Sopenharmony_ci version 310 es 11462e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11463e5c31af7Sopenharmony_ci values {} 11464e5c31af7Sopenharmony_ci 11465e5c31af7Sopenharmony_ci both "" 11466e5c31af7Sopenharmony_ci #version 310 es 11467e5c31af7Sopenharmony_ci precision highp float; 11468e5c31af7Sopenharmony_ci ${DECLARATIONS} 11469e5c31af7Sopenharmony_ci 11470e5c31af7Sopenharmony_ci void main() 11471e5c31af7Sopenharmony_ci { 11472e5c31af7Sopenharmony_ci ${SETUP} 11473e5c31af7Sopenharmony_ci float a[] = int[] (2, 1, 1, 3, 5); 11474e5c31af7Sopenharmony_ci ${OUTPUT} 11475e5c31af7Sopenharmony_ci } 11476e5c31af7Sopenharmony_ci "" 11477e5c31af7Sopenharmony_ci end 11478e5c31af7Sopenharmony_ci case int_to_uint 11479e5c31af7Sopenharmony_ci expect compile_fail 11480e5c31af7Sopenharmony_ci version 310 es 11481e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11482e5c31af7Sopenharmony_ci values {} 11483e5c31af7Sopenharmony_ci 11484e5c31af7Sopenharmony_ci both "" 11485e5c31af7Sopenharmony_ci #version 310 es 11486e5c31af7Sopenharmony_ci precision highp float; 11487e5c31af7Sopenharmony_ci ${DECLARATIONS} 11488e5c31af7Sopenharmony_ci 11489e5c31af7Sopenharmony_ci void main() 11490e5c31af7Sopenharmony_ci { 11491e5c31af7Sopenharmony_ci ${SETUP} 11492e5c31af7Sopenharmony_ci uint a[] = int[] (2, 1, 1, 3, 5); 11493e5c31af7Sopenharmony_ci ${OUTPUT} 11494e5c31af7Sopenharmony_ci } 11495e5c31af7Sopenharmony_ci "" 11496e5c31af7Sopenharmony_ci end 11497e5c31af7Sopenharmony_ci case uint_to_float 11498e5c31af7Sopenharmony_ci expect compile_fail 11499e5c31af7Sopenharmony_ci version 310 es 11500e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11501e5c31af7Sopenharmony_ci values {} 11502e5c31af7Sopenharmony_ci 11503e5c31af7Sopenharmony_ci both "" 11504e5c31af7Sopenharmony_ci #version 310 es 11505e5c31af7Sopenharmony_ci precision highp float; 11506e5c31af7Sopenharmony_ci ${DECLARATIONS} 11507e5c31af7Sopenharmony_ci 11508e5c31af7Sopenharmony_ci void main() 11509e5c31af7Sopenharmony_ci { 11510e5c31af7Sopenharmony_ci ${SETUP} 11511e5c31af7Sopenharmony_ci float a[] = uint[] (1, 3, 4, 7, 11); 11512e5c31af7Sopenharmony_ci ${OUTPUT} 11513e5c31af7Sopenharmony_ci } 11514e5c31af7Sopenharmony_ci "" 11515e5c31af7Sopenharmony_ci end 11516e5c31af7Sopenharmony_ci case ivec2_to_uvec2 11517e5c31af7Sopenharmony_ci expect compile_fail 11518e5c31af7Sopenharmony_ci version 310 es 11519e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11520e5c31af7Sopenharmony_ci values {} 11521e5c31af7Sopenharmony_ci 11522e5c31af7Sopenharmony_ci both "" 11523e5c31af7Sopenharmony_ci #version 310 es 11524e5c31af7Sopenharmony_ci precision highp float; 11525e5c31af7Sopenharmony_ci ${DECLARATIONS} 11526e5c31af7Sopenharmony_ci 11527e5c31af7Sopenharmony_ci void main() 11528e5c31af7Sopenharmony_ci { 11529e5c31af7Sopenharmony_ci ${SETUP} 11530e5c31af7Sopenharmony_ci uvec2 a[] = ivec2[] (uvec2(1, 2), uvec2(2, 1), uvec2(3, 7)); 11531e5c31af7Sopenharmony_ci ${OUTPUT} 11532e5c31af7Sopenharmony_ci } 11533e5c31af7Sopenharmony_ci "" 11534e5c31af7Sopenharmony_ci end 11535e5c31af7Sopenharmony_ci case ivec2_to_vec2 11536e5c31af7Sopenharmony_ci expect compile_fail 11537e5c31af7Sopenharmony_ci version 310 es 11538e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11539e5c31af7Sopenharmony_ci values {} 11540e5c31af7Sopenharmony_ci 11541e5c31af7Sopenharmony_ci both "" 11542e5c31af7Sopenharmony_ci #version 310 es 11543e5c31af7Sopenharmony_ci precision highp float; 11544e5c31af7Sopenharmony_ci ${DECLARATIONS} 11545e5c31af7Sopenharmony_ci 11546e5c31af7Sopenharmony_ci void main() 11547e5c31af7Sopenharmony_ci { 11548e5c31af7Sopenharmony_ci ${SETUP} 11549e5c31af7Sopenharmony_ci vec2 a[] = ivec2[] (vec2(1, 2), vec2(2, 1), vec2(3, 7)); 11550e5c31af7Sopenharmony_ci ${OUTPUT} 11551e5c31af7Sopenharmony_ci } 11552e5c31af7Sopenharmony_ci "" 11553e5c31af7Sopenharmony_ci end 11554e5c31af7Sopenharmony_ci case uvec2_to_vec2 11555e5c31af7Sopenharmony_ci expect compile_fail 11556e5c31af7Sopenharmony_ci version 310 es 11557e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11558e5c31af7Sopenharmony_ci values {} 11559e5c31af7Sopenharmony_ci 11560e5c31af7Sopenharmony_ci both "" 11561e5c31af7Sopenharmony_ci #version 310 es 11562e5c31af7Sopenharmony_ci precision highp float; 11563e5c31af7Sopenharmony_ci ${DECLARATIONS} 11564e5c31af7Sopenharmony_ci 11565e5c31af7Sopenharmony_ci void main() 11566e5c31af7Sopenharmony_ci { 11567e5c31af7Sopenharmony_ci ${SETUP} 11568e5c31af7Sopenharmony_ci vec2 a[] = uvec2[] (vec2(2, 3), vec2(4, 6), vec2(1, 13)); 11569e5c31af7Sopenharmony_ci ${OUTPUT} 11570e5c31af7Sopenharmony_ci } 11571e5c31af7Sopenharmony_ci "" 11572e5c31af7Sopenharmony_ci end 11573e5c31af7Sopenharmony_ci case ivec3_to_uvec3 11574e5c31af7Sopenharmony_ci expect compile_fail 11575e5c31af7Sopenharmony_ci version 310 es 11576e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11577e5c31af7Sopenharmony_ci values {} 11578e5c31af7Sopenharmony_ci 11579e5c31af7Sopenharmony_ci both "" 11580e5c31af7Sopenharmony_ci #version 310 es 11581e5c31af7Sopenharmony_ci precision highp float; 11582e5c31af7Sopenharmony_ci ${DECLARATIONS} 11583e5c31af7Sopenharmony_ci 11584e5c31af7Sopenharmony_ci void main() 11585e5c31af7Sopenharmony_ci { 11586e5c31af7Sopenharmony_ci ${SETUP} 11587e5c31af7Sopenharmony_ci uvec3 a[] = ivec3[] (uvec3(1, 2, 3), uvec3(2, 1, 2), uvec3(3, 7, 2)); 11588e5c31af7Sopenharmony_ci ${OUTPUT} 11589e5c31af7Sopenharmony_ci } 11590e5c31af7Sopenharmony_ci "" 11591e5c31af7Sopenharmony_ci end 11592e5c31af7Sopenharmony_ci case ivec3_to_vec3 11593e5c31af7Sopenharmony_ci expect compile_fail 11594e5c31af7Sopenharmony_ci version 310 es 11595e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11596e5c31af7Sopenharmony_ci values {} 11597e5c31af7Sopenharmony_ci 11598e5c31af7Sopenharmony_ci both "" 11599e5c31af7Sopenharmony_ci #version 310 es 11600e5c31af7Sopenharmony_ci precision highp float; 11601e5c31af7Sopenharmony_ci ${DECLARATIONS} 11602e5c31af7Sopenharmony_ci 11603e5c31af7Sopenharmony_ci void main() 11604e5c31af7Sopenharmony_ci { 11605e5c31af7Sopenharmony_ci ${SETUP} 11606e5c31af7Sopenharmony_ci vec3 a[] = ivec3[] (vec3(1, 2, 3), vec3(2, 1, 2), vec3(3, 7, 2)); 11607e5c31af7Sopenharmony_ci ${OUTPUT} 11608e5c31af7Sopenharmony_ci } 11609e5c31af7Sopenharmony_ci "" 11610e5c31af7Sopenharmony_ci end 11611e5c31af7Sopenharmony_ci case uvec3_to_vec3 11612e5c31af7Sopenharmony_ci expect compile_fail 11613e5c31af7Sopenharmony_ci version 310 es 11614e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11615e5c31af7Sopenharmony_ci values {} 11616e5c31af7Sopenharmony_ci 11617e5c31af7Sopenharmony_ci both "" 11618e5c31af7Sopenharmony_ci #version 310 es 11619e5c31af7Sopenharmony_ci precision highp float; 11620e5c31af7Sopenharmony_ci ${DECLARATIONS} 11621e5c31af7Sopenharmony_ci 11622e5c31af7Sopenharmony_ci void main() 11623e5c31af7Sopenharmony_ci { 11624e5c31af7Sopenharmony_ci ${SETUP} 11625e5c31af7Sopenharmony_ci vec3 a[] = uvec3[] (vec3(2, 3, 5), vec3(4, 6, 2), vec3(1, 13, 7)); 11626e5c31af7Sopenharmony_ci ${OUTPUT} 11627e5c31af7Sopenharmony_ci } 11628e5c31af7Sopenharmony_ci "" 11629e5c31af7Sopenharmony_ci end 11630e5c31af7Sopenharmony_ci case ivec4_to_uvec4 11631e5c31af7Sopenharmony_ci expect compile_fail 11632e5c31af7Sopenharmony_ci version 310 es 11633e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11634e5c31af7Sopenharmony_ci values {} 11635e5c31af7Sopenharmony_ci 11636e5c31af7Sopenharmony_ci both "" 11637e5c31af7Sopenharmony_ci #version 310 es 11638e5c31af7Sopenharmony_ci precision highp float; 11639e5c31af7Sopenharmony_ci ${DECLARATIONS} 11640e5c31af7Sopenharmony_ci 11641e5c31af7Sopenharmony_ci void main() 11642e5c31af7Sopenharmony_ci { 11643e5c31af7Sopenharmony_ci ${SETUP} 11644e5c31af7Sopenharmony_ci uvec4 a[] = ivec4[] (uvec4(1, 2, 3, 4), uvec4(2, 1, 2, 6), uvec4(3, 7, 2, 5)); 11645e5c31af7Sopenharmony_ci ${OUTPUT} 11646e5c31af7Sopenharmony_ci } 11647e5c31af7Sopenharmony_ci "" 11648e5c31af7Sopenharmony_ci end 11649e5c31af7Sopenharmony_ci case ivec4_to_vec4 11650e5c31af7Sopenharmony_ci expect compile_fail 11651e5c31af7Sopenharmony_ci version 310 es 11652e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11653e5c31af7Sopenharmony_ci values {} 11654e5c31af7Sopenharmony_ci 11655e5c31af7Sopenharmony_ci both "" 11656e5c31af7Sopenharmony_ci #version 310 es 11657e5c31af7Sopenharmony_ci precision highp float; 11658e5c31af7Sopenharmony_ci ${DECLARATIONS} 11659e5c31af7Sopenharmony_ci 11660e5c31af7Sopenharmony_ci void main() 11661e5c31af7Sopenharmony_ci { 11662e5c31af7Sopenharmony_ci ${SETUP} 11663e5c31af7Sopenharmony_ci vec4 a[] = ivec4[] (vec4(1, 2, 3, 4), vec4(2, 1, 2, 6), vec4(3, 7, 2, 5)); 11664e5c31af7Sopenharmony_ci ${OUTPUT} 11665e5c31af7Sopenharmony_ci } 11666e5c31af7Sopenharmony_ci "" 11667e5c31af7Sopenharmony_ci end 11668e5c31af7Sopenharmony_ci case uvec4_to_vec4 11669e5c31af7Sopenharmony_ci expect compile_fail 11670e5c31af7Sopenharmony_ci version 310 es 11671e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11672e5c31af7Sopenharmony_ci values {} 11673e5c31af7Sopenharmony_ci 11674e5c31af7Sopenharmony_ci both "" 11675e5c31af7Sopenharmony_ci #version 310 es 11676e5c31af7Sopenharmony_ci precision highp float; 11677e5c31af7Sopenharmony_ci ${DECLARATIONS} 11678e5c31af7Sopenharmony_ci 11679e5c31af7Sopenharmony_ci void main() 11680e5c31af7Sopenharmony_ci { 11681e5c31af7Sopenharmony_ci ${SETUP} 11682e5c31af7Sopenharmony_ci vec4 a[] = uvec4[] (vec4(2, 3, 5, 8), vec4(4, 6, 2, 9), vec4(1, 13, 7, 4)); 11683e5c31af7Sopenharmony_ci ${OUTPUT} 11684e5c31af7Sopenharmony_ci } 11685e5c31af7Sopenharmony_ci "" 11686e5c31af7Sopenharmony_ci end 11687e5c31af7Sopenharmony_ci 11688e5c31af7Sopenharmony_ci end # arrays 11689e5c31af7Sopenharmony_ci group structs "Structs" 11690e5c31af7Sopenharmony_ci 11691e5c31af7Sopenharmony_ci case int_to_float 11692e5c31af7Sopenharmony_ci expect compile_fail 11693e5c31af7Sopenharmony_ci version 310 es 11694e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11695e5c31af7Sopenharmony_ci values {} 11696e5c31af7Sopenharmony_ci 11697e5c31af7Sopenharmony_ci both "" 11698e5c31af7Sopenharmony_ci #version 310 es 11699e5c31af7Sopenharmony_ci precision highp float; 11700e5c31af7Sopenharmony_ci ${DECLARATIONS} 11701e5c31af7Sopenharmony_ci 11702e5c31af7Sopenharmony_ci void main() 11703e5c31af7Sopenharmony_ci { 11704e5c31af7Sopenharmony_ci ${SETUP} 11705e5c31af7Sopenharmony_ci struct { int value; } a; 11706e5c31af7Sopenharmony_ci struct { float value; } b; 11707e5c31af7Sopenharmony_ci a = 2; 11708e5c31af7Sopenharmony_ci b = a; 11709e5c31af7Sopenharmony_ci ${OUTPUT} 11710e5c31af7Sopenharmony_ci } 11711e5c31af7Sopenharmony_ci "" 11712e5c31af7Sopenharmony_ci end 11713e5c31af7Sopenharmony_ci case int_to_uint 11714e5c31af7Sopenharmony_ci expect compile_fail 11715e5c31af7Sopenharmony_ci version 310 es 11716e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11717e5c31af7Sopenharmony_ci values {} 11718e5c31af7Sopenharmony_ci 11719e5c31af7Sopenharmony_ci both "" 11720e5c31af7Sopenharmony_ci #version 310 es 11721e5c31af7Sopenharmony_ci precision highp float; 11722e5c31af7Sopenharmony_ci ${DECLARATIONS} 11723e5c31af7Sopenharmony_ci 11724e5c31af7Sopenharmony_ci void main() 11725e5c31af7Sopenharmony_ci { 11726e5c31af7Sopenharmony_ci ${SETUP} 11727e5c31af7Sopenharmony_ci struct { int value; } a; 11728e5c31af7Sopenharmony_ci struct { uint value; } b; 11729e5c31af7Sopenharmony_ci a = 2; 11730e5c31af7Sopenharmony_ci b = a; 11731e5c31af7Sopenharmony_ci ${OUTPUT} 11732e5c31af7Sopenharmony_ci } 11733e5c31af7Sopenharmony_ci "" 11734e5c31af7Sopenharmony_ci end 11735e5c31af7Sopenharmony_ci case uint_to_float 11736e5c31af7Sopenharmony_ci expect compile_fail 11737e5c31af7Sopenharmony_ci version 310 es 11738e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11739e5c31af7Sopenharmony_ci values {} 11740e5c31af7Sopenharmony_ci 11741e5c31af7Sopenharmony_ci both "" 11742e5c31af7Sopenharmony_ci #version 310 es 11743e5c31af7Sopenharmony_ci precision highp float; 11744e5c31af7Sopenharmony_ci ${DECLARATIONS} 11745e5c31af7Sopenharmony_ci 11746e5c31af7Sopenharmony_ci void main() 11747e5c31af7Sopenharmony_ci { 11748e5c31af7Sopenharmony_ci ${SETUP} 11749e5c31af7Sopenharmony_ci struct { uint value; } a; 11750e5c31af7Sopenharmony_ci struct { float value; } b; 11751e5c31af7Sopenharmony_ci a = 1; 11752e5c31af7Sopenharmony_ci b = a; 11753e5c31af7Sopenharmony_ci ${OUTPUT} 11754e5c31af7Sopenharmony_ci } 11755e5c31af7Sopenharmony_ci "" 11756e5c31af7Sopenharmony_ci end 11757e5c31af7Sopenharmony_ci case ivec2_to_uvec2 11758e5c31af7Sopenharmony_ci expect compile_fail 11759e5c31af7Sopenharmony_ci version 310 es 11760e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11761e5c31af7Sopenharmony_ci values {} 11762e5c31af7Sopenharmony_ci 11763e5c31af7Sopenharmony_ci both "" 11764e5c31af7Sopenharmony_ci #version 310 es 11765e5c31af7Sopenharmony_ci precision highp float; 11766e5c31af7Sopenharmony_ci ${DECLARATIONS} 11767e5c31af7Sopenharmony_ci 11768e5c31af7Sopenharmony_ci void main() 11769e5c31af7Sopenharmony_ci { 11770e5c31af7Sopenharmony_ci ${SETUP} 11771e5c31af7Sopenharmony_ci struct { ivec2 value; } a; 11772e5c31af7Sopenharmony_ci struct { uvec2 value; } b; 11773e5c31af7Sopenharmony_ci a = ivec2(1, 2); 11774e5c31af7Sopenharmony_ci b = a; 11775e5c31af7Sopenharmony_ci ${OUTPUT} 11776e5c31af7Sopenharmony_ci } 11777e5c31af7Sopenharmony_ci "" 11778e5c31af7Sopenharmony_ci end 11779e5c31af7Sopenharmony_ci case ivec2_to_vec2 11780e5c31af7Sopenharmony_ci expect compile_fail 11781e5c31af7Sopenharmony_ci version 310 es 11782e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11783e5c31af7Sopenharmony_ci values {} 11784e5c31af7Sopenharmony_ci 11785e5c31af7Sopenharmony_ci both "" 11786e5c31af7Sopenharmony_ci #version 310 es 11787e5c31af7Sopenharmony_ci precision highp float; 11788e5c31af7Sopenharmony_ci ${DECLARATIONS} 11789e5c31af7Sopenharmony_ci 11790e5c31af7Sopenharmony_ci void main() 11791e5c31af7Sopenharmony_ci { 11792e5c31af7Sopenharmony_ci ${SETUP} 11793e5c31af7Sopenharmony_ci struct { ivec2 value; } a; 11794e5c31af7Sopenharmony_ci struct { vec2 value; } b; 11795e5c31af7Sopenharmony_ci a = ivec2(1, 2); 11796e5c31af7Sopenharmony_ci b = a; 11797e5c31af7Sopenharmony_ci ${OUTPUT} 11798e5c31af7Sopenharmony_ci } 11799e5c31af7Sopenharmony_ci "" 11800e5c31af7Sopenharmony_ci end 11801e5c31af7Sopenharmony_ci case uvec2_to_vec2 11802e5c31af7Sopenharmony_ci expect compile_fail 11803e5c31af7Sopenharmony_ci version 310 es 11804e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11805e5c31af7Sopenharmony_ci values {} 11806e5c31af7Sopenharmony_ci 11807e5c31af7Sopenharmony_ci both "" 11808e5c31af7Sopenharmony_ci #version 310 es 11809e5c31af7Sopenharmony_ci precision highp float; 11810e5c31af7Sopenharmony_ci ${DECLARATIONS} 11811e5c31af7Sopenharmony_ci 11812e5c31af7Sopenharmony_ci void main() 11813e5c31af7Sopenharmony_ci { 11814e5c31af7Sopenharmony_ci ${SETUP} 11815e5c31af7Sopenharmony_ci struct { uvec2 value; } a; 11816e5c31af7Sopenharmony_ci struct { vec2 value; } b; 11817e5c31af7Sopenharmony_ci a = uvec2(2, 3); 11818e5c31af7Sopenharmony_ci b = a; 11819e5c31af7Sopenharmony_ci ${OUTPUT} 11820e5c31af7Sopenharmony_ci } 11821e5c31af7Sopenharmony_ci "" 11822e5c31af7Sopenharmony_ci end 11823e5c31af7Sopenharmony_ci case ivec3_to_uvec3 11824e5c31af7Sopenharmony_ci expect compile_fail 11825e5c31af7Sopenharmony_ci version 310 es 11826e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11827e5c31af7Sopenharmony_ci values {} 11828e5c31af7Sopenharmony_ci 11829e5c31af7Sopenharmony_ci both "" 11830e5c31af7Sopenharmony_ci #version 310 es 11831e5c31af7Sopenharmony_ci precision highp float; 11832e5c31af7Sopenharmony_ci ${DECLARATIONS} 11833e5c31af7Sopenharmony_ci 11834e5c31af7Sopenharmony_ci void main() 11835e5c31af7Sopenharmony_ci { 11836e5c31af7Sopenharmony_ci ${SETUP} 11837e5c31af7Sopenharmony_ci struct { ivec3 value; } a; 11838e5c31af7Sopenharmony_ci struct { uvec3 value; } b; 11839e5c31af7Sopenharmony_ci a = ivec3(1, 2, 3); 11840e5c31af7Sopenharmony_ci b = a; 11841e5c31af7Sopenharmony_ci ${OUTPUT} 11842e5c31af7Sopenharmony_ci } 11843e5c31af7Sopenharmony_ci "" 11844e5c31af7Sopenharmony_ci end 11845e5c31af7Sopenharmony_ci case ivec3_to_vec3 11846e5c31af7Sopenharmony_ci expect compile_fail 11847e5c31af7Sopenharmony_ci version 310 es 11848e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11849e5c31af7Sopenharmony_ci values {} 11850e5c31af7Sopenharmony_ci 11851e5c31af7Sopenharmony_ci both "" 11852e5c31af7Sopenharmony_ci #version 310 es 11853e5c31af7Sopenharmony_ci precision highp float; 11854e5c31af7Sopenharmony_ci ${DECLARATIONS} 11855e5c31af7Sopenharmony_ci 11856e5c31af7Sopenharmony_ci void main() 11857e5c31af7Sopenharmony_ci { 11858e5c31af7Sopenharmony_ci ${SETUP} 11859e5c31af7Sopenharmony_ci struct { ivec3 value; } a; 11860e5c31af7Sopenharmony_ci struct { vec3 value; } b; 11861e5c31af7Sopenharmony_ci a = ivec3(1, 2, 3); 11862e5c31af7Sopenharmony_ci b = a; 11863e5c31af7Sopenharmony_ci ${OUTPUT} 11864e5c31af7Sopenharmony_ci } 11865e5c31af7Sopenharmony_ci "" 11866e5c31af7Sopenharmony_ci end 11867e5c31af7Sopenharmony_ci case uvec3_to_vec3 11868e5c31af7Sopenharmony_ci expect compile_fail 11869e5c31af7Sopenharmony_ci version 310 es 11870e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11871e5c31af7Sopenharmony_ci values {} 11872e5c31af7Sopenharmony_ci 11873e5c31af7Sopenharmony_ci both "" 11874e5c31af7Sopenharmony_ci #version 310 es 11875e5c31af7Sopenharmony_ci precision highp float; 11876e5c31af7Sopenharmony_ci ${DECLARATIONS} 11877e5c31af7Sopenharmony_ci 11878e5c31af7Sopenharmony_ci void main() 11879e5c31af7Sopenharmony_ci { 11880e5c31af7Sopenharmony_ci ${SETUP} 11881e5c31af7Sopenharmony_ci struct { uvec3 value; } a; 11882e5c31af7Sopenharmony_ci struct { vec3 value; } b; 11883e5c31af7Sopenharmony_ci a = uvec3(2, 3, 5); 11884e5c31af7Sopenharmony_ci b = a; 11885e5c31af7Sopenharmony_ci ${OUTPUT} 11886e5c31af7Sopenharmony_ci } 11887e5c31af7Sopenharmony_ci "" 11888e5c31af7Sopenharmony_ci end 11889e5c31af7Sopenharmony_ci case ivec4_to_uvec4 11890e5c31af7Sopenharmony_ci expect compile_fail 11891e5c31af7Sopenharmony_ci version 310 es 11892e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11893e5c31af7Sopenharmony_ci values {} 11894e5c31af7Sopenharmony_ci 11895e5c31af7Sopenharmony_ci both "" 11896e5c31af7Sopenharmony_ci #version 310 es 11897e5c31af7Sopenharmony_ci precision highp float; 11898e5c31af7Sopenharmony_ci ${DECLARATIONS} 11899e5c31af7Sopenharmony_ci 11900e5c31af7Sopenharmony_ci void main() 11901e5c31af7Sopenharmony_ci { 11902e5c31af7Sopenharmony_ci ${SETUP} 11903e5c31af7Sopenharmony_ci struct { ivec4 value; } a; 11904e5c31af7Sopenharmony_ci struct { uvec4 value; } b; 11905e5c31af7Sopenharmony_ci a = ivec4(1, 2, 3, 4); 11906e5c31af7Sopenharmony_ci b = a; 11907e5c31af7Sopenharmony_ci ${OUTPUT} 11908e5c31af7Sopenharmony_ci } 11909e5c31af7Sopenharmony_ci "" 11910e5c31af7Sopenharmony_ci end 11911e5c31af7Sopenharmony_ci case ivec4_to_vec4 11912e5c31af7Sopenharmony_ci expect compile_fail 11913e5c31af7Sopenharmony_ci version 310 es 11914e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11915e5c31af7Sopenharmony_ci values {} 11916e5c31af7Sopenharmony_ci 11917e5c31af7Sopenharmony_ci both "" 11918e5c31af7Sopenharmony_ci #version 310 es 11919e5c31af7Sopenharmony_ci precision highp float; 11920e5c31af7Sopenharmony_ci ${DECLARATIONS} 11921e5c31af7Sopenharmony_ci 11922e5c31af7Sopenharmony_ci void main() 11923e5c31af7Sopenharmony_ci { 11924e5c31af7Sopenharmony_ci ${SETUP} 11925e5c31af7Sopenharmony_ci struct { ivec4 value; } a; 11926e5c31af7Sopenharmony_ci struct { vec4 value; } b; 11927e5c31af7Sopenharmony_ci a = ivec4(1, 2, 3, 4); 11928e5c31af7Sopenharmony_ci b = a; 11929e5c31af7Sopenharmony_ci ${OUTPUT} 11930e5c31af7Sopenharmony_ci } 11931e5c31af7Sopenharmony_ci "" 11932e5c31af7Sopenharmony_ci end 11933e5c31af7Sopenharmony_ci case uvec4_to_vec4 11934e5c31af7Sopenharmony_ci expect compile_fail 11935e5c31af7Sopenharmony_ci version 310 es 11936e5c31af7Sopenharmony_ci require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11937e5c31af7Sopenharmony_ci values {} 11938e5c31af7Sopenharmony_ci 11939e5c31af7Sopenharmony_ci both "" 11940e5c31af7Sopenharmony_ci #version 310 es 11941e5c31af7Sopenharmony_ci precision highp float; 11942e5c31af7Sopenharmony_ci ${DECLARATIONS} 11943e5c31af7Sopenharmony_ci 11944e5c31af7Sopenharmony_ci void main() 11945e5c31af7Sopenharmony_ci { 11946e5c31af7Sopenharmony_ci ${SETUP} 11947e5c31af7Sopenharmony_ci struct { uvec4 value; } a; 11948e5c31af7Sopenharmony_ci struct { vec4 value; } b; 11949e5c31af7Sopenharmony_ci a = uvec4(2, 3, 5, 8); 11950e5c31af7Sopenharmony_ci b = a; 11951e5c31af7Sopenharmony_ci ${OUTPUT} 11952e5c31af7Sopenharmony_ci } 11953e5c31af7Sopenharmony_ci "" 11954e5c31af7Sopenharmony_ci end 11955e5c31af7Sopenharmony_ci 11956e5c31af7Sopenharmony_ci end # structs 11957e5c31af7Sopenharmony_ci 11958e5c31af7Sopenharmony_ciend # invalid 11959