Ensure that events without commands have proper flush stamps.

Change-Id: I937efef7f87fa7df9e9b1a903269e3637eca73ad
Signed-off-by: Mrozek, Michal <michal.mrozek@intel.com>
This commit is contained in:
Mrozek, Michal
2019-06-26 07:56:56 +02:00
committed by sys_ocldev
parent eb3e6efaf1
commit 1bc5f7b142
2 changed files with 28 additions and 4 deletions

View File

@@ -10,6 +10,7 @@
#include "test.h"
#include "unit_tests/command_queue/command_enqueue_fixture.h"
#include "unit_tests/gen_common/gen_cmd_parse.h"
#include "unit_tests/mocks/mock_kernel.h"
using namespace NEO;
@@ -218,3 +219,27 @@ TEST_F(MarkerTest, givenMultipleEventsAndCompletedUserEventWhenTheyArePassedToMa
EXPECT_EQ(16u, pCmdQ->taskCount);
EXPECT_EQ(16u, pEvent->peekTaskCount());
}
HWTEST_F(MarkerTest, givenMarkerCallFollowingNdrangeCallInBatchedModeWhenWaitForEventsIsCalledThenFlushStampIsProperlyUpdated) {
MockKernelWithInternals mockKernel(*this->pDevice, this->context);
auto &ultCommandStreamReceiver = this->pDevice->getUltCommandStreamReceiver<FamilyType>();
ultCommandStreamReceiver.overrideDispatchPolicy(DispatchMode::BatchedDispatch);
cl_event eventFromNdr = nullptr;
size_t gws[] = {1};
pCmdQ->enqueueKernel(mockKernel.mockKernel, 1, nullptr, gws, nullptr, 0, nullptr, &eventFromNdr);
cl_event eventFromMarker = nullptr;
pCmdQ->enqueueMarkerWithWaitList(1u, &eventFromNdr, &eventFromMarker);
ultCommandStreamReceiver.flushStamp->setStamp(1u);
clEnqueueWaitForEvents(pCmdQ, 1u, &eventFromMarker);
auto neoEvent = castToObject<Event>(eventFromMarker);
EXPECT_EQ(1u, neoEvent->flushStamp->peekStamp());
clReleaseEvent(eventFromMarker);
clReleaseEvent(eventFromNdr);
}