31 __local void *
const dst,
size_t dst_offset,
const __global void *
const src,
size_t src_offset,
32 size_t num_bytes_per_element,
size_t num_elements_per_line,
size_t num_lines,
size_t num_planes,
33 size_t src_total_line_length,
size_t src_total_plane_spacing,
size_t dst_total_line_length,
34 size_t dst_total_plane_spacing,
event_t event) {
35 for (
size_t plane = 0; plane < num_planes; plane++) {
37 src + ((src_offset + (src_total_plane_spacing * plane)) * num_bytes_per_element);
38 __local uchar *dst_ptr = dst + ((dst_offset + (dst_total_plane_spacing * plane)) * num_bytes_per_element);
40 for (
size_t line = 0; line < num_lines; line++) {
41 async_work_group_copy(dst_ptr, src_ptr, num_bytes_per_element * num_elements_per_line, event);
43 src_ptr += src_total_line_length * num_bytes_per_element;
44 dst_ptr += dst_total_line_length * num_bytes_per_element;
57 __global void *
const dst,
size_t dst_offset,
const __local void *
const src,
size_t src_offset,
58 size_t num_bytes_per_element,
size_t num_elements_per_line,
size_t num_lines,
size_t num_planes,
59 size_t src_total_line_length,
size_t src_total_plane_spacing,
size_t dst_total_line_length,
60 size_t dst_total_plane_spacing,
event_t event) {
61 for (
size_t plane = 0; plane < num_planes; plane++) {
62 const __local uchar *src_ptr = src + ((src_offset + (src_total_plane_spacing * plane)) * num_bytes_per_element);
63 __global uchar *dst_ptr = dst + ((dst_offset + (dst_total_plane_spacing * plane)) * num_bytes_per_element);
65 for (
size_t line = 0; line < num_lines; line++) {
66 async_work_group_copy(dst_ptr, src_ptr, num_bytes_per_element * num_elements_per_line, event);
68 src_ptr += src_total_line_length * num_bytes_per_element;
69 dst_ptr += dst_total_line_length * num_bytes_per_element;
event_t async_work_group_copy_3D3D(__local void *const dst, size_t dst_offset, const __global void *const src, size_t src_offset, size_t num_bytes_per_element, size_t num_elements_per_line, size_t num_lines, size_t num_planes, size_t src_total_line_length, size_t src_total_plane_spacing, size_t dst_total_line_length, size_t dst_total_plane_spacing, event_t event)
async_work_group_copy_3D3D is not supported by all OpenCL drivers