TransferProperties: lock resource only when transfer on CPU is requested

Change-Id: Ic93b4fd438e75f5d54cbae9bec332c4b18c6b1ee
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
Mateusz Jablonski
2019-04-01 12:42:26 +02:00
committed by sys_ocldev
parent e82d6e63cb
commit f3d17008ee
7 changed files with 37 additions and 19 deletions

View File

@@ -14,7 +14,7 @@
namespace NEO {
TransferProperties::TransferProperties(MemObj *memObj, cl_command_type cmdType, cl_map_flags mapFlags, bool blocking,
size_t *offsetPtr, size_t *sizePtr, void *ptr)
size_t *offsetPtr, size_t *sizePtr, void *ptr, bool doTransferOnCpu)
: memObj(memObj), cmdType(cmdType), mapFlags(mapFlags), blocking(blocking), ptr(ptr) {
// no size or offset passed for unmap operation
@@ -22,7 +22,9 @@ TransferProperties::TransferProperties(MemObj *memObj, cl_command_type cmdType,
if (memObj->peekClMemObjType() == CL_MEM_OBJECT_BUFFER) {
size[0] = *sizePtr;
offset[0] = *offsetPtr;
if ((false == MemoryPool::isSystemMemoryPool(memObj->getGraphicsAllocation()->getMemoryPool())) && (memObj->getMemoryManager() != nullptr)) {
if (doTransferOnCpu &&
(false == MemoryPool::isSystemMemoryPool(memObj->getGraphicsAllocation()->getMemoryPool())) &&
(memObj->getMemoryManager() != nullptr)) {
this->lockedPtr = memObj->getMemoryManager()->lockResource(memObj->getGraphicsAllocation());
}
} else {