1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
[require]
GLSL >= 1.50
GL_ARB_gpu_shader5
[vertex shader]
#version 150
in vec4 piglit_vertex;
out vec2 texcoords;
void main()
{
gl_Position = piglit_vertex;
texcoords = (piglit_vertex.xy + 1.0) / 2.0;
}
[fragment shader]
#version 150
#extension GL_ARB_gpu_shader5: enable
in vec2 texcoords;
/* The idea is that the tex array doesn't come first (and so 'other' must get
* some sort of usage), and we also want to ensure that the index is actually
* respected.
*/
uniform sampler2D other;
uniform sampler2D tex[3];
uniform int n;
uniform float zero = 0.0;
void main()
{
gl_FragColor = textureGrad(tex[n], texcoords, vec2(0), vec2(0)) +
texture(other, texcoords) * zero;
}
[test]
uniform int other 2
uniform int tex[0] 3
uniform int tex[1] 1
uniform int tex[2] 4
uniform int n 1
texture rgbw 1 (8, 8)
texture checkerboard 2 0 (8, 8) (0.0, 0.0, 0.0, 0.0) (1.0, 1.0, 0.0, 0.0)
texparameter 2D min linear
texture checkerboard 3 0 (8, 8) (0.0, 0.0, 0.0, 0.0) (0.0, 1.0, 1.0, 0.0)
texparameter 2D min linear
texture checkerboard 4 0 (8, 8) (0.0, 0.0, 0.0, 0.0) (1.0, 0.0, 1.0, 0.0)
texparameter 2D min linear
draw rect -1 -1 2 2
relative probe rgb (0.25, 0.25) (1.0, 0.0, 0.0)
relative probe rgb (0.75, 0.25) (0.0, 1.0, 0.0)
relative probe rgb (0.25, 0.75) (0.0, 0.0, 1.0)
relative probe rgb (0.75, 0.75) (1.0, 1.0, 1.0)
|