mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-03 06:49:52 +08:00
Add dedicated map allocation
Related-To: NEO-2917 Change-Id: Ieeca40f5faf29433a5c464d2c3ca3b8910695a9b Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
This commit is contained in:
committed by
sys_ocldev
parent
91a64c8518
commit
e201725dd5
@@ -464,3 +464,17 @@ TEST(MemObj, givenGraphicsAllocationWhenCallingIsAllocDumpableThenItReturnsTheCo
|
||||
gfxAllocation.setAllocDumpable(true);
|
||||
EXPECT_TRUE(gfxAllocation.isAllocDumpable());
|
||||
}
|
||||
|
||||
TEST(MemObj, givenMemObjNotUsingHostPtrWhenGettingBasePtrTwiceReturnSameMapPtr) {
|
||||
MockContext context;
|
||||
|
||||
MemObj memObj(&context, CL_MEM_OBJECT_BUFFER, CL_MEM_READ_WRITE,
|
||||
1, nullptr, nullptr, nullptr, true, false, false);
|
||||
|
||||
void *mapPtr = memObj.getBasePtrForMap();
|
||||
EXPECT_NE(nullptr, mapPtr);
|
||||
auto mapAllocation = memObj.getMapAllocation();
|
||||
ASSERT_NE(nullptr, mapAllocation);
|
||||
EXPECT_EQ(mapPtr, mapAllocation->getUnderlyingBuffer());
|
||||
EXPECT_EQ(mapPtr, memObj.getAllocatedMapPtr());
|
||||
}
|
||||
|
||||
@@ -162,4 +162,47 @@ TEST_F(SubBufferTest, GivenBufferWithMemoryStorageAndNullHostPtrWhenSubBufferIsC
|
||||
buffer->release();
|
||||
}
|
||||
|
||||
TEST_F(SubBufferTest, givenBufferWithHostPtrWhenSubbufferGetsMapPtrThenExpectBufferHostPtr) {
|
||||
cl_buffer_region region = {0, 16};
|
||||
|
||||
auto subBuffer = buffer->createSubBuffer(CL_MEM_READ_WRITE, ®ion, retVal);
|
||||
ASSERT_NE(nullptr, subBuffer);
|
||||
ASSERT_EQ(CL_SUCCESS, retVal);
|
||||
|
||||
void *mapPtr = subBuffer->getBasePtrForMap();
|
||||
EXPECT_EQ(pHostPtr, mapPtr);
|
||||
mapPtr = subBuffer->getBasePtrForMap();
|
||||
EXPECT_EQ(pHostPtr, mapPtr);
|
||||
|
||||
subBuffer->release();
|
||||
}
|
||||
|
||||
TEST_F(SubBufferTest, givenBufferWithNoHostPtrWhenSubbufferGetsMapPtrThenExpectBufferMap) {
|
||||
cl_buffer_region region = {0, 16};
|
||||
|
||||
Buffer *buffer = Buffer::create(&context, CL_MEM_READ_WRITE,
|
||||
MemoryConstants::pageSize, nullptr, retVal);
|
||||
ASSERT_NE(nullptr, buffer);
|
||||
ASSERT_EQ(CL_SUCCESS, retVal);
|
||||
|
||||
auto subBuffer = buffer->createSubBuffer(CL_MEM_READ_WRITE, ®ion, retVal);
|
||||
ASSERT_NE(nullptr, subBuffer);
|
||||
ASSERT_EQ(CL_SUCCESS, retVal);
|
||||
|
||||
void *mapPtr = subBuffer->getBasePtrForMap();
|
||||
void *bufferMapPtr = buffer->getBasePtrForMap();
|
||||
EXPECT_EQ(bufferMapPtr, mapPtr);
|
||||
auto mapAllocation = subBuffer->getMapAllocation();
|
||||
auto bufferMapAllocation = buffer->getMapAllocation();
|
||||
ASSERT_NE(nullptr, bufferMapAllocation);
|
||||
EXPECT_EQ(bufferMapAllocation, mapAllocation);
|
||||
EXPECT_EQ(bufferMapPtr, mapAllocation->getUnderlyingBuffer());
|
||||
|
||||
mapPtr = subBuffer->getBasePtrForMap();
|
||||
EXPECT_EQ(bufferMapPtr, mapPtr);
|
||||
|
||||
subBuffer->release();
|
||||
buffer->release();
|
||||
}
|
||||
|
||||
} // namespace ULT
|
||||
|
||||
Reference in New Issue
Block a user