mirror of
https://github.com/intel/compute-runtime.git
synced 2025-09-15 13:01:45 +08:00
Do not mark svm map operations as read only by default
Related-To: NEO-3520 Change-Id: Ia8074cca76b5b2907bb970e86cb862985453187d Signed-off-by: Jobczyk, Lukasz <lukasz.jobczyk@intel.com>
This commit is contained in:

committed by
sys_ocldev

parent
dfd361dc74
commit
30bbe600eb
@ -136,7 +136,7 @@ cl_int CommandQueueHw<GfxFamily>::enqueueSVMMap(cl_bool blockingMap,
|
||||
if (event) {
|
||||
castToObjectOrAbort<Event>(*event)->setCmdType(CL_COMMAND_SVM_MAP);
|
||||
}
|
||||
bool readOnlyMap = !isValueSet(mapFlags, CL_MAP_WRITE) && !isValueSet(mapFlags, CL_MAP_WRITE_INVALIDATE_REGION);
|
||||
bool readOnlyMap = isValueSet(mapFlags, CL_MAP_READ);
|
||||
context->getSVMAllocsManager()->insertSvmMapOperation(svmPtr, size, svmBasePtr, svmOffset, readOnlyMap);
|
||||
|
||||
return CL_SUCCESS;
|
||||
|
@ -810,6 +810,60 @@ HWTEST_F(EnqueueSvmTestLocalMemory, givenWriteInvalidateRegionFlagWhenMappingSvm
|
||||
EXPECT_FALSE(svmMap->readOnlyMap);
|
||||
}
|
||||
|
||||
HWTEST_F(EnqueueSvmTestLocalMemory, givenMapWriteFlagWhenMappingSvmThenMapIsSuccessfulAndReadOnlyFlagIsFalse) {
|
||||
MockCommandQueueHw<FamilyType> queue(context.get(), pDevice, nullptr);
|
||||
uintptr_t offset = 64;
|
||||
void *regionSvmPtr = ptrOffset(svmPtr, offset);
|
||||
size_t regionSize = 64;
|
||||
retVal = queue.enqueueSVMMap(
|
||||
CL_TRUE,
|
||||
CL_MAP_WRITE,
|
||||
regionSvmPtr,
|
||||
regionSize,
|
||||
0,
|
||||
nullptr,
|
||||
nullptr);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
auto svmMap = mockSvmManager->svmMapOperations.get(regionSvmPtr);
|
||||
EXPECT_FALSE(svmMap->readOnlyMap);
|
||||
}
|
||||
|
||||
HWTEST_F(EnqueueSvmTestLocalMemory, givenMapReadFlagWhenMappingSvmThenMapIsSuccessfulAndReadOnlyFlagIsTrue) {
|
||||
MockCommandQueueHw<FamilyType> queue(context.get(), pDevice, nullptr);
|
||||
uintptr_t offset = 64;
|
||||
void *regionSvmPtr = ptrOffset(svmPtr, offset);
|
||||
size_t regionSize = 64;
|
||||
retVal = queue.enqueueSVMMap(
|
||||
CL_TRUE,
|
||||
CL_MAP_READ,
|
||||
regionSvmPtr,
|
||||
regionSize,
|
||||
0,
|
||||
nullptr,
|
||||
nullptr);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
auto svmMap = mockSvmManager->svmMapOperations.get(regionSvmPtr);
|
||||
EXPECT_TRUE(svmMap->readOnlyMap);
|
||||
}
|
||||
|
||||
HWTEST_F(EnqueueSvmTestLocalMemory, givenSvmAllocWithoutFlagsWhenMappingSvmThenMapIsSuccessfulAndReadOnlyFlagIsTrue) {
|
||||
MockCommandQueueHw<FamilyType> queue(context.get(), pDevice, nullptr);
|
||||
uintptr_t offset = 64;
|
||||
void *regionSvmPtr = ptrOffset(svmPtr, offset);
|
||||
size_t regionSize = 64;
|
||||
retVal = queue.enqueueSVMMap(
|
||||
CL_TRUE,
|
||||
0,
|
||||
regionSvmPtr,
|
||||
regionSize,
|
||||
0,
|
||||
nullptr,
|
||||
nullptr);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
auto svmMap = mockSvmManager->svmMapOperations.get(regionSvmPtr);
|
||||
EXPECT_FALSE(svmMap->readOnlyMap);
|
||||
}
|
||||
|
||||
HWTEST_F(EnqueueSvmTestLocalMemory, givenEnabledLocalMemoryWhenEnqeueMapValidSvmPtrThenExpectSingleWalker) {
|
||||
using WALKER_TYPE = typename FamilyType::WALKER_TYPE;
|
||||
MockCommandQueueHw<FamilyType> queue(context.get(), pDevice, nullptr);
|
||||
|
Reference in New Issue
Block a user