mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-05 18:06:32 +08:00
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:
committed by
sys_ocldev
parent
e82d6e63cb
commit
f3d17008ee
@@ -20,11 +20,11 @@ TEST(TransferPropertiesTest, givenTransferPropertiesCreatedWhenDefaultDebugSetti
|
||||
|
||||
size_t offset = 0;
|
||||
size_t size = 4096u;
|
||||
TransferProperties transferProperties(&buffer, CL_COMMAND_MAP_BUFFER, 0, false, &offset, &size, nullptr);
|
||||
TransferProperties transferProperties(&buffer, CL_COMMAND_MAP_BUFFER, 0, false, &offset, &size, nullptr, true);
|
||||
EXPECT_EQ(nullptr, transferProperties.lockedPtr);
|
||||
}
|
||||
|
||||
TEST(TransferPropertiesTest, givenAllocationInNonSystemPoolWhenTransferPropertiesAreCreatedForMapBufferThenLockPtrIsSet) {
|
||||
TEST(TransferPropertiesTest, givenAllocationInNonSystemPoolWhenTransferPropertiesAreCreatedForMapBufferAndCpuTransferIsRequestedThenLockPtrIsSet) {
|
||||
MockExecutionEnvironment executionEnvironment(*platformDevices);
|
||||
MemoryManagerCreate<OsAgnosticMemoryManager> memoryManager(false, true, executionEnvironment);
|
||||
|
||||
@@ -37,9 +37,25 @@ TEST(TransferPropertiesTest, givenAllocationInNonSystemPoolWhenTransferPropertie
|
||||
size_t offset = 0;
|
||||
size_t size = 4096u;
|
||||
|
||||
TransferProperties transferProperties(buffer.get(), CL_COMMAND_MAP_BUFFER, 0, false, &offset, &size, nullptr);
|
||||
TransferProperties transferProperties(buffer.get(), CL_COMMAND_MAP_BUFFER, 0, false, &offset, &size, nullptr, true);
|
||||
EXPECT_NE(nullptr, transferProperties.lockedPtr);
|
||||
}
|
||||
TEST(TransferPropertiesTest, givenAllocationInNonSystemPoolWhenTransferPropertiesAreCreatedForMapBufferAndCpuTransferIsNotRequestedThenLockPtrIsNotSet) {
|
||||
MockExecutionEnvironment executionEnvironment(*platformDevices);
|
||||
MemoryManagerCreate<OsAgnosticMemoryManager> memoryManager(false, true, executionEnvironment);
|
||||
|
||||
MockContext ctx;
|
||||
ctx.setMemoryManager(&memoryManager);
|
||||
cl_int retVal;
|
||||
std::unique_ptr<Buffer> buffer(Buffer::create(&ctx, 0, 1, nullptr, retVal));
|
||||
static_cast<MemoryAllocation *>(buffer->getGraphicsAllocation())->overrideMemoryPool(MemoryPool::SystemCpuInaccessible);
|
||||
|
||||
size_t offset = 0;
|
||||
size_t size = 4096u;
|
||||
|
||||
TransferProperties transferProperties(buffer.get(), CL_COMMAND_MAP_BUFFER, 0, false, &offset, &size, nullptr, false);
|
||||
EXPECT_EQ(nullptr, transferProperties.lockedPtr);
|
||||
}
|
||||
|
||||
TEST(TransferPropertiesTest, givenAllocationInSystemPoolWhenTransferPropertiesAreCreatedForMapBufferThenLockPtrIsNotSet) {
|
||||
MockExecutionEnvironment executionEnvironment(*platformDevices);
|
||||
@@ -54,7 +70,7 @@ TEST(TransferPropertiesTest, givenAllocationInSystemPoolWhenTransferPropertiesAr
|
||||
size_t offset = 0;
|
||||
size_t size = 4096u;
|
||||
|
||||
TransferProperties transferProperties(buffer.get(), CL_COMMAND_MAP_BUFFER, 0, false, &offset, &size, nullptr);
|
||||
TransferProperties transferProperties(buffer.get(), CL_COMMAND_MAP_BUFFER, 0, false, &offset, &size, nullptr, true);
|
||||
EXPECT_EQ(nullptr, transferProperties.lockedPtr);
|
||||
}
|
||||
|
||||
@@ -63,7 +79,7 @@ TEST(TransferPropertiesTest, givenTransferPropertiesCreatedWhenMemoryManagerInMe
|
||||
|
||||
size_t offset = 0;
|
||||
size_t size = 4096u;
|
||||
TransferProperties transferProperties(&buffer, CL_COMMAND_MAP_BUFFER, 0, false, &offset, &size, nullptr);
|
||||
TransferProperties transferProperties(&buffer, CL_COMMAND_MAP_BUFFER, 0, false, &offset, &size, nullptr, true);
|
||||
EXPECT_EQ(nullptr, transferProperties.lockedPtr);
|
||||
}
|
||||
|
||||
@@ -80,7 +96,7 @@ TEST(TransferPropertiesTest, givenTransferPropertiesWhenLockedPtrIsSetThenItIsRe
|
||||
size_t offset = 0;
|
||||
size_t size = 4096u;
|
||||
|
||||
TransferProperties transferProperties(buffer.get(), CL_COMMAND_MAP_BUFFER, 0, false, &offset, &size, nullptr);
|
||||
TransferProperties transferProperties(buffer.get(), CL_COMMAND_MAP_BUFFER, 0, false, &offset, &size, nullptr, true);
|
||||
ASSERT_NE(nullptr, transferProperties.lockedPtr);
|
||||
EXPECT_EQ(transferProperties.lockedPtr, transferProperties.getCpuPtrForReadWrite());
|
||||
}
|
||||
@@ -90,7 +106,7 @@ TEST(TransferPropertiesTest, givenTransferPropertiesWhenLockedPtrIsNotSetThenItI
|
||||
|
||||
size_t offset = 0;
|
||||
size_t size = 4096u;
|
||||
TransferProperties transferProperties(&buffer, CL_COMMAND_MAP_BUFFER, 0, false, &offset, &size, nullptr);
|
||||
TransferProperties transferProperties(&buffer, CL_COMMAND_MAP_BUFFER, 0, false, &offset, &size, nullptr, true);
|
||||
ASSERT_EQ(nullptr, transferProperties.lockedPtr);
|
||||
EXPECT_NE(transferProperties.lockedPtr, transferProperties.getCpuPtrForReadWrite());
|
||||
}
|
||||
@@ -104,7 +120,7 @@ TEST(TransferPropertiesTest, givenTransferPropertiesWhenLockedPtrIsSetThenLocked
|
||||
|
||||
size_t offset = 0;
|
||||
size_t size = 4096u;
|
||||
TransferProperties transferProperties(&buffer, CL_COMMAND_MAP_BUFFER, 0, false, &offset, &size, nullptr);
|
||||
TransferProperties transferProperties(&buffer, CL_COMMAND_MAP_BUFFER, 0, false, &offset, &size, nullptr, true);
|
||||
transferProperties.lockedPtr = lockedPtr;
|
||||
auto expectedPtr = ptrOffset(lockedPtr, memObjOffset);
|
||||
EXPECT_EQ(expectedPtr, transferProperties.getCpuPtrForReadWrite());
|
||||
|
||||
Reference in New Issue
Block a user