From 8d6426ba82bec102edb5388dd38df9f428035afe Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Mon, 15 Jul 2013 00:58:21 -0400 Subject: [PATCH] Fix 3-wide vectors to match OpenCL's layout --- pyopencl/array.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/pyopencl/array.py b/pyopencl/array.py index ea99b111..7f955687 100644 --- a/pyopencl/array.py +++ b/pyopencl/array.py @@ -78,12 +78,21 @@ def _create_vector_types(): name = "%s%d" % (base_name, count) titles = field_names[:count] - if len(titles) < count: - titles.extend((count-len(titles))*[None]) + + padded_count = count + if count == 3: + padded_count = 4 + + names = ["s%d" % i for i in range(count)] + while len(names) < padded_count: + names.append("padding%d" % (len(names)-count)) + + if len(titles) < len(names): + titles.extend((len(names)-len(titles))*[None]) dtype = np.dtype(dict( - names=["s%d" % i for i in range(count)], - formats=[base_type]*count, + names=names, + formats=[base_type]*padded_count, titles=titles)) get_or_register_dtype(name, dtype) -- GitLab