[Piglit] [PATCH] Add basic execution tests for GL_AMD_shader_trinary_minmax.

Ian Romanick idr at freedesktop.org
Wed Apr 30 11:55:48 PDT 2014


There are a bunch of generated tests for this extension (in
generated_tests/spec/AMD_shader_trinary_minmax/).  Since these are
specifically testing cases with constants, I'd rename these
mid3-with-constants.shader_test.

On 04/30/2014 02:28 AM, Petri Latvala wrote:
> Signed-off-by: Petri Latvala <petri.latvala at intel.com>
> ---
> 
> These three tests are very simple tests for
> GL_AMD_shader_trinary_minmax functions that I used for
> regression-testing Mesa optimizations when constants are involved in
> the calls.
> 
> Tested on Mesa/Haswell, the tests pass.

The above text should go in the commit message.

Other than that, I think these tests are fine.

Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

> I will need someone to push this if it's accepted.
> 
> 
>  tests/all.py                                       |  3 ++
>  .../execution/max3-basic.shader_test               | 50 ++++++++++++++++++++++
>  .../execution/mid3-basic.shader_test               | 50 ++++++++++++++++++++++
>  .../execution/min3-basic.shader_test               | 50 ++++++++++++++++++++++
>  4 files changed, 153 insertions(+)
>  create mode 100644 tests/spec/amd_shader_trinary_minmax/execution/max3-basic.shader_test
>  create mode 100644 tests/spec/amd_shader_trinary_minmax/execution/mid3-basic.shader_test
>  create mode 100644 tests/spec/amd_shader_trinary_minmax/execution/min3-basic.shader_test
> 
> diff --git a/tests/all.py b/tests/all.py
> index 553ae76..a67e725 100644
> --- a/tests/all.py
> +++ b/tests/all.py
> @@ -1434,6 +1434,9 @@ spec['AMD_shader_trinary_minmax'] = {}
>  import_glsl_parser_tests(spec['AMD_shader_trinary_minmax'],
>  			 os.path.join(testsDir, 'spec', 'amd_shader_trinary_minmax'),
>  			 [''])
> +add_shader_test_dir(spec['AMD_shader_trinary_minmax'],
> +                    os.path.join(testsDir, 'spec', 'amd_shader_trinary_minmax'),
> +                    recursive=True)
>  
>  # Group ARB_point_sprite
>  arb_point_sprite = {}
> diff --git a/tests/spec/amd_shader_trinary_minmax/execution/max3-basic.shader_test b/tests/spec/amd_shader_trinary_minmax/execution/max3-basic.shader_test
> new file mode 100644
> index 0000000..be28d7b
> --- /dev/null
> +++ b/tests/spec/amd_shader_trinary_minmax/execution/max3-basic.shader_test
> @@ -0,0 +1,50 @@
> +[require]
> +GLSL >= 1.10
> +GL_AMD_shader_trinary_minmax
> +
> +[vertex shader passthrough]
> +
> +[fragment shader]
> +
> +#extension GL_AMD_shader_trinary_minmax : require
> +
> +uniform float zero;
> +uniform float one;
> +uniform float middle;
> +
> +float test_all_constants()
> +{
> +	return max3(0.0, 1.0, 0.5);
> +}
> +
> +float test_two_constants()
> +{
> +	return max3(0.5, one, 0.0);
> +}
> +
> +float test_one_constant()
> +{
> +	return max3(one, zero, 0.5);
> +}
> +
> +float test_no_constants()
> +{
> +	return max3(middle, one, zero);
> +}
> +
> +void main()
> +{
> +	float r = test_all_constants();
> +	float g = test_two_constants();
> +	float b = test_one_constant();
> +	float a = test_no_constants();
> +
> +	gl_FragColor = vec4(r, g, b, a);
> +}
> +
> +[test]
> +uniform float zero 0.0
> +uniform float one 1.0
> +uniform float middle 0.5
> +draw rect -1 -1 2 2
> +probe all rgba 1.0 1.0 1.0 1.0
> diff --git a/tests/spec/amd_shader_trinary_minmax/execution/mid3-basic.shader_test b/tests/spec/amd_shader_trinary_minmax/execution/mid3-basic.shader_test
> new file mode 100644
> index 0000000..719f138
> --- /dev/null
> +++ b/tests/spec/amd_shader_trinary_minmax/execution/mid3-basic.shader_test
> @@ -0,0 +1,50 @@
> +[require]
> +GLSL >= 1.10
> +GL_AMD_shader_trinary_minmax
> +
> +[vertex shader passthrough]
> +
> +[fragment shader]
> +
> +#extension GL_AMD_shader_trinary_minmax : require
> +
> +uniform float zero;
> +uniform float one;
> +uniform float middle;
> +
> +float test_all_constants()
> +{
> +	return mid3(0.0, 1.0, 0.5);
> +}
> +
> +float test_two_constants()
> +{
> +	return mid3(0.5, one, 0.0);
> +}
> +
> +float test_one_constant()
> +{
> +	return mid3(one, zero, 0.5);
> +}
> +
> +float test_no_constants()
> +{
> +	return mid3(middle, one, zero);
> +}
> +
> +void main()
> +{
> +	float r = test_all_constants();
> +	float g = test_two_constants();
> +	float b = test_one_constant();
> +	float a = test_no_constants();
> +
> +	gl_FragColor = vec4(r, g, b, a);
> +}
> +
> +[test]
> +uniform float zero 0.0
> +uniform float one 1.0
> +uniform float middle 0.5
> +draw rect -1 -1 2 2
> +probe all rgba 0.5 0.5 0.5 0.5
> diff --git a/tests/spec/amd_shader_trinary_minmax/execution/min3-basic.shader_test b/tests/spec/amd_shader_trinary_minmax/execution/min3-basic.shader_test
> new file mode 100644
> index 0000000..3589b8e
> --- /dev/null
> +++ b/tests/spec/amd_shader_trinary_minmax/execution/min3-basic.shader_test
> @@ -0,0 +1,50 @@
> +[require]
> +GLSL >= 1.10
> +GL_AMD_shader_trinary_minmax
> +
> +[vertex shader passthrough]
> +
> +[fragment shader]
> +
> +#extension GL_AMD_shader_trinary_minmax : require
> +
> +uniform float zero;
> +uniform float one;
> +uniform float middle;
> +
> +float test_all_constants()
> +{
> +	return min3(0.0, 1.0, 0.5);
> +}
> +
> +float test_two_constants()
> +{
> +	return min3(0.5, one, 0.0);
> +}
> +
> +float test_one_constant()
> +{
> +	return min3(one, zero, 0.5);
> +}
> +
> +float test_no_constants()
> +{
> +	return min3(middle, one, zero);
> +}
> +
> +void main()
> +{
> +	float r = test_all_constants();
> +	float g = test_two_constants();
> +	float b = test_one_constant();
> +	float a = test_no_constants();
> +
> +	gl_FragColor = vec4(r, g, b, a);
> +}
> +
> +[test]
> +uniform float zero 0.0
> +uniform float one 1.0
> +uniform float middle 0.5
> +draw rect -1 -1 2 2
> +probe all rgba 0.0 0.0 0.0 0.0
> 



More information about the Piglit mailing list