ext_gpu_shader4: add compiler tests for everything
[piglit.git] / tests / spec / mesa_shader_integer_functions / execution / built-in-functions / vs-frexp.shader_test
blobe410f81cb285d6cb436974fed7c2a75f3a8772cd
1 [require]
2 GLSL >= 1.30
3 GL_MESA_shader_integer_functions
5 [vertex shader]
6 #extension GL_MESA_shader_integer_functions : enable
8 in vec4 piglit_vertex;
9 out vec4 color;
11 uniform vec4 given_float;
12 uniform vec4 expected_mantissa;
13 uniform ivec4 expected_exponent;
15 void main() {
16         gl_Position = piglit_vertex;
18         /* Green if both pass. */
19         color = vec4(0.0, 1.0, 0.0, 1.0);
21         ivec4 exponent;
22         vec4 mantissa;
24         mantissa = frexp(given_float, exponent);
26         if (mantissa != expected_mantissa) {
27                 color.r = 1.0;
28         }
30         if (exponent != expected_exponent) {
31                 color.b = 1.0;
32         }
35 [fragment shader]
36 in vec4 color;
37 out vec4 frag_color;
39 void main()
41         frag_color = color;
44 [test]
45 uniform vec4 given_float 0.0 -0.0 0.5 -0.5
46 uniform vec4 expected_mantissa 0.0 -0.0 0.5 -0.5
47 uniform ivec4 expected_exponent 0 0 0 0
48 draw rect -1 -1 2 2
49 probe all rgba 0.0 1.0 0.0 1.0
51 uniform vec4 given_float 0.49 1.0 25.0 100
52 uniform vec4 expected_mantissa 0.98 0.5 0.78125 0.78125
53 uniform ivec4 expected_exponent -1 1 5 7
54 draw rect -1 -1 2 2
55 probe all rgba 0.0 1.0 0.0 1.0
57 uniform vec4 given_float 1.1754944e-38 -1.1754944e-38 3.40282347e38 -3.40282347e38
58 uniform vec4 expected_mantissa 0.5 -0.5 0.999999940 -0.999999940
59 uniform ivec4 expected_exponent -125 -125 128 128
60 draw rect -1 -1 2 2
61 probe all rgba 0.0 1.0 0.0 1.0