[Piglit] [PATCH 2/5] gen_conversion: explicitly enumerate conversion target types
Dylan Baker
dylan at pnwbakers.com
Thu Jan 26 19:27:32 UTC 2017
Quoting Nicolai Hähnle (2017-01-26 10:59:23)
> From: Nicolai Hähnle <nicolai.haehnle at amd.com>
>
> Currently only 'd' for double, but will be extended for 64-bit integer
> types.
> ---
> generated_tests/gen_conversion.py | 21 +++++++++++++--------
> 1 file changed, 13 insertions(+), 8 deletions(-)
>
> diff --git a/generated_tests/gen_conversion.py b/generated_tests/gen_conversion.py
> index fca3b17..456998b 100644
> --- a/generated_tests/gen_conversion.py
> +++ b/generated_tests/gen_conversion.py
> @@ -258,29 +258,30 @@ class TestTuple(object):
> """Returns the inverted float32 hexadecimal representation from a
> float64 hexadecimal representation.
> """
> assert isinstance(hstr, str)
> temp = np.divide(1.0, TestTuple.hex_to_double(hstr))
> float_double = np.float32(temp)
> return TestTuple.float_to_hex(float_double)
>
> def __init__(self, ver, stage,
> first_dimension, second_dimension,
> - basic_type, names_only):
> + basic_type, target_type, names_only):
> assert stage in ('vert', 'geom', 'frag')
> assert first_dimension in ('1', '2', '3', '4')
> assert second_dimension in ('1', '2', '3', '4')
> assert isinstance(names_only, bool)
>
> self._ver = ver
> self._stage = stage
> self._basic_type = basic_type
> + self._target_type = target_type
> self._names_only = names_only
> self._double_type = ''
> self._conversion_type = ''
> self._uniform_type = ''
> self._amount = int(first_dimension) * int(second_dimension)
> self._filenames = []
>
> if first_dimension != '1':
> dimensional_type = 'mat' + first_dimension
> if first_dimension != second_dimension:
> @@ -343,47 +344,51 @@ class RegularTestTuple(TestTuple):
> """
>
> @staticmethod
> def all_tests(names_only):
> """Returns all the possible contained conversion test instances."""
>
> assert isinstance(names_only, bool)
> stages = ['vert', 'geom', 'frag']
> dimensions = ['1', '2', '3', '4']
> basic_types = ['b', 'u', 'i', 'f']
> + target_types = ['d']
> glsl_ver = ['GL_ARB_gpu_shader_fp64', '400']
>
> if not names_only:
> test_types = ['compiler', 'execution']
> for ver, test_type in itertools.product(glsl_ver, test_types):
> utils.safe_makedirs(get_dir_name(ver, test_type))
>
> - for ver, stage, first_dimension, second_dimension, basic_type in itertools.product(
> + for ver, stage, first_dimension, second_dimension, basic_type, target_type in itertools.product(
> glsl_ver,
> stages,
> dimensions,
> dimensions,
> - basic_types):
> - if not (first_dimension != '1' and (second_dimension == '1' or basic_type != 'f')):
> + basic_types,
> + target_types):
> + if (not (first_dimension != '1' and (second_dimension == '1' or basic_type != 'f')) and
You've added an unnecessary set of parens here.
> + (basic_type not in target_types or basic_type < target_type)):
> yield RegularTestTuple(ver, stage,
> first_dimension, second_dimension,
> - basic_type, names_only)
> + basic_type, target_type, names_only)
>
> def __init__(self, ver, stage,
> first_dimension, second_dimension,
> - basic_type, names_only):
> + basic_type, target_type, names_only):
> assert ver in ('GL_ARB_gpu_shader_fp64', '400')
> assert basic_type in ('b', 'u', 'i', 'f')
> + assert target_type in ('d')
why is this not "assert target_type == 'd'"?
> assert not (first_dimension != '1' and (second_dimension == '1' or basic_type != 'f'))
> super(RegularTestTuple, self).__init__(ver, stage,
> first_dimension, second_dimension,
> - basic_type, names_only)
> + basic_type, target_type, names_only)
>
> def _gen_comp_test(self, from_type, to_type, converted_from):
> filename = os.path.join(
> get_dir_name(self._ver, 'compiler'),
> '{}-conversion-implicit-{}-{}-bad.{}'.format(self._stage, from_type, to_type,
> self._stage))
>
> self._filenames.append(filename)
>
> if not self._names_only:
> @@ -512,21 +517,21 @@ class ZeroSignTestTuple(TestTuple):
> basic_type, names_only)
>
> def __init__(self, ver, stage,
> first_dimension, second_dimension,
> basic_type, names_only):
> assert ver in ('410', '420')
> assert basic_type == 'f'
> assert not (first_dimension != '1' and second_dimension == '1')
> super(ZeroSignTestTuple, self).__init__(ver, stage,
> first_dimension, second_dimension,
> - basic_type, names_only)
> + basic_type, 'd', names_only)
>
> def __gen_zero_sign_exec_test(self, from_type, to_type,
> uniform_from_type, uniform_to_type,
> explicit, converted_from, conversions):
> filename = os.path.join(
> get_dir_name(self._ver, 'execution'),
> '{}-conversion-{}-{}-{}-zero-sign.shader_test'.format(self._stage, explicit,
> from_type, to_type))
>
> self._filenames.append(filename)
> --
> 2.7.4
>
> _______________________________________________
> Piglit mailing list
> Piglit at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/piglit
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: signature
URL: <https://lists.freedesktop.org/archives/piglit/attachments/20170126/9c80035c/attachment-0001.sig>
More information about the Piglit
mailing list