I looked at the first couple closely, and I skimmed the rest. Did you test these on any non-Mesa drivers? Either way,
Reviewed-by: Ian Romanick <[email protected]> On 07/07/2014 01:27 AM, Dave Airlie wrote: > From: Dave Airlie <[email protected]> > > The generated tests don't test this due to its unusual output nature, and > we had no other tests that I could find for it. So plug that hole. > > I just handcoded up this batch of tests in the same style as generated ones. > > Signed-off-by: Dave Airlie <[email protected]> > --- > .../glsl-1.30/execution/fs-modf-float.shader_test | 45 ++++++++++++++++++++ > .../glsl-1.30/execution/fs-modf-vec2.shader_test | 45 ++++++++++++++++++++ > .../glsl-1.30/execution/fs-modf-vec3.shader_test | 45 ++++++++++++++++++++ > .../glsl-1.30/execution/fs-modf-vec4.shader_test | 45 ++++++++++++++++++++ > .../glsl-1.30/execution/vs-modf-float.shader_test | 49 > ++++++++++++++++++++++ > .../glsl-1.30/execution/vs-modf-vec2.shader_test | 49 > ++++++++++++++++++++++ > .../glsl-1.30/execution/vs-modf-vec3.shader_test | 49 > ++++++++++++++++++++++ > .../glsl-1.30/execution/vs-modf-vec4.shader_test | 49 > ++++++++++++++++++++++ > 8 files changed, 376 insertions(+) > create mode 100644 tests/spec/glsl-1.30/execution/fs-modf-float.shader_test > create mode 100644 tests/spec/glsl-1.30/execution/fs-modf-vec2.shader_test > create mode 100644 tests/spec/glsl-1.30/execution/fs-modf-vec3.shader_test > create mode 100644 tests/spec/glsl-1.30/execution/fs-modf-vec4.shader_test > create mode 100644 tests/spec/glsl-1.30/execution/vs-modf-float.shader_test > create mode 100644 tests/spec/glsl-1.30/execution/vs-modf-vec2.shader_test > create mode 100644 tests/spec/glsl-1.30/execution/vs-modf-vec3.shader_test > create mode 100644 tests/spec/glsl-1.30/execution/vs-modf-vec4.shader_test > > diff --git a/tests/spec/glsl-1.30/execution/fs-modf-float.shader_test > b/tests/spec/glsl-1.30/execution/fs-modf-float.shader_test > new file mode 100644 > index 0000000..1fd3ed7 > --- /dev/null > +++ b/tests/spec/glsl-1.30/execution/fs-modf-float.shader_test > @@ -0,0 +1,45 @@ > +# Test proper behavior of the modf(float) function. > +# > +# test modf splits the input values into the two pieces and > +# returns them correctly. > + > +[require] > +GLSL >= 1.30 > + > +[vertex shader] > +#version 130 > +void main() > +{ > + gl_Position = gl_Vertex; > +} > + > +[fragment shader] > +#version 130 > +uniform float value; > +uniform float expected1; > +uniform float expected2; > +uniform float tolerance; > +void main() > +{ > + float temp, tempi; > + bool b1, b2; > + temp = modf(value, tempi); > + b1 = distance(tempi, expected1) < tolerance; > + b2 = distance(temp, expected2) < tolerance; > + gl_FragColor = vec4(b1, b2, 0.0, 1.0); > +} > + > +[test] > +uniform float value 2.5 > +uniform float expected1 2.0 > +uniform float expected2 0.5 > +uniform float tolerance 0.0041452078 > +draw rect -1 -1 2 2 > +probe rgba 0 0 1.0 1.0 0.0 1.0 > + > +uniform float value -1.33 > +uniform float expected1 -1.0 > +uniform float expected2 -0.33 > +uniform float tolerance 0.0041452078 > +draw rect -1 -1 2 2 > +probe rgba 1 0 1.0 1.0 0.0 1.0 > diff --git a/tests/spec/glsl-1.30/execution/fs-modf-vec2.shader_test > b/tests/spec/glsl-1.30/execution/fs-modf-vec2.shader_test > new file mode 100644 > index 0000000..4ba7d6c > --- /dev/null > +++ b/tests/spec/glsl-1.30/execution/fs-modf-vec2.shader_test > @@ -0,0 +1,45 @@ > +# Test proper behavior of the modf(vec2) function. > +# > +# test modf splits the input values into the two pieces and > +# returns them correctly. > + > +[require] > +GLSL >= 1.30 > + > +[vertex shader] > +#version 130 > +void main() > +{ > + gl_Position = gl_Vertex; > +} > + > +[fragment shader] > +#version 130 > +uniform vec2 value; > +uniform vec2 expected1; > +uniform vec2 expected2; > +uniform float tolerance; > +void main() > +{ > + vec2 temp, tempi; > + bool b1, b2; > + temp = modf(value, tempi); > + b1 = distance(tempi, expected1) < tolerance; > + b2 = distance(temp, expected2) < tolerance; > + gl_FragColor = vec4(b1, b2, 0.0, 1.0); > +} > + > +[test] > +uniform vec2 value 1.5 2.5 > +uniform vec2 expected1 1.0 2.0 > +uniform vec2 expected2 0.5 0.5 > +uniform float tolerance 0.0041452078 > +draw rect -1 -1 2 2 > +probe rgba 0 0 1.0 1.0 0.0 1.0 > + > +uniform vec2 value -1.33 10.3333 > +uniform vec2 expected1 -1.0 10.0 > +uniform vec2 expected2 -0.33 0.3333 > +uniform float tolerance 0.0041452078 > +draw rect -1 -1 2 2 > +probe rgba 1 0 1.0 1.0 0.0 1.0 > diff --git a/tests/spec/glsl-1.30/execution/fs-modf-vec3.shader_test > b/tests/spec/glsl-1.30/execution/fs-modf-vec3.shader_test > new file mode 100644 > index 0000000..343c282 > --- /dev/null > +++ b/tests/spec/glsl-1.30/execution/fs-modf-vec3.shader_test > @@ -0,0 +1,45 @@ > +# Test proper behavior of the modf(vec3) function. > +# > +# test modf splits the input values into the two pieces and > +# returns them correctly. > + > +[require] > +GLSL >= 1.30 > + > +[vertex shader] > +#version 130 > +void main() > +{ > + gl_Position = gl_Vertex; > +} > + > +[fragment shader] > +#version 130 > +uniform vec3 value; > +uniform vec3 expected1; > +uniform vec3 expected2; > +uniform float tolerance; > +void main() > +{ > + vec3 temp, tempi; > + bool b1, b2; > + temp = modf(value, tempi); > + b1 = distance(tempi, expected1) < tolerance; > + b2 = distance(temp, expected2) < tolerance; > + gl_FragColor = vec4(b1, b2, 0.0, 1.0); > +} > + > +[test] > +uniform vec3 value 1.5 0.5 2.5 > +uniform vec3 expected1 1.0 0.0 2.0 > +uniform vec3 expected2 0.5 0.5 0.5 > +uniform float tolerance 0.0041452078 > +draw rect -1 -1 2 2 > +probe rgba 0 0 1.0 1.0 0.0 1.0 > + > +uniform vec3 value -1.33 0.75 10.3333 > +uniform vec3 expected1 -1.0 0.0 10.0 > +uniform vec3 expected2 -0.33 0.75 0.3333 > +uniform float tolerance 0.0041452078 > +draw rect -1 -1 2 2 > +probe rgba 1 0 1.0 1.0 0.0 1.0 > diff --git a/tests/spec/glsl-1.30/execution/fs-modf-vec4.shader_test > b/tests/spec/glsl-1.30/execution/fs-modf-vec4.shader_test > new file mode 100644 > index 0000000..9ffa33e > --- /dev/null > +++ b/tests/spec/glsl-1.30/execution/fs-modf-vec4.shader_test > @@ -0,0 +1,45 @@ > +# Test proper behavior of the modf(vec4) function. > +# > +# test modf splits the input values into the two pieces and > +# returns them correctly. > + > +[require] > +GLSL >= 1.30 > + > +[vertex shader] > +#version 130 > +void main() > +{ > + gl_Position = gl_Vertex; > +} > + > +[fragment shader] > +#version 130 > +uniform vec4 value; > +uniform vec4 expected1; > +uniform vec4 expected2; > +uniform float tolerance; > +void main() > +{ > + vec4 temp, tempi; > + bool b1, b2; > + temp = modf(value, tempi); > + b1 = distance(tempi, expected1) < tolerance; > + b2 = distance(temp, expected2) < tolerance; > + gl_FragColor = vec4(b1, b2, 0.0, 1.0); > +} > + > +[test] > +uniform vec4 value 1.5 0.5 2.5 0.0 > +uniform vec4 expected1 1.0 0.0 2.0 0.0 > +uniform vec4 expected2 0.5 0.5 0.5 0.0 > +uniform float tolerance 0.0041452078 > +draw rect -1 -1 2 2 > +probe rgba 0 0 1.0 1.0 0.0 1.0 > + > +uniform vec4 value -1.33 0.75 10.3333 100.865 > +uniform vec4 expected1 -1.0 0.0 10.0 100.0 > +uniform vec4 expected2 -0.33 0.75 0.3333 0.865 > +uniform float tolerance 0.0041452078 > +draw rect -1 -1 2 2 > +probe rgba 1 0 1.0 1.0 0.0 1.0 > diff --git a/tests/spec/glsl-1.30/execution/vs-modf-float.shader_test > b/tests/spec/glsl-1.30/execution/vs-modf-float.shader_test > new file mode 100644 > index 0000000..e3e6240 > --- /dev/null > +++ b/tests/spec/glsl-1.30/execution/vs-modf-float.shader_test > @@ -0,0 +1,49 @@ > +# Test proper behavior of the modf(float) function. > +# > +# test modf splits the input values into the two pieces and > +# returns them correctly. > + > +[require] > +GLSL >= 1.30 > + > +[vertex shader] > +#version 130 > +varying vec4 color; > +uniform float value; > +uniform float expected1; > +uniform float expected2; > +uniform float tolerance; > + > +void main() > +{ > + gl_Position = gl_Vertex; > + float temp, tempi; > + bool b1, b2; > + temp = modf(value, tempi); > + b1 = distance(tempi, expected1) < tolerance; > + b2 = distance(temp, expected2) < tolerance; > + color = vec4(b1, b2, 0.0, 1.0); > +} > + > +[fragment shader] > +varying vec4 color; > + > +void main() > +{ > + gl_FragColor = color; > +} > + > +[test] > +uniform float value 1.5 > +uniform float expected1 1.0 > +uniform float expected2 0.5 > +uniform float tolerance 0.0041452078 > +draw rect -1 -1 2 2 > +probe rgba 0 0 1.0 1.0 0.0 1.0 > + > +uniform float value -1.33 > +uniform float expected1 -1.0 > +uniform float expected2 -0.33 > +uniform float tolerance 0.0041452078 > +draw rect -1 -1 2 2 > +probe rgba 1 0 1.0 1.0 0.0 1.0 > diff --git a/tests/spec/glsl-1.30/execution/vs-modf-vec2.shader_test > b/tests/spec/glsl-1.30/execution/vs-modf-vec2.shader_test > new file mode 100644 > index 0000000..9ad6c34 > --- /dev/null > +++ b/tests/spec/glsl-1.30/execution/vs-modf-vec2.shader_test > @@ -0,0 +1,49 @@ > +# Test proper behavior of the modf(vec2) function. > +# > +# test modf splits the input values into the two pieces and > +# returns them correctly. > + > +[require] > +GLSL >= 1.30 > + > +[vertex shader] > +#version 130 > +varying vec4 color; > +uniform vec2 value; > +uniform vec2 expected1; > +uniform vec2 expected2; > +uniform float tolerance; > + > +void main() > +{ > + gl_Position = gl_Vertex; > + vec2 temp, tempi; > + bool b1, b2; > + temp = modf(value, tempi); > + b1 = distance(tempi, expected1) < tolerance; > + b2 = distance(temp, expected2) < tolerance; > + color = vec4(b1, b2, 0.0, 1.0); > +} > + > +[fragment shader] > +varying vec4 color; > + > +void main() > +{ > + gl_FragColor = color; > +} > + > +[test] > +uniform vec2 value 1.5 2.5 > +uniform vec2 expected1 1.0 2.0 > +uniform vec2 expected2 0.5 0.5 > +uniform float tolerance 0.0041452078 > +draw rect -1 -1 2 2 > +probe rgba 0 0 1.0 1.0 0.0 1.0 > + > +uniform vec2 value -1.33 10.3333 > +uniform vec2 expected1 -1.0 10.0 > +uniform vec2 expected2 -0.33 0.3333 > +uniform float tolerance 0.0041452078 > +draw rect -1 -1 2 2 > +probe rgba 1 0 1.0 1.0 0.0 1.0 > diff --git a/tests/spec/glsl-1.30/execution/vs-modf-vec3.shader_test > b/tests/spec/glsl-1.30/execution/vs-modf-vec3.shader_test > new file mode 100644 > index 0000000..b655be9 > --- /dev/null > +++ b/tests/spec/glsl-1.30/execution/vs-modf-vec3.shader_test > @@ -0,0 +1,49 @@ > +# Test proper behavior of the modf(vec3) function. > +# > +# test modf splits the input values into the two pieces and > +# returns them correctly. > + > +[require] > +GLSL >= 1.30 > + > +[vertex shader] > +#version 130 > +varying vec4 color; > +uniform vec3 value; > +uniform vec3 expected1; > +uniform vec3 expected2; > +uniform float tolerance; > + > +void main() > +{ > + gl_Position = gl_Vertex; > + vec3 temp, tempi; > + bool b1, b2; > + temp = modf(value, tempi); > + b1 = distance(tempi, expected1) < tolerance; > + b2 = distance(temp, expected2) < tolerance; > + color = vec4(b1, b2, 0.0, 1.0); > +} > + > +[fragment shader] > +varying vec4 color; > + > +void main() > +{ > + gl_FragColor = color; > +} > + > +[test] > +uniform vec3 value 1.5 0.5 2.5 > +uniform vec3 expected1 1.0 0.0 2.0 > +uniform vec3 expected2 0.5 0.5 0.5 > +uniform float tolerance 0.0041452078 > +draw rect -1 -1 2 2 > +probe rgba 0 0 1.0 1.0 0.0 1.0 > + > +uniform vec3 value -1.33 0.75 10.3333 > +uniform vec3 expected1 -1.0 0.0 10.0 > +uniform vec3 expected2 -0.33 0.75 0.3333 > +uniform float tolerance 0.0041452078 > +draw rect -1 -1 2 2 > +probe rgba 1 0 1.0 1.0 0.0 1.0 > diff --git a/tests/spec/glsl-1.30/execution/vs-modf-vec4.shader_test > b/tests/spec/glsl-1.30/execution/vs-modf-vec4.shader_test > new file mode 100644 > index 0000000..5c6184d > --- /dev/null > +++ b/tests/spec/glsl-1.30/execution/vs-modf-vec4.shader_test > @@ -0,0 +1,49 @@ > +# Test proper behavior of the modf(vec4) function. > +# > +# test modf splits the input values into the two pieces and > +# returns them correctly. > + > +[require] > +GLSL >= 1.30 > + > +[vertex shader] > +#version 130 > +varying vec4 color; > +uniform vec4 value; > +uniform vec4 expected1; > +uniform vec4 expected2; > +uniform float tolerance; > + > +void main() > +{ > + gl_Position = gl_Vertex; > + vec4 temp, tempi; > + bool b1, b2; > + temp = modf(value, tempi); > + b1 = distance(tempi, expected1) < tolerance; > + b2 = distance(temp, expected2) < tolerance; > + color = vec4(b1, b2, 0.0, 1.0); > +} > + > +[fragment shader] > +varying vec4 color; > + > +void main() > +{ > + gl_FragColor = color; > +} > + > +[test] > +uniform vec4 value 1.5 0.5 2.5 0.0 > +uniform vec4 expected1 1.0 0.0 2.0 0.0 > +uniform vec4 expected2 0.5 0.5 0.5 0.0 > +uniform float tolerance 0.0041452078 > +draw rect -1 -1 2 2 > +probe rgba 0 0 1.0 1.0 0.0 1.0 > + > +uniform vec4 value -1.33 0.75 10.3333 100.865 > +uniform vec4 expected1 -1.0 0.0 10.0 100.0 > +uniform vec4 expected2 -0.33 0.75 0.3333 0.865 > +uniform float tolerance 0.0041452078 > +draw rect -1 -1 2 2 > +probe rgba 1 0 1.0 1.0 0.0 1.0 > _______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
