From 9eccbea2e940bfeb5aa687b75aa5679eb41320a2 Mon Sep 17 00:00:00 2001 From: foreman Date: Tue, 20 Oct 2015 18:37:35 -0400 Subject: [PATCH] P4 to Git Change 1201783 by gandryey@gera-w8 on 2015/10/20 18:03:34 SWDEV-79151 - clenqueuereadImage is slow when using a pinned buffer and a row_picth!0 - Add a check if the provided rowPitch is equal to the actual transfer width. SDMA doesn't support row/slice pitches, thus runtime still has to fall back to compute in other cases Affected files ... ... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_memobj.cpp#78 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpublit.cpp#120 edit ... //depot/stg/opencl/drivers/opencl/runtime/platform/memory.cpp#122 edit ... //depot/stg/opencl/drivers/opencl/runtime/platform/memory.hpp#92 edit [ROCm/clr commit: 69374d1cd9a39dbc5e7e94dc5ef1b83261203b83] --- projects/clr/opencl/api/opencl/amdocl/cl_memobj.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/clr/opencl/api/opencl/amdocl/cl_memobj.cpp b/projects/clr/opencl/api/opencl/amdocl/cl_memobj.cpp index 4f870988ef..222a0a3df0 100644 --- a/projects/clr/opencl/api/opencl/amdocl/cl_memobj.cpp +++ b/projects/clr/opencl/api/opencl/amdocl/cl_memobj.cpp @@ -2363,7 +2363,7 @@ RUNTIME_ENTRY(cl_int, clEnqueueReadImage, ( } if (!srcImage->validateRegion(srcOrigin, srcRegion) || - !srcImage->isSliceValid(row_pitch, slice_pitch, region[1])) { + !srcImage->isRowSliceValid(row_pitch, slice_pitch, region[0], region[1])) { return CL_INVALID_VALUE; } @@ -2561,7 +2561,7 @@ RUNTIME_ENTRY(cl_int, clEnqueueWriteImage, ( } if (!dstImage->validateRegion(dstOrigin, dstRegion) || - !dstImage->isSliceValid(input_row_pitch, input_slice_pitch, region[1])) { + !dstImage->isRowSliceValid(input_row_pitch, input_slice_pitch, region[0], region[1])) { return CL_INVALID_VALUE; }