P4 to Git Change 2031605 by gandryey@gera-win10 on 2019/11/15 16:34:08

SWDEV-79445 - OCL generic changes and code clean-up
	- Make sure transfer doesn't exceed CP dma limit

Affected files ...

... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palresource.cpp#81 edit
Этот коммит содержится в:
foreman
2019-11-15 16:38:27 -05:00
родитель 1abf6a3655
Коммит 58e4bca449
+16 -1
Просмотреть файл
@@ -1471,7 +1471,22 @@ bool Resource::partialMemCopyTo(VirtualGPU& gpu, const amd::Coord3D& srcOrigin,
copyRegion.srcOffset = srcOrigin[0] + offset();
copyRegion.dstOffset = dstOrigin[0] + dstResource.offset();
copyRegion.copySize = size[0];
gpu.iCmd()->CmdCopyMemory(*iMem(), *dstResource.iMem(), 1, &copyRegion);
constexpr size_t CpCopySizeLimit = (1 << 26) - sizeof(uint64_t);
if (dev().settings().disableSdma_ && (size[0] > CpCopySizeLimit)) {
size_t orgSize = size[0];
copyRegion.copySize = CpCopySizeLimit;
do {
gpu.iCmd()->CmdCopyMemory(*iMem(), *dstResource.iMem(), 1, &copyRegion);
copyRegion.srcOffset += CpCopySizeLimit;
copyRegion.dstOffset += CpCopySizeLimit;
orgSize -= (orgSize > CpCopySizeLimit) ? CpCopySizeLimit : orgSize;
if (orgSize < CpCopySizeLimit) {
copyRegion.copySize = orgSize;
}
} while (orgSize > 0);
} else {
gpu.iCmd()->CmdCopyMemory(*iMem(), *dstResource.iMem(), 1, &copyRegion);
}
}
}