8 # Ensure that the fragment stage reads the same value for gl_ViewportIndex as was
9 # written by the geometry stage.
11 # This test covers the case where the value written is out of range.
14 [vertex shader passthrough]
18 #extension GL_OES_geometry_shader: require
19 #extension GL_OES_viewport_array: require
22 layout(triangle_strip, max_vertices=9) out;
24 const int vps[] = int[]( -1, 16, 2048 );
25 flat out int vp_written;
29 for (int vp = 0; vp < vps.length(); vp++) {
31 for (int i = 0; i < 3; i++) {
32 gl_Position = gl_in[i].gl_Position;
34 gl_ViewportIndex = vps[vp];
44 #extension GL_OES_viewport_array: require
46 precision highp float;
48 flat in int vp_written;
50 layout(binding = 0) uniform atomic_uint mismatches;
56 if (vp_written != gl_ViewportIndex)
57 atomicCounterIncrement(mismatches);
63 texture junk 2DArray 0 ( 64 , 64 , 1 )
71 probe atomic counter 0 == 0