| 157 | } |
| 158 | |
| 159 | void opencl_buffer::copy(const compute_queue& cqueue, const compute_buffer& src, |
| 160 | const size_t size_, const size_t src_offset, const size_t dst_offset) { |
| 161 | if(buffer == nullptr) return; |
| 162 | |
| 163 | // use min(src size, dst size) as the default size if no size is specified |
| 164 | const size_t src_size = src.get_size(); |
| 165 | const size_t copy_size = (size_ == 0 ? std::min(src_size, size) : size_); |
| 166 | if(!copy_check(size, src_size, copy_size, dst_offset, src_offset)) return; |
| 167 | |
| 168 | // TODO: blocking flag? |
| 169 | clEnqueueCopyBuffer((cl_command_queue)const_cast<void*>(cqueue.get_queue_ptr()), |
| 170 | ((const opencl_buffer&)src).get_cl_buffer(), buffer, src_offset, dst_offset, copy_size, |
| 171 | 0, nullptr, nullptr); |
| 172 | } |
| 173 | |
| 174 | bool opencl_buffer::fill(const compute_queue& cqueue, |
| 175 | const void* pattern, const size_t& pattern_size, |
nothing calls this directly
no test coverage detected