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