Enqueues a command to read data from \p image to host memory. \see_opencl_ref{clEnqueueReadImage}
| 891 | /// |
| 892 | /// \see_opencl_ref{clEnqueueReadImage} |
| 893 | event enqueue_read_image(const image_object& image, |
| 894 | const size_t *origin, |
| 895 | const size_t *region, |
| 896 | size_t row_pitch, |
| 897 | size_t slice_pitch, |
| 898 | void *host_ptr, |
| 899 | const wait_list &events = wait_list()) |
| 900 | { |
| 901 | BOOST_ASSERT(m_queue != 0); |
| 902 | |
| 903 | event event_; |
| 904 | |
| 905 | cl_int ret = clEnqueueReadImage( |
| 906 | m_queue, |
| 907 | image.get(), |
| 908 | CL_TRUE, |
| 909 | origin, |
| 910 | region, |
| 911 | row_pitch, |
| 912 | slice_pitch, |
| 913 | host_ptr, |
| 914 | events.size(), |
| 915 | events.get_event_ptr(), |
| 916 | &event_.get() |
| 917 | ); |
| 918 | |
| 919 | if(ret != CL_SUCCESS){ |
| 920 | BOOST_THROW_EXCEPTION(opencl_error(ret)); |
| 921 | } |
| 922 | |
| 923 | return event_; |
| 924 | } |
| 925 | |
| 926 | /// \overload |
| 927 | template<size_t N> |