1617a3babSopenharmony_ci#version 150
2617a3babSopenharmony_ci#extension GL_ARB_gpu_shader5 : require
3617a3babSopenharmony_ci
4617a3babSopenharmony_ciuniform ivec4 u1;
5617a3babSopenharmony_ciuniform uvec4 u2;
6617a3babSopenharmony_ciout     vec4  result;
7617a3babSopenharmony_civec4 f(in vec4 a, in vec4 b){ return a * b;}           // choice 1
8617a3babSopenharmony_civec4 f(in uvec4 a, in uvec4 b){ return vec4(a - b);}   // choice 2
9617a3babSopenharmony_ci
10617a3babSopenharmony_civoid main()
11617a3babSopenharmony_ci{
12617a3babSopenharmony_ci    result = f(u1, u2); // should match choice 2. which have less implicit conversion. 
13617a3babSopenharmony_ci    switch (gl_VertexID)
14617a3babSopenharmony_ci    {
15617a3babSopenharmony_ci      case 0: gl_Position = vec4(-1.0, 1.0, 0.0, 1.0); break;
16617a3babSopenharmony_ci      case 1: gl_Position = vec4( 1.0, 1.0, 0.0, 1.0); break;
17617a3babSopenharmony_ci      case 2: gl_Position = vec4(-1.0,-1.0, 0.0, 1.0); break;
18617a3babSopenharmony_ci      case 3: gl_Position = vec4( 1.0,-1.0, 0.0, 1.0); break;
19617a3babSopenharmony_ci    }
20617a3babSopenharmony_ci}
21