sometimes, application invokes read buffer, instead of map buffer, even if userptr is enabled. memcpy is not necessary for such case.
Signed-off-by: Guo Yejun <[email protected]> --- src/cl_enqueue.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/cl_enqueue.c b/src/cl_enqueue.c index cec368c..081ffce 100644 --- a/src/cl_enqueue.c +++ b/src/cl_enqueue.c @@ -48,7 +48,10 @@ cl_int cl_enqueue_read_buffer(enqueue_data* data) if (src_ptr == NULL) err = CL_MAP_FAILURE; else { - memcpy(data->ptr, (char*)src_ptr + data->offset + buffer->sub_offset, data->size); + //sometimes, application invokes read buffer, instead of map buffer, even if userptr is enabled + //memcpy is not necessary for this case + if (data->ptr != (char*)src_ptr + data->offset + buffer->sub_offset) + memcpy(data->ptr, (char*)src_ptr + data->offset + buffer->sub_offset, data->size); cl_mem_unmap_auto(mem); } } -- 1.9.1 _______________________________________________ Beignet mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/beignet
