From a597fdcf9ab0f1b203368e1f073c4e01335728ab Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner <inform@tiker.net> Date: Thu, 29 Oct 2015 12:44:38 -0500 Subject: [PATCH] Fix kernel initialization/setup out of all_kernels() --- pyopencl/__init__.py | 6 ++++++ pyopencl/cffi_cl.py | 6 +++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/pyopencl/__init__.py b/pyopencl/__init__.py index b6e5ea83..0c3df5f9 100644 --- a/pyopencl/__init__.py +++ b/pyopencl/__init__.py @@ -675,10 +675,15 @@ def _add_functionality(): prg = prg._get_prg() kernel_old_init(self, prg, name) + + self._setup(prg) + + def kernel__setup(self, prg): self._source = getattr(prg, "_source", None) self._generate_naive_call() self._wg_info_cache = {} + return self def kernel_get_work_group_info(self, param, device): try: @@ -993,6 +998,7 @@ def _add_functionality(): *args, **kwargs) Kernel.__init__ = kernel_init + Kernel._setup = kernel__setup Kernel.get_work_group_info = kernel_get_work_group_info Kernel._set_set_args_body = kernel__set_set_args_body Kernel._generate_buffer_arg_setter = kernel__generate_buffer_arg_setter diff --git a/pyopencl/cffi_cl.py b/pyopencl/cffi_cl.py index 5cef0a0f..5194f0b1 100644 --- a/pyopencl/cffi_cl.py +++ b/pyopencl/cffi_cl.py @@ -1045,7 +1045,11 @@ class _Program(_Common): knls = _CArray(_ffi.new('clobj_t**')) _handle_error(_lib.program__all_kernels( self.ptr, knls.ptr, knls.size)) - return [Kernel._create(knls.ptr[0][i]) for i in range(knls.size[0])] + return [ + Kernel + ._create(knls.ptr[0][i]) + ._setup(self) + for i in range(knls.size[0])] # }}} -- GitLab