30 __local void *
const dst,
size_t dst_offset,
const __global void *
const src,
size_t src_offset,
31 size_t num_bytes_per_element,
size_t num_elements_per_line,
size_t num_lines,
size_t num_planes,
32 size_t src_total_line_length,
size_t src_total_plane_spacing,
size_t dst_total_line_length,
33 size_t dst_total_plane_spacing,
event_t event) {
34 for (
size_t plane = 0; plane < num_planes; plane++) {
36 src + ((src_offset + (src_total_plane_spacing * plane)) * num_bytes_per_element);
37 __local uchar *dst_ptr = dst + ((dst_offset + (dst_total_plane_spacing * plane)) * num_bytes_per_element);
39 for (
size_t line = 0; line < num_lines; line++) {
40 async_work_group_copy(dst_ptr, src_ptr, num_bytes_per_element * num_elements_per_line, event);
42 src_ptr += src_total_line_length * num_bytes_per_element;
43 dst_ptr += dst_total_line_length * num_bytes_per_element;
56 __global void *
const dst,
size_t dst_offset,
const __local void *
const src,
size_t src_offset,
57 size_t num_bytes_per_element,
size_t num_elements_per_line,
size_t num_lines,
size_t num_planes,
58 size_t src_total_line_length,
size_t src_total_plane_spacing,
size_t dst_total_line_length,
59 size_t dst_total_plane_spacing,
event_t event) {
60 for (
size_t plane = 0; plane < num_planes; plane++) {
61 const __local uchar *src_ptr = src + ((src_offset + (src_total_plane_spacing * plane)) * num_bytes_per_element);
62 __global uchar *dst_ptr = dst + ((dst_offset + (dst_total_plane_spacing * plane)) * num_bytes_per_element);
64 for (
size_t line = 0; line < num_lines; line++) {
65 async_work_group_copy(dst_ptr, src_ptr, num_bytes_per_element * num_elements_per_line, event);
67 src_ptr += src_total_line_length * num_bytes_per_element;
68 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