don't call finish() in enqueueWriteMemObjForUnmap()
Fixes #247 Change-Id: Iac43c239a6ea361afb6d8addf14ae1697d3af7d7 Signed-off-by: Jacek Danecki <jacek.danecki@intel.com>
This commit is contained in:
parent
fb8706d2b4
commit
4a07232ce9
|
@ -1,5 +1,5 @@
|
|||
#!groovy
|
||||
dependenciesRevision='6e37b862b951b119315eb412eb2650b282c8dcfe-1356'
|
||||
strategy='EQUAL'
|
||||
allowedCD=258
|
||||
allowedCD=257
|
||||
allowedF=11
|
||||
|
|
|
@ -333,15 +333,6 @@ cl_int CommandQueue::enqueueWriteMemObjForUnmap(MemObj *memObj, void *mappedPtr,
|
|||
retVal = enqueueWriteImage(image, CL_FALSE, writeOrigin, &unmapInfo.size[0],
|
||||
image->getHostPtrRowPitch(), image->getHostPtrSlicePitch(), mappedPtr, memObj->getMapAllocation(),
|
||||
eventsRequest.numEventsInWaitList, eventsRequest.eventWaitList, eventsRequest.outEvent);
|
||||
bool mustCallFinish = true;
|
||||
if (!(image->getMemoryPropertiesFlags() & CL_MEM_USE_HOST_PTR)) {
|
||||
mustCallFinish = true;
|
||||
} else {
|
||||
mustCallFinish = (CommandQueue::getTaskLevelFromWaitList(this->taskLevel, eventsRequest.numEventsInWaitList, eventsRequest.eventWaitList) != Event::eventNotReady);
|
||||
}
|
||||
if (mustCallFinish) {
|
||||
finish();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
retVal = enqueueMarkerWithWaitList(eventsRequest.numEventsInWaitList, eventsRequest.eventWaitList, eventsRequest.outEvent);
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (C) 2017-2019 Intel Corporation
|
||||
* Copyright (C) 2017-2020 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
|
@ -81,58 +81,6 @@ HWTEST_F(ImageUnmapTest, givenImageWhenUnmapMemObjIsCalledThenEnqueueNonBlocking
|
|||
}
|
||||
}
|
||||
|
||||
HWTEST_F(ImageUnmapTest, givenImageWhenUnmapMemObjIsCalledWithMemUseHostPtrAndWithoutEventsThenFinishIsCalled) {
|
||||
std::unique_ptr<MyMockCommandQueue<FamilyType>> commandQueue(new MyMockCommandQueue<FamilyType>(context.get(), device.get()));
|
||||
image.reset(ImageHelper<ImageUseHostPtr<Image3dDefaults>>::create(context.get()));
|
||||
auto ptr = image->getBasePtrForMap(device->getRootDeviceIndex());
|
||||
MemObjOffsetArray origin = {{0, 0, 0}};
|
||||
MemObjSizeArray region = {{1, 1, 1}};
|
||||
cl_map_flags mapFlags = CL_MAP_WRITE;
|
||||
image->addMappedPtr(ptr, 1, mapFlags, region, origin, 0);
|
||||
commandQueue->enqueueUnmapMemObject(image.get(), ptr, 0, nullptr, nullptr);
|
||||
EXPECT_EQ(UnitTestHelper<FamilyType>::tiledImagesSupported ? 1u : 0u,
|
||||
commandQueue->finishCalled);
|
||||
}
|
||||
|
||||
HWTEST_F(ImageUnmapTest, givenImageWhenUnmapMemObjIsCalledWithoutMemUseHostPtrThenFinishIsCalled) {
|
||||
std::unique_ptr<MyMockCommandQueue<FamilyType>> commandQueue(new MyMockCommandQueue<FamilyType>(context.get(), device.get()));
|
||||
auto ptr = image->getBasePtrForMap(device->getRootDeviceIndex());
|
||||
MemObjOffsetArray origin = {{0, 0, 0}};
|
||||
MemObjSizeArray region = {{1, 1, 1}};
|
||||
cl_map_flags mapFlags = CL_MAP_WRITE;
|
||||
image->addMappedPtr(ptr, 2, mapFlags, region, origin, 0);
|
||||
commandQueue->enqueueUnmapMemObject(image.get(), ptr, 0, nullptr, nullptr);
|
||||
EXPECT_EQ(UnitTestHelper<FamilyType>::tiledImagesSupported ? 1u : 0u,
|
||||
commandQueue->finishCalled);
|
||||
}
|
||||
|
||||
HWTEST_F(ImageUnmapTest, givenImageWhenUnmapMemObjIsCalledWithMemUseHostPtrAndWithNotReadyEventsThenFinishIsNotCalled) {
|
||||
std::unique_ptr<MyMockCommandQueue<FamilyType>> commandQueue(new MyMockCommandQueue<FamilyType>(context.get(), device.get()));
|
||||
image.reset(ImageHelper<ImageUseHostPtr<Image3dDefaults>>::create(context.get()));
|
||||
|
||||
MockEvent<UserEvent> mockEvent(context.get());
|
||||
mockEvent.setStatus(Event::eventNotReady);
|
||||
cl_event clEvent = &mockEvent;
|
||||
commandQueue->enqueueUnmapMemObject(image.get(), nullptr, 1, &clEvent, nullptr);
|
||||
EXPECT_EQ(0u, commandQueue->finishCalled);
|
||||
}
|
||||
|
||||
HWTEST_F(ImageUnmapTest, givenImageWhenUnmapMemObjIsCalledWithMemUseHostPtrAndWithoutNotReadyEventsThenFinishIsCalled) {
|
||||
std::unique_ptr<MyMockCommandQueue<FamilyType>> commandQueue(new MyMockCommandQueue<FamilyType>(context.get(), device.get()));
|
||||
image.reset(ImageHelper<ImageUseHostPtr<Image3dDefaults>>::create(context.get()));
|
||||
MockEvent<UserEvent> mockEvent(context.get());
|
||||
mockEvent.setStatus(0);
|
||||
cl_event clEvent = &mockEvent;
|
||||
auto ptr = image->getBasePtrForMap(device->getRootDeviceIndex());
|
||||
MemObjOffsetArray origin = {{0, 0, 0}};
|
||||
MemObjSizeArray region = {{1, 1, 1}};
|
||||
cl_map_flags mapFlags = CL_MAP_WRITE;
|
||||
image->addMappedPtr(ptr, 1, mapFlags, region, origin, 0);
|
||||
commandQueue->enqueueUnmapMemObject(image.get(), ptr, 1, &clEvent, nullptr);
|
||||
EXPECT_EQ(UnitTestHelper<FamilyType>::tiledImagesSupported ? 1u : 0u,
|
||||
commandQueue->finishCalled);
|
||||
}
|
||||
|
||||
HWTEST_F(ImageUnmapTest, givenImageWhenEnqueueMapImageIsCalledTwiceThenAllocatedMemoryPtrIsNotOverridden) {
|
||||
if (!UnitTestHelper<FamilyType>::tiledImagesSupported) {
|
||||
GTEST_SKIP();
|
||||
|
|
Loading…
Reference in New Issue