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