diff --git a/loopy/kernel/data.py b/loopy/kernel/data.py index c95ca0e9144e54c704e8aaa1444aba818bdbe27b..9266db0e357908e00c33256ac79b781be71bd705 100644 --- a/loopy/kernel/data.py +++ b/loopy/kernel/data.py @@ -244,7 +244,7 @@ class ImageArg(ArrayBase, KernelArgument): def get_arg_decl(self, target, name_suffix, shape, dtype, is_written): return target.get_image_arg_decl(self.name + name_suffix, shape, - dtype, is_written) + self.num_target_axes(), dtype, is_written) class ValueArg(KernelArgument): diff --git a/loopy/target/__init__.py b/loopy/target/__init__.py index 17534bf6dee1c18fbc831c4a7904c635491b3757..ba83b07eeb7cb0d1d28237c1b9d66eba4c75b6fc 100644 --- a/loopy/target/__init__.py +++ b/loopy/target/__init__.py @@ -119,7 +119,7 @@ class TargetBase(object): def get_global_arg_decl(self, name, shape, dtype, is_written): raise NotImplementedError() - def get_image_arg_decl(self, name, shape, dtype, is_written): + def get_image_arg_decl(self, name, shape, num_target_axes, dtype, is_written): raise NotImplementedError() # }}} diff --git a/loopy/target/opencl.py b/loopy/target/opencl.py index 4a9b0f31d9a8ffb57896fab773c474d6a5bca1bd..9b5c4544b934e3fe44215175d07896eba560c014 100644 --- a/loopy/target/opencl.py +++ b/loopy/target/opencl.py @@ -309,14 +309,14 @@ class OpenCLTarget(CTarget): return CLGlobal(super(OpenCLTarget, self).get_global_arg_decl( name, shape, dtype, is_written)) - def get_image_arg_decl(self, name, shape, dtype, is_written): + def get_image_arg_decl(self, name, shape, num_target_axes, dtype, is_written): if is_written: mode = "w" else: mode = "r" from cgen.opencl import CLImage - return CLImage(self.num_target_axes(), mode, name) + return CLImage(num_target_axes, mode, name) def get_constant_arg_decl(self, name, shape, dtype, is_written): from loopy.codegen import POD # uses the correct complex type