diff --git a/src/wrapper/wrap_cl.hpp b/src/wrapper/wrap_cl.hpp index 38667949518d76d3a1ffb2d2a258234ea8a92d47..cce59d66cf79396c2e107b365bbb67a173746ead 100644 --- a/src/wrapper/wrap_cl.hpp +++ b/src/wrapper/wrap_cl.hpp @@ -1756,7 +1756,9 @@ namespace pyopencl if (py_hostbuf.ptr() != Py_None) { PYOPENCL_BUFFER_SIZE_T len; - if (flags & CL_MEM_USE_HOST_PTR) + if ((flags & CL_MEM_USE_HOST_PTR) + && ((flags & CL_MEM_READ_WRITE) + || (flags & CL_MEM_WRITE_ONLY))) { if (PyObject_AsWriteBuffer(py_hostbuf.ptr(), &buf, &len)) throw py::error_already_set(); @@ -2236,7 +2238,9 @@ namespace pyopencl if (buffer.ptr() != Py_None) { - if (flags & CL_MEM_USE_HOST_PTR) + if ((flags & CL_MEM_USE_HOST_PTR) + && ((flags & CL_MEM_READ_WRITE) + || (flags & CL_MEM_WRITE_ONLY))) { if (PyObject_AsWriteBuffer(buffer.ptr(), &buf, &len)) throw py::error_already_set();