Re: [Piglit] [PATCH v2] arb_gpu_shader_fp64: Add tests to check float to double conversion under non-uniform control flow
Reviewed-by: Nicolai Hähnle On 17.10.2016 08:26, Samuel Iglesias Gonsálvez wrote: We found issues with this case while developing i965's Ivybridge patches to support arb_gpu_shader_fp64. Signed-off-by: Samuel Iglesias Gonsálvez --- .../fs-non-uniform-control-flow-f2d.shader_test| 40 ++ 1 file changed, 40 insertions(+) create mode 100644 tests/spec/arb_gpu_shader_fp64/execution/fs-non-uniform-control-flow-f2d.shader_test diff --git a/tests/spec/arb_gpu_shader_fp64/execution/fs-non-uniform-control-flow-f2d.shader_test b/tests/spec/arb_gpu_shader_fp64/execution/fs-non-uniform-control-flow-f2d.shader_test new file mode 100644 index 000..4b4011e --- /dev/null +++ b/tests/spec/arb_gpu_shader_fp64/execution/fs-non-uniform-control-flow-f2d.shader_test @@ -0,0 +1,40 @@ +# It checks that a float to double conversion works correctly when it is +# under non-uniform control flow. + +[require] +GLSL >= 3.30 +GL_ARB_gpu_shader_fp64 + +[vertex shader passthrough] + +[fragment shader] +#version 330 +#extension GL_ARB_gpu_shader_fp64 : require +out vec4 color; + +void main() { +int cx = int(gl_FragCoord.x) / 125; +int cy = int(gl_FragCoord.y) / 125; +dvec2 rg; +vec2 value; +if ((cx + cy) % 2 == 0) +value = vec2(1.0f, 0.0f); +else +value = vec2(0.0f, 1.0f); +rg = dvec2(value); +if (rg == dvec2(0, 1)) +color = vec4(0, 0, 1, 1); +else +color = vec4(rg, 0, 1); +} + + +[test] +clear color 0.0 0.0 0.0 0.0 +clear +draw rect -1 -1 2 2 +probe rgba 0 0 1.0 0.0 0.0 1.0 +probe rgba 125 0 0.0 0.0 1.0 1.0 +probe rgba 0 125 0.0 0.0 1.0 1.0 +probe rgba 125 125 1.0 0.0 0.0 1.0 + ___ Piglit mailing list Piglit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/piglit
[Piglit] [PATCH v2] arb_gpu_shader_fp64: Add tests to check float to double conversion under non-uniform control flow
We found issues with this case while developing i965's Ivybridge patches to support arb_gpu_shader_fp64. Signed-off-by: Samuel Iglesias Gonsálvez --- .../fs-non-uniform-control-flow-f2d.shader_test| 40 ++ 1 file changed, 40 insertions(+) create mode 100644 tests/spec/arb_gpu_shader_fp64/execution/fs-non-uniform-control-flow-f2d.shader_test diff --git a/tests/spec/arb_gpu_shader_fp64/execution/fs-non-uniform-control-flow-f2d.shader_test b/tests/spec/arb_gpu_shader_fp64/execution/fs-non-uniform-control-flow-f2d.shader_test new file mode 100644 index 000..4b4011e --- /dev/null +++ b/tests/spec/arb_gpu_shader_fp64/execution/fs-non-uniform-control-flow-f2d.shader_test @@ -0,0 +1,40 @@ +# It checks that a float to double conversion works correctly when it is +# under non-uniform control flow. + +[require] +GLSL >= 3.30 +GL_ARB_gpu_shader_fp64 + +[vertex shader passthrough] + +[fragment shader] +#version 330 +#extension GL_ARB_gpu_shader_fp64 : require +out vec4 color; + +void main() { +int cx = int(gl_FragCoord.x) / 125; +int cy = int(gl_FragCoord.y) / 125; +dvec2 rg; +vec2 value; +if ((cx + cy) % 2 == 0) +value = vec2(1.0f, 0.0f); +else +value = vec2(0.0f, 1.0f); +rg = dvec2(value); +if (rg == dvec2(0, 1)) +color = vec4(0, 0, 1, 1); +else +color = vec4(rg, 0, 1); +} + + +[test] +clear color 0.0 0.0 0.0 0.0 +clear +draw rect -1 -1 2 2 +probe rgba 0 0 1.0 0.0 0.0 1.0 +probe rgba 125 0 0.0 0.0 1.0 1.0 +probe rgba 0 125 0.0 0.0 1.0 1.0 +probe rgba 125 125 1.0 0.0 0.0 1.0 + -- 2.7.4 ___ Piglit mailing list Piglit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/piglit