These patterns gl_FrontFacing ? 1.0 : 1.0 gl_FrontFacing ? -1.0 : -1.0 gl_FrontFacing ? 0.0 : -1.0
are recognized and optimized by the i965 driver. --- .../fs-frontfacing-ternary-0.0-neg-1.0.shader_test | 20 ++++++++++++++++++++ .../fs-frontfacing-ternary-1.0-neg-1.0.shader_test | 20 ++++++++++++++++++++ .../fs-frontfacing-ternary-neg-1.0-1.0.shader_test | 20 ++++++++++++++++++++ 3 files changed, 60 insertions(+) create mode 100644 tests/spec/glsl-1.10/execution/fs-frontfacing-ternary-0.0-neg-1.0.shader_test create mode 100644 tests/spec/glsl-1.10/execution/fs-frontfacing-ternary-1.0-neg-1.0.shader_test create mode 100644 tests/spec/glsl-1.10/execution/fs-frontfacing-ternary-neg-1.0-1.0.shader_test diff --git a/tests/spec/glsl-1.10/execution/fs-frontfacing-ternary-0.0-neg-1.0.shader_test b/tests/spec/glsl-1.10/execution/fs-frontfacing-ternary-0.0-neg-1.0.shader_test new file mode 100644 index 0000000..2ac9224 --- /dev/null +++ b/tests/spec/glsl-1.10/execution/fs-frontfacing-ternary-0.0-neg-1.0.shader_test @@ -0,0 +1,20 @@ +[require] +GLSL >= 1.10 + +[vertex shader passthrough + +[fragment shader] +void main() +{ + float f = gl_FrontFacing ? 0.0 : -1.0; + f = f * 0.5 + 0.75; // Remap (0.0, -1.0) -> (0.75, 0.25) + gl_FragColor = vec4(0.0, f, 0.0, 1.0); +} + +[test] +draw rect -1 -1 2 1 +draw rect 1 0 -2 1 +relative probe rgba (0, 0) (0.0, 0.75, 0.0, 1.0) +relative probe rgba (1, 0) (0.0, 0.75, 0.0, 1.0) +relative probe rgba (0, 1) (0.0, 0.25, 0.0, 1.0) +relative probe rgba (1, 1) (0.0, 0.25, 0.0, 1.0) diff --git a/tests/spec/glsl-1.10/execution/fs-frontfacing-ternary-1.0-neg-1.0.shader_test b/tests/spec/glsl-1.10/execution/fs-frontfacing-ternary-1.0-neg-1.0.shader_test new file mode 100644 index 0000000..b4e6360 --- /dev/null +++ b/tests/spec/glsl-1.10/execution/fs-frontfacing-ternary-1.0-neg-1.0.shader_test @@ -0,0 +1,20 @@ +[require] +GLSL >= 1.10 + +[vertex shader passthrough + +[fragment shader] +void main() +{ + float f = gl_FrontFacing ? 1.0 : -1.0; + f = f * 0.25 + 0.5; // Remap (1.0, -1.0) -> (0.75, 0.25) + gl_FragColor = vec4(0.0, f, 0.0, 1.0); +} + +[test] +draw rect -1 -1 2 1 +draw rect 1 0 -2 1 +relative probe rgba (0, 0) (0.0, 0.75, 0.0, 1.0) +relative probe rgba (1, 0) (0.0, 0.75, 0.0, 1.0) +relative probe rgba (0, 1) (0.0, 0.25, 0.0, 1.0) +relative probe rgba (1, 1) (0.0, 0.25, 0.0, 1.0) diff --git a/tests/spec/glsl-1.10/execution/fs-frontfacing-ternary-neg-1.0-1.0.shader_test b/tests/spec/glsl-1.10/execution/fs-frontfacing-ternary-neg-1.0-1.0.shader_test new file mode 100644 index 0000000..47a1eda --- /dev/null +++ b/tests/spec/glsl-1.10/execution/fs-frontfacing-ternary-neg-1.0-1.0.shader_test @@ -0,0 +1,20 @@ +[require] +GLSL >= 1.10 + +[vertex shader passthrough + +[fragment shader] +void main() +{ + float f = gl_FrontFacing ? -1.0 : 1.0; + f = f * -0.25 + 0.5; // Remap (-1.0, 1.0) -> (0.75, 0.25) + gl_FragColor = vec4(0.0, f, 0.0, 1.0); +} + +[test] +draw rect -1 -1 2 1 +draw rect 1 0 -2 1 +relative probe rgba (0, 0) (0.0, 0.75, 0.0, 1.0) +relative probe rgba (1, 0) (0.0, 0.75, 0.0, 1.0) +relative probe rgba (0, 1) (0.0, 0.25, 0.0, 1.0) +relative probe rgba (1, 1) (0.0, 0.25, 0.0, 1.0) -- 2.0.4 _______________________________________________ Piglit mailing list Piglit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/piglit