diff options
author | Kenneth Graunke <kenneth@whitecape.org> | 2010-10-14 12:30:31 -0700 |
---|---|---|
committer | Kenneth Graunke <kenneth@whitecape.org> | 2010-10-14 15:55:47 -0700 |
commit | 9da667d518beb6c3b39c2db00fe1e0f256f4ed26 (patch) | |
tree | 7e6749980c4a6406fe10a9eca9f34c095aef65df | |
parent | aa913ca02e160dbbf43a6b47e44ff935bc8a21bd (diff) |
Add new tests for GLSL built-ins floor, ceil, and trunc.
-rw-r--r-- | tests/all.tests | 3 | ||||
-rw-r--r-- | tests/shaders/glsl-fs-ceil.shader_test | 26 | ||||
-rw-r--r-- | tests/shaders/glsl-fs-floor.shader_test | 26 | ||||
-rw-r--r-- | tests/shaders/glsl-fs-trunc.shader_test | 31 |
4 files changed, 86 insertions, 0 deletions
diff --git a/tests/all.tests b/tests/all.tests index a70a3f4c9..d482fbb56 100644 --- a/tests/all.tests +++ b/tests/all.tests @@ -297,6 +297,7 @@ add_shader_generic(shaders, 'glsl-fs-atan-3') add_shader_generic(shaders, 'glsl-fs-main-return') add_shader_generic(shaders, 'glsl-fs-mov-masked') add_plain_test(shaders, 'glsl-fs-bug25902') +add_shader_generic(shaders, 'glsl-fs-ceil') add_shader_generic(shaders, 'glsl-fs-conditional-output-write') add_shader_generic(shaders, 'glsl-fs-cross') add_shader_generic(shaders, 'glsl-fs-cross-2') @@ -307,6 +308,7 @@ add_shader_generic(shaders, 'glsl-fs-dot-vec2') add_shader_generic(shaders, 'glsl-fs-dot-vec2-2') add_shader_generic(shaders, 'glsl-fs-exp') add_plain_test(shaders, 'glsl-fs-exp2') +add_shader_generic(shaders, 'glsl-fs-floor') add_plain_test(shaders, 'glsl-fs-fragcoord') add_shader_generic(shaders, 'glsl-fs-functions-2') add_shader_generic(shaders, 'glsl-fs-functions-3') @@ -379,6 +381,7 @@ shaders['glsl-fs-texture2drect-proj3'] = PlainExecTest(['glsl-fs-texture2drect', '-auto', '-proj3']) shaders['glsl-fs-texture2drect-proj4'] = PlainExecTest(['glsl-fs-texture2drect', '-auto', '-proj4']) +add_shader_generic(shaders, 'glsl-fs-trunc') add_shader_generic(shaders, 'glsl-fs-uniform-array-1') add_shader_generic(shaders, 'glsl-fs-uniform-array-2') add_shader_generic(shaders, 'glsl-fs-uniform-array-3') diff --git a/tests/shaders/glsl-fs-ceil.shader_test b/tests/shaders/glsl-fs-ceil.shader_test new file mode 100644 index 000000000..93c06f815 --- /dev/null +++ b/tests/shaders/glsl-fs-ceil.shader_test @@ -0,0 +1,26 @@ +[require] +GL >= 2.0 +GLSL >= 1.10 + +[vertex shader file] +glsl-mvp.vert + +[fragment shader] +void main() +{ + /* Divide by 10 to get a decimal part */ + float x = gl_FragCoord.x / 10.0; + + /* Divide by 25.0 to bring it into the [0, 1] range. */ + gl_FragColor = vec4(ceil(x) / 25.0, -ceil(-x) / 25.0, 0.0, 1.0); +} + +[test] +clear color 0.0 0.0 0.0 0.0 +clear +ortho +draw rect 0 0 250 250 +probe rgb 1 1 0.04 0.00 0 +probe rgb 63 63 0.28 0.24 0 +probe rgb 125 125 0.52 0.48 0 +probe rgb 249 249 1.0 0.96 0 diff --git a/tests/shaders/glsl-fs-floor.shader_test b/tests/shaders/glsl-fs-floor.shader_test new file mode 100644 index 000000000..554f67f26 --- /dev/null +++ b/tests/shaders/glsl-fs-floor.shader_test @@ -0,0 +1,26 @@ +[require] +GL >= 2.0 +GLSL >= 1.10 + +[vertex shader file] +glsl-mvp.vert + +[fragment shader] +void main() +{ + /* Divide by 10 to get a decimal part */ + float x = gl_FragCoord.x / 10.0; + + /* Divide by 25.0 to bring it into the [0, 1] range. */ + gl_FragColor = vec4(floor(x) / 25.0, -floor(-x) / 25.0, 0.0, 1.0); +} + +[test] +clear color 0.0 0.0 0.0 0.0 +clear +ortho +draw rect 0 0 250 250 +probe rgb 1 1 0.00 0.04 0 +probe rgb 63 63 0.24 0.28 0 +probe rgb 125 125 0.48 0.52 0 +probe rgb 249 249 0.96 1.0 0 diff --git a/tests/shaders/glsl-fs-trunc.shader_test b/tests/shaders/glsl-fs-trunc.shader_test new file mode 100644 index 000000000..87fc482bf --- /dev/null +++ b/tests/shaders/glsl-fs-trunc.shader_test @@ -0,0 +1,31 @@ +[require] +GL >= 2.0 +GLSL >= 1.30 + +[vertex shader] +#version 130 +void main() +{ + gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; +} + +[fragment shader] +#version 130 +void main() +{ + /* Divide by 10 to get a decimal part */ + float x = gl_FragCoord.x / 10.0; + + /* Divide by 25.0 to bring it into the [0, 1] range. */ + gl_FragColor = vec4(trunc(x) / 25.0, -trunc(-x) / 25.0, 0.0, 1.0); +} + +[test] +clear color 0.0 0.0 0.0 0.0 +clear +ortho +draw rect 0 0 250 250 +probe rgb 1 1 0.00 0.00 0 +probe rgb 63 63 0.24 0.24 0 +probe rgb 125 125 0.48 0.48 0 +probe rgb 249 249 0.96 0.96 0 |