[Piglit] [PATCH] framework/test/shader_test: Fix MultiShaderRunner handling of directories

Michel Dänzer michel at daenzer.net
Wed Nov 9 03:08:31 UTC 2016


On 09/11/16 08:51 AM, Dylan Baker wrote:
> Currently MultiShaderRunner (used with --process-isolation false)
> expects each directory will contain either GL, GLES2, or GLES3 shaders.
> The barrier between GLES2 and GLES3 is somewhat artificial, since they
> can be promoted to GLES3. This patch allows GLES2 and GLES3 shaders to
> be run together but still enforces a separation between GLES and GL
> shaders.
> 
> cc: Marek Olšák <maraeo at gmail.com>
> Signed-off-by: Dylan Baker <dylanx.c.baker at intel.com>
> ---
>  framework/test/shader_test.py | 16 +++++++++++++++-
>  1 file changed, 15 insertions(+), 1 deletion(-)
> 
> diff --git a/framework/test/shader_test.py b/framework/test/shader_test.py
> index 447e8c0..1966149 100644
> --- a/framework/test/shader_test.py
> +++ b/framework/test/shader_test.py
> @@ -200,7 +200,21 @@ class MultiShaderTest(ReducedProcessMixin, PiglitBaseTest):
>              subtest = os.path.basename(os.path.splitext(each)[0]).lower()
>  
>              if prog is not None:
> -                assert parser.prog == prog
> +                # This allows mixing GLES2 and GLES3 shader test files
> +                # together. Since GLES2 profiles can be promoted to GLES3, this
> +                # is fine.
> +                if parser.prog != prog:
> +                    # Pylint can't figure out that prog is not None.
> +                    if 'gles' in parser.prog and 'gles' in prog:  # pylint: disable=unsupported-membership-test
> +                        prog = max(parser.prog, prog)
> +                    else:
> +                        # The only way we can get here is if one is GLES and
> +                        # one is not, since there is only one desktop runner
> +                        # and so it will never fail the is parser.prog != prog
> +                        # check
> +                        raise exceptions.PiglitInternalError(
> +                            'GLES and GL shaders in the same command!\n'
> +                            'Cannot pick a shader_runner binary!')
>              else:
>                  prog = parser.prog
>  
> 

Tested-by: Michel Dänzer <michel.daenzer at amd.com>


-- 
Earthling Michel Dänzer               |               http://www.amd.com
Libre software enthusiast             |             Mesa and X developer


More information about the Piglit mailing list