From 4a07232ce90564537fad2e893f1ac9bcc9afef73 Mon Sep 17 00:00:00 2001 From: Jacek Danecki Date: Mon, 13 Jan 2020 15:27:15 +0100 Subject: [PATCH] don't call finish() in enqueueWriteMemObjForUnmap() Fixes #247 Change-Id: Iac43c239a6ea361afb6d8addf14ae1697d3af7d7 Signed-off-by: Jacek Danecki --- Jenkinsfile | 2 +- runtime/command_queue/command_queue.cpp | 9 ---- .../image_release_mapped_ptr_tests.cpp | 54 +------------------ 3 files changed, 2 insertions(+), 63 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index dc95207a7f..10e96df987 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,5 +1,5 @@ #!groovy dependenciesRevision='6e37b862b951b119315eb412eb2650b282c8dcfe-1356' strategy='EQUAL' -allowedCD=258 +allowedCD=257 allowedF=11 diff --git a/runtime/command_queue/command_queue.cpp b/runtime/command_queue/command_queue.cpp index 924cb306a7..6018e21ade 100644 --- a/runtime/command_queue/command_queue.cpp +++ b/runtime/command_queue/command_queue.cpp @@ -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); diff --git a/unit_tests/mem_obj/image_release_mapped_ptr_tests.cpp b/unit_tests/mem_obj/image_release_mapped_ptr_tests.cpp index 8326c345aa..8f82613af6 100644 --- a/unit_tests/mem_obj/image_release_mapped_ptr_tests.cpp +++ b/unit_tests/mem_obj/image_release_mapped_ptr_tests.cpp @@ -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> commandQueue(new MyMockCommandQueue(context.get(), device.get())); - image.reset(ImageHelper>::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::tiledImagesSupported ? 1u : 0u, - commandQueue->finishCalled); -} - -HWTEST_F(ImageUnmapTest, givenImageWhenUnmapMemObjIsCalledWithoutMemUseHostPtrThenFinishIsCalled) { - std::unique_ptr> commandQueue(new MyMockCommandQueue(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::tiledImagesSupported ? 1u : 0u, - commandQueue->finishCalled); -} - -HWTEST_F(ImageUnmapTest, givenImageWhenUnmapMemObjIsCalledWithMemUseHostPtrAndWithNotReadyEventsThenFinishIsNotCalled) { - std::unique_ptr> commandQueue(new MyMockCommandQueue(context.get(), device.get())); - image.reset(ImageHelper>::create(context.get())); - - MockEvent 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> commandQueue(new MyMockCommandQueue(context.get(), device.get())); - image.reset(ImageHelper>::create(context.get())); - MockEvent 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::tiledImagesSupported ? 1u : 0u, - commandQueue->finishCalled); -} - HWTEST_F(ImageUnmapTest, givenImageWhenEnqueueMapImageIsCalledTwiceThenAllocatedMemoryPtrIsNotOverridden) { if (!UnitTestHelper::tiledImagesSupported) { GTEST_SKIP();