Enqueues a command to copy data from \p src_buffer to \p dst_buffer. \see_opencl_ref{clEnqueueCopyBuffer} \see copy()
| 638 | /// |
| 639 | /// \see copy() |
| 640 | event enqueue_copy_buffer(const buffer &src_buffer, |
| 641 | const buffer &dst_buffer, |
| 642 | size_t src_offset, |
| 643 | size_t dst_offset, |
| 644 | size_t size, |
| 645 | const wait_list &events = wait_list()) |
| 646 | { |
| 647 | BOOST_ASSERT(m_queue != 0); |
| 648 | BOOST_ASSERT(src_offset + size <= src_buffer.size()); |
| 649 | BOOST_ASSERT(dst_offset + size <= dst_buffer.size()); |
| 650 | BOOST_ASSERT(src_buffer.get_context() == this->get_context()); |
| 651 | BOOST_ASSERT(dst_buffer.get_context() == this->get_context()); |
| 652 | |
| 653 | event event_; |
| 654 | |
| 655 | cl_int ret = clEnqueueCopyBuffer( |
| 656 | m_queue, |
| 657 | src_buffer.get(), |
| 658 | dst_buffer.get(), |
| 659 | src_offset, |
| 660 | dst_offset, |
| 661 | size, |
| 662 | events.size(), |
| 663 | events.get_event_ptr(), |
| 664 | &event_.get() |
| 665 | ); |
| 666 | |
| 667 | if(ret != CL_SUCCESS){ |
| 668 | BOOST_THROW_EXCEPTION(opencl_error(ret)); |
| 669 | } |
| 670 | |
| 671 | return event_; |
| 672 | } |
| 673 | |
| 674 | #if defined(BOOST_COMPUTE_CL_VERSION_1_1) || defined(BOOST_COMPUTE_DOXYGEN_INVOKED) |
| 675 | /// Enqueues a command to copy a rectangular region from |
no test coverage detected