3 GL_ARB_fragment_layer_viewport
4 GL_ARB_shader_atomic_counters
7 # Ensure that the fragment stage reads the same value for gl_Layer as was
8 # written by the geometry stage.
10 # This test covers the case where the value written is out of range.
15 in vec4 piglit_vertex;
19 gl_Position = piglit_vertex;
26 layout(triangle_strip, max_vertices=9) out;
28 const int layers[] = int[]( -1, 4, 2048 );
29 flat out int layer_written;
33 for (int layer = 0; layer < layers.length(); layer++) {
35 for (int i = 0; i < 3; i++) {
36 gl_Position = gl_in[i].gl_Position;
37 layer_written = layers[layer];
38 gl_Layer = layers[layer];
48 #extension GL_ARB_fragment_layer_viewport: require
49 #extension GL_ARB_shader_atomic_counters: require
51 flat in int layer_written;
53 layout(binding = 0) uniform atomic_uint mismatches;
57 if (layer_written != gl_Layer)
58 atomicCounterIncrement(mismatches);
60 gl_FragColor = vec4(0);
64 texture junk 2DArray 0 ( 64 , 64 , 4 )
72 probe atomic counter 0 == 0