From d68c4e65dbf49a9590a4c17e3bc95d0f63ef635b Mon Sep 17 00:00:00 2001 From: foreman Date: Tue, 24 Mar 2015 11:45:49 -0400 Subject: [PATCH] P4 to Git Change 1133818 by gandryey@gera-w8 on 2015/03/24 11:30:12 ECR #304775 - Mipmaps support in OCL - Add support for clEnqueueMapImage/Unmap functionality Affected files ... ... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_memobj.cpp#76 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/device.cpp#175 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/device.hpp#241 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudevice.cpp#503 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudevice.hpp#140 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpumemory.cpp#120 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuresource.cpp#212 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuvirtual.cpp#356 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/hsa/hsadevice.cpp#89 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/hsa/hsadevice.hpp#46 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/hsa_foundation/hsadevice.cpp#27 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/hsa_foundation/hsadevice.hpp#13 edit ... //depot/stg/opencl/drivers/opencl/runtime/platform/commandqueue.hpp#14 edit [ROCm/clr commit: e008fb30e0cd791b908173aab3d22c2564148f91] --- projects/clr/opencl/api/opencl/amdocl/cl_memobj.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/projects/clr/opencl/api/opencl/amdocl/cl_memobj.cpp b/projects/clr/opencl/api/opencl/amdocl/cl_memobj.cpp index 495277f57e..3a780da247 100644 --- a/projects/clr/opencl/api/opencl/amdocl/cl_memobj.cpp +++ b/projects/clr/opencl/api/opencl/amdocl/cl_memobj.cpp @@ -3570,7 +3570,7 @@ RUNTIME_ENTRY_RET(void *, clEnqueueMapImage, ( if (srcImage->getMipLevels() > 1) { // Create a view for the specified mip level mip = srcImage->createView(srcImage->getContext(), - srcImage->getImageFormat(), NULL, origin[srcImage->getDims()]); + srcImage->getImageFormat(), hostQueue.vdev(), origin[srcImage->getDims()]); if (mip() == NULL) { *not_null(errcode_ret) = CL_OUT_OF_HOST_MEMORY; return NULL; @@ -3579,7 +3579,10 @@ RUNTIME_ENTRY_RET(void *, clEnqueueMapImage, ( if (srcImage->getDims() < 3) { srcOrigin.c[srcImage->getDims()] = 0; } + srcImage->incMapCount(); srcImage = mip(); + // Retain this view until unmap is done + srcImage->retain(); } if (!srcImage->validateRegion(srcOrigin, srcRegion)) {