[Piglit] [PATCH 2/5] gen_conversion: explicitly enumerate conversion target types
Nicolai Hähnle
nhaehnle at gmail.com
Thu Jan 26 18:59:23 UTC 2017
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
+ (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')
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
More information about the Piglit
mailing list