diff --git a/src/wrap_cl.hpp b/src/wrap_cl.hpp index ad5b7ab80c167ccfadbe3e4d5c7673859528a7b1..7ffcc983d7bdf6e5d03871a4a02ee92b9922d5d5 100644 --- a/src/wrap_cl.hpp +++ b/src/wrap_cl.hpp @@ -4343,6 +4343,13 @@ namespace pyopencl sizeof(cl_mem), &m)); } + template <typename T> + void set_arg_pod(cl_uint arg_index, T pod_value) + { + PYOPENCL_CALL_GUARDED(clSetKernelArg, (m_kernel, arg_index, + sizeof(T), &pod_value)); + } + void set_arg_mem(cl_uint arg_index, memory_object_holder &moh) { cl_mem m = moh.data(); diff --git a/src/wrap_cl_part_2.cpp b/src/wrap_cl_part_2.cpp index e68c785128dda3da644a9dbd76c5feb06d7dd591..2c98671803dd4e76674fc270b2e466e75019e824 100644 --- a/src/wrap_cl_part_2.cpp +++ b/src/wrap_cl_part_2.cpp @@ -467,6 +467,13 @@ void pyopencl_expose_part_2(py::module &m) #endif .def("_set_arg_null", &cls::set_arg_null) .def("_set_arg_buf", &cls::set_arg_buf) + .def("_set_arg_mem", &cls::set_arg_mem) + .def("_set_arg_i32", &cls::set_arg_pod<int32_t>) + .def("_set_arg_i64", &cls::set_arg_pod<int64_t>) + .def("_set_arg_u32", &cls::set_arg_pod<uint32_t>) + .def("_set_arg_u64", &cls::set_arg_pod<uint64_t>) + .def("_set_arg_f32", &cls::set_arg_pod<float>) + .def("_set_arg_f64", &cls::set_arg_pod<double>) #if PYOPENCL_CL_VERSION >= 0x2000 .def("_set_arg_svm", &cls::set_arg_svm) #endif