diff --git a/level_zero/core/source/cmdlist/cmdlist_hw.inl b/level_zero/core/source/cmdlist/cmdlist_hw.inl index 737c410da1..7d4d5a34b7 100644 --- a/level_zero/core/source/cmdlist/cmdlist_hw.inl +++ b/level_zero/core/source/cmdlist/cmdlist_hw.inl @@ -172,7 +172,7 @@ void CommandListCoreFamily::handleInOrderDependencyCounter(Event this->commandContainer.addToResidencyContainer(&inOrderExecInfo->inOrderDependencyCounterAllocation); - if (signalEvent && signalEvent->isInOrderExecEvent()) { + if (signalEvent && signalEvent->isCounterBased()) { signalEvent->updateInOrderExecState(inOrderExecInfo, inOrderExecInfo->inOrderDependencyCounter, this->inOrderAllocationOffset); } @@ -495,7 +495,7 @@ template ze_result_t CommandListCoreFamily::appendEventReset(ze_event_handle_t hEvent) { auto event = Event::fromHandle(hEvent); - if (event->isInOrderExecEvent()) { + if (event->isCounterBased()) { return ZE_RESULT_ERROR_INVALID_ARGUMENT; } @@ -2430,7 +2430,7 @@ ze_result_t CommandListCoreFamily::appendWaitOnEvents(uint32_t nu continue; } - if (event->isInOrderExecEvent()) { + if (event->isCounterBased()) { if (!event->getInOrderExecDataAllocation()) { return ZE_RESULT_ERROR_INVALID_ARGUMENT; // in-order event not signaled yet } diff --git a/level_zero/core/source/cmdlist/cmdlist_hw_immediate.inl b/level_zero/core/source/cmdlist/cmdlist_hw_immediate.inl index 562e23c9fd..359e36eda5 100644 --- a/level_zero/core/source/cmdlist/cmdlist_hw_immediate.inl +++ b/level_zero/core/source/cmdlist/cmdlist_hw_immediate.inl @@ -507,7 +507,7 @@ bool CommandListCoreFamilyImmediate::isSkippingInOrderBarrierAllo auto signalEvent = Event::fromHandle(hSignalEvent); - return !(signalEvent && (signalEvent->isEventTimestampFlagSet() || !signalEvent->isInOrderExecEvent())); + return !(signalEvent && (signalEvent->isEventTimestampFlagSet() || !signalEvent->isCounterBased())); } template diff --git a/level_zero/core/source/cmdlist/cmdlist_hw_xehp_and_later.inl b/level_zero/core/source/cmdlist/cmdlist_hw_xehp_and_later.inl index 46aaccd660..a6a1d992dc 100644 --- a/level_zero/core/source/cmdlist/cmdlist_hw_xehp_and_later.inl +++ b/level_zero/core/source/cmdlist/cmdlist_hw_xehp_and_later.inl @@ -76,7 +76,7 @@ void programEventL3Flush(Event *event, template bool CommandListCoreFamily::isInOrderNonWalkerSignalingRequired(const Event *event) const { - return (event && (event->isUsingContextEndOffset() || !event->isInOrderExecEvent() || compactL3FlushEvent(getDcFlushRequired(event->isSignalScope())))); + return (event && (event->isUsingContextEndOffset() || !event->isCounterBased() || compactL3FlushEvent(getDcFlushRequired(event->isSignalScope())))); } template diff --git a/level_zero/core/source/event/event.cpp b/level_zero/core/source/event/event.cpp index a355ef3a17..f9a90b13d3 100644 --- a/level_zero/core/source/event/event.cpp +++ b/level_zero/core/source/event/event.cpp @@ -194,6 +194,20 @@ EventPool *EventPool::create(DriverHandle *driver, Context *context, uint32_t nu return eventPool.release(); } +void EventPool::setupDescriptorFlags(const ze_event_pool_desc_t *desc) { + eventPoolFlags = desc->flags; + + if (eventPoolFlags & ZE_EVENT_POOL_FLAG_KERNEL_MAPPED_TIMESTAMP) { + eventPoolFlags |= ZE_EVENT_POOL_FLAG_KERNEL_TIMESTAMP; + } + + auto pNext = reinterpret_cast(desc->pNext); + + if (pNext && pNext->stype == ZE_STRUCTURE_TYPE_COUNTER_BASED_EVENT_POOL_EXP_DESC) { + counterBased = true; + } +} + bool EventPool::isEventPoolTimestampFlagSet() const { if (NEO::DebugManager.flags.OverrideTimestampEvents.get() != -1) { auto timestampOverride = !!NEO::DebugManager.flags.OverrideTimestampEvents.get(); diff --git a/level_zero/core/source/event/event.h b/level_zero/core/source/event/event.h index 92e5a58094..451e376f1f 100644 --- a/level_zero/core/source/event/event.h +++ b/level_zero/core/source/event/event.h @@ -217,8 +217,8 @@ struct Event : _ze_event_handle_t { this->metricStreamer = metricStreamer; } void updateInOrderExecState(std::shared_ptr &newInOrderExecInfo, uint64_t signalValue, uint32_t allocationOffset); - bool isInOrderExecEvent() const { return inOrderExecEvent; } - void enableInOrderMode() { this->inOrderExecEvent = true; } + bool isCounterBased() const { return counterBased; } + void enableCounterBasedMode() { this->counterBased = true; } NEO::GraphicsAllocation *getInOrderExecDataAllocation() const; uint64_t getInOrderExecSignalValueWithSubmissionCounter() const; uint64_t getInOrderExecBaseSignalValue() const { return inOrderExecSignalValue; } @@ -287,7 +287,7 @@ struct Event : _ze_event_handle_t { bool usingContextEndOffset = false; bool signalAllEventPackets = false; bool isFromIpcPool = false; - bool inOrderExecEvent = false; + bool counterBased = false; uint64_t timestampRefreshIntervalInNanoSec = 0; }; @@ -296,10 +296,7 @@ struct EventPool : _ze_event_pool_handle_t { static ze_result_t openEventPoolIpcHandle(const ze_ipc_event_pool_handle_t &ipcEventPoolHandle, ze_event_pool_handle_t *eventPoolHandle, DriverHandleImp *driver, ContextImp *context, uint32_t numDevices, ze_device_handle_t *deviceHandles); EventPool(const ze_event_pool_desc_t *desc) : EventPool(desc->count) { - eventPoolFlags = desc->flags; - if (eventPoolFlags & ZE_EVENT_POOL_FLAG_KERNEL_MAPPED_TIMESTAMP) { - eventPoolFlags |= ZE_EVENT_POOL_FLAG_KERNEL_TIMESTAMP; - } + setupDescriptorFlags(desc); } virtual ~EventPool(); MOCKABLE_VIRTUAL ze_result_t destroy(); @@ -356,9 +353,12 @@ struct EventPool : _ze_event_pool_handle_t { return isImplicitScalingCapable; } + bool isCounterBased() const { return counterBased; } + protected: EventPool() = default; EventPool(size_t numEvents) : numEvents(numEvents) {} + void setupDescriptorFlags(const ze_event_pool_desc_t *desc); std::vector devices; @@ -381,6 +381,7 @@ struct EventPool : _ze_event_pool_handle_t { bool isImportedIpcPool = false; bool isShareableEventMemory = false; bool isImplicitScalingCapable = false; + bool counterBased = false; }; } // namespace L0 diff --git a/level_zero/core/source/event/event_imp.h b/level_zero/core/source/event/event_imp.h index 4b0f3b5942..aeec9b6287 100644 --- a/level_zero/core/source/event/event_imp.h +++ b/level_zero/core/source/event/event_imp.h @@ -73,7 +73,7 @@ struct EventImp : public Event { ze_result_t calculateProfilingData(); ze_result_t queryStatusEventPackets(); - ze_result_t queryInOrderEventStatus(); + ze_result_t queryCounterBasedEventStatus(); void handleSuccessfulHostSynchronization(); MOCKABLE_VIRTUAL ze_result_t hostEventSetValue(TagSizeT eventValue); ze_result_t hostEventSetValueTimestamps(TagSizeT eventVal); diff --git a/level_zero/core/source/event/event_impl.inl b/level_zero/core/source/event/event_impl.inl index 7d511449b2..d4b2646095 100644 --- a/level_zero/core/source/event/event_impl.inl +++ b/level_zero/core/source/event/event_impl.inl @@ -80,8 +80,8 @@ Event *Event::create(EventPool *eventPool, const ze_event_desc_t *desc, Device * event->timestampRefreshIntervalInNanoSec = refreshTime * milliSecondsToNanoSeconds; } - if (NEO::DebugManager.flags.ForceInOrderEvents.get() == 1) { - event->enableInOrderMode(); + if (eventPool->isCounterBased() || NEO::DebugManager.flags.ForceInOrderEvents.get() == 1) { + event->enableCounterBasedMode(); } return event; @@ -150,7 +150,7 @@ void EventImp::assignKernelEventCompletionData(void *address) { } template -ze_result_t EventImp::queryInOrderEventStatus() { +ze_result_t EventImp::queryCounterBasedEventStatus() { if (!this->inOrderExecInfo.get()) { return ZE_RESULT_NOT_READY; } @@ -281,8 +281,8 @@ ze_result_t EventImp::queryStatus() { return ZE_RESULT_SUCCESS; } - if (this->inOrderExecEvent) { - return queryInOrderEventStatus(); + if (this->counterBased) { + return queryCounterBasedEventStatus(); } else { return queryStatusEventPackets(); } @@ -396,7 +396,7 @@ ze_result_t EventImp::hostEventSetValue(TagSizeT eventVal) { template ze_result_t EventImp::hostSignal() { - if (this->isInOrderExecEvent()) { + if (this->isCounterBased()) { return ZE_RESULT_ERROR_UNSUPPORTED_FEATURE; } @@ -447,7 +447,7 @@ ze_result_t EventImp::hostSynchronize(uint64_t timeout) { waitStartTime = std::chrono::high_resolution_clock::now(); lastHangCheckTime = waitStartTime; do { - if (NEO::DebugManager.flags.WaitForUserFenceOnEventHostSynchronize.get() == 1 && this->inOrderExecEvent) { + if (NEO::DebugManager.flags.WaitForUserFenceOnEventHostSynchronize.get() == 1 && this->counterBased) { ret = waitForUserFence(timeout); } else { ret = queryStatus(); @@ -494,7 +494,7 @@ ze_result_t EventImp::hostSynchronize(uint64_t timeout) { template ze_result_t EventImp::reset() { - if (this->isInOrderExecEvent()) { + if (this->isCounterBased()) { return ZE_RESULT_ERROR_UNSUPPORTED_FEATURE; } diff --git a/level_zero/core/test/unit_tests/mocks/mock_event.h b/level_zero/core/test/unit_tests/mocks/mock_event.h index c39dc99f31..f0d3c5c07e 100644 --- a/level_zero/core/test/unit_tests/mocks/mock_event.h +++ b/level_zero/core/test/unit_tests/mocks/mock_event.h @@ -19,11 +19,11 @@ namespace ult { template <> struct WhiteBox<::L0::Event> : public ::L0::Event { using BaseClass = ::L0::Event; + using BaseClass::counterBased; using BaseClass::csrs; using BaseClass::Event; using BaseClass::gpuHangCheckPeriod; using BaseClass::hostAddress; - using BaseClass::inOrderExecEvent; using BaseClass::isFromIpcPool; using BaseClass::l3FlushAppliedOnKernel; using BaseClass::maxKernelCount; diff --git a/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_append_launch_kernel_3.cpp b/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_append_launch_kernel_3.cpp index 81a4d6395a..310fad51e9 100644 --- a/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_append_launch_kernel_3.cpp +++ b/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_append_launch_kernel_3.cpp @@ -671,7 +671,7 @@ HWTEST_F(CommandListAppendLaunchKernel, givenInvalidKernelWhenAppendingThenRetur struct InOrderCmdListTests : public CommandListAppendLaunchKernel { struct MockEvent : public EventImp { - using EventImp::inOrderExecEvent; + using EventImp::counterBased; using EventImp::maxPacketCount; using EventImp::inOrderExecInfo; using EventImp::inOrderExecSignalValue; @@ -701,6 +701,9 @@ struct InOrderCmdListTests : public CommandListAppendLaunchKernel { eventPoolDesc.flags = ZE_EVENT_POOL_FLAG_HOST_VISIBLE; eventPoolDesc.count = numEvents; + ze_event_pool_counter_based_exp_desc_t counterBasedExtension = {ZE_STRUCTURE_TYPE_COUNTER_BASED_EVENT_POOL_EXP_DESC}; + eventPoolDesc.pNext = &counterBasedExtension; + if (timestampEvent) { eventPoolDesc.flags |= ZE_EVENT_POOL_FLAG_KERNEL_TIMESTAMP; } @@ -713,8 +716,7 @@ struct InOrderCmdListTests : public CommandListAppendLaunchKernel { for (uint32_t i = 0; i < numEvents; i++) { eventDesc.index = i; events.emplace_back(DestroyableZeUniquePtr(static_cast(Event::create(eventPool.get(), &eventDesc, device)))); - EXPECT_FALSE(events.back()->inOrderExecEvent); - events.back()->inOrderExecEvent = true; + EXPECT_TRUE(events.back()->counterBased); } return eventPool; @@ -848,7 +850,7 @@ HWTEST2_F(InOrderCmdListTests, givenNotSignaledInOrderEventWhenAddedToWaitListTh eventDesc.index = 0; auto event = std::unique_ptr(static_cast(Event::create(eventPool.get(), &eventDesc, device))); - EXPECT_TRUE(event->inOrderExecEvent); + EXPECT_TRUE(event->counterBased); auto handle = event->toHandle(); @@ -859,7 +861,7 @@ HWTEST2_F(InOrderCmdListTests, givenNotSignaledInOrderEventWhenAddedToWaitListTh HWTEST2_F(InOrderCmdListTests, givenNotSignaledInOrderWhenWhenCallingQueryStatusThenReturnNotReady, IsAtLeastSkl) { auto eventPool = createEvents(1, false); - events[0]->inOrderExecEvent = true; + events[0]->counterBased = true; EXPECT_EQ(ZE_RESULT_NOT_READY, events[0]->queryStatus()); } @@ -965,7 +967,7 @@ HWTEST2_F(InOrderCmdListTests, givenDebugFlagSetWhenEventHostSyncCalledThenCallW EXPECT_EQ(2u, ultCsr->waitUserFenecParams.callCount); // non in-order event - events[1]->inOrderExecEvent = false; + events[1]->counterBased = false; events[1]->hostSynchronize(2); EXPECT_EQ(2u, ultCsr->waitUserFenecParams.callCount); } @@ -979,7 +981,7 @@ HWTEST2_F(InOrderCmdListTests, givenInOrderModeWhenHostResetOrSignalEventCalledT EXPECT_EQ(MemoryConstants::pageSize64k, immCmdList->inOrderExecInfo->inOrderDependencyCounterAllocation.getUnderlyingBufferSize()); - EXPECT_TRUE(events[0]->inOrderExecEvent); + EXPECT_TRUE(events[0]->counterBased); EXPECT_EQ(events[0]->inOrderExecSignalValue, immCmdList->inOrderExecInfo->inOrderDependencyCounter); EXPECT_EQ(&events[0]->inOrderExecInfo->inOrderDependencyCounterAllocation, &immCmdList->inOrderExecInfo->inOrderDependencyCounterAllocation); EXPECT_EQ(events[0]->inOrderAllocationOffset, 0u); @@ -1006,11 +1008,11 @@ HWTEST2_F(InOrderCmdListTests, givenInOrderModeWheUsingRegularEventThenDontSetIn auto immCmdList = createImmCmdList(); auto eventPool = createEvents(1, false); - events[0]->inOrderExecEvent = false; + events[0]->counterBased = false; immCmdList->appendLaunchKernel(kernel->toHandle(), groupCount, events[0]->toHandle(), 0, nullptr, launchParams, false); - EXPECT_FALSE(events[0]->inOrderExecEvent); + EXPECT_FALSE(events[0]->counterBased); EXPECT_EQ(events[0]->inOrderExecSignalValue, 0u); EXPECT_EQ(events[0]->inOrderExecInfo.get(), nullptr); EXPECT_EQ(events[0]->inOrderAllocationOffset, 0u); @@ -1057,7 +1059,7 @@ HWTEST2_F(InOrderCmdListTests, givenDebugFlagSetWhenDispatchingSemaphoreThenProg auto eventPool = createEvents(1, false); auto eventHandle = events[0]->toHandle(); - events[0]->inOrderExecEvent = false; + events[0]->counterBased = false; auto immCmdList = createImmCmdList(); @@ -1121,7 +1123,7 @@ HWTEST2_F(InOrderCmdListTests, givenDebugFlagSetWhenDispatchingStoreDataImmThenP auto eventPool = createEvents(1, false); auto eventHandle = events[0]->toHandle(); - events[0]->inOrderExecEvent = false; + events[0]->counterBased = false; auto immCmdList = createImmCmdList(); @@ -1165,7 +1167,7 @@ HWTEST2_F(InOrderCmdListTests, givenDebugFlagSetAsMaskWhenDispatchingStoreDataIm auto eventPool = createEvents(1, false); auto eventHandle = events[0]->toHandle(); - events[0]->inOrderExecEvent = false; + events[0]->counterBased = false; auto immCmdList = createImmCmdList(); @@ -1279,7 +1281,7 @@ HWTEST2_F(InOrderCmdListTests, givenInOrderModeWhenWaitingForRegularEventFromPre auto immCmdList = createCopyOnlyImmCmdList(); auto eventPool = createEvents(1, false); - events[0]->inOrderExecEvent = false; + events[0]->counterBased = false; auto eventHandle = events[0]->toHandle(); auto cmdStream = immCmdList->getCmdContainer().getCommandStream(); @@ -1371,7 +1373,7 @@ HWTEST2_F(InOrderCmdListTests, givenCmdsChainingWhenDispatchingKernelThenProgram auto immCmdList = createImmCmdList(); auto eventPool = createEvents(1, false); - events[0]->inOrderExecEvent = false; + events[0]->counterBased = false; auto cmdStream = immCmdList->getCmdContainer().getCommandStream(); @@ -1451,7 +1453,7 @@ HWTEST2_F(InOrderCmdListTests, givenCmdsChainingFromAppendCopyWhenDispatchingKer auto immCmdList = createImmCmdList(); auto eventPool = createEvents(1, false); - events[0]->inOrderExecEvent = false; + events[0]->counterBased = false; auto cmdStream = immCmdList->getCmdContainer().getCommandStream(); @@ -1549,7 +1551,7 @@ HWTEST2_F(InOrderCmdListTests, givenCmdsChainingWhenDispatchingKernelWithRelaxed auto immCmdList = createImmCmdList(); auto eventPool = createEvents(1, false); - events[0]->inOrderExecEvent = false; + events[0]->counterBased = false; auto cmdStream = immCmdList->getCmdContainer().getCommandStream(); @@ -2043,7 +2045,7 @@ HWTEST2_F(InOrderCmdListTests, givenInOrderModeWhenProgrammingRegularEventThenCl auto eventPool = createEvents(1, false); events[0]->signalScope = 0; - events[0]->inOrderExecEvent = false; + events[0]->counterBased = false; immCmdList->appendLaunchKernel(kernel->toHandle(), groupCount, events[0]->toHandle(), 0, nullptr, launchParams, false); @@ -2193,7 +2195,7 @@ HWTEST2_F(InOrderCmdListTests, givenNonPostSyncWalkerWhenAskingForNonWalkerSigna auto eventPool1 = createEvents(1, true); auto eventPool2 = createEvents(1, false); auto eventPool3 = createEvents(1, false); - events[2]->inOrderExecEvent = false; + events[2]->counterBased = false; EXPECT_FALSE(immCmdList->isInOrderNonWalkerSignalingRequired(events[0].get())); EXPECT_FALSE(immCmdList->isInOrderNonWalkerSignalingRequired(events[1].get())); @@ -2352,7 +2354,7 @@ HWTEST2_F(InOrderCmdListTests, givenInOrderModeWhenProgrammingNonKernelAppendThe auto cmdStream = immCmdList->getCmdContainer().getCommandStream(); auto eventPool = createEvents(1, true); - events[0]->inOrderExecEvent = false; + events[0]->counterBased = false; uint64_t inOrderSyncVa = immCmdList->inOrderExecInfo->inOrderDependencyCounterAllocation.getGpuAddress(); @@ -2458,7 +2460,7 @@ HWTEST2_F(InOrderCmdListTests, givenInOrderRegularCmdListWhenProgrammingNonKerne auto cmdStream = regularCmdList->getCmdContainer().getCommandStream(); auto eventPool = createEvents(1, true); - events[0]->inOrderExecEvent = false; + events[0]->counterBased = false; uint8_t ptr[64] = {}; @@ -3037,7 +3039,7 @@ HWTEST2_F(InOrderCmdListTests, givenRegularInOrderCmdListWhenProgrammingAppendWa auto cmdStream = regularCmdList->getCmdContainer().getCommandStream(); auto eventPool = createEvents(1, false); - events[0]->inOrderExecEvent = false; + events[0]->counterBased = false; auto eventHandle = events[0]->toHandle(); @@ -3347,7 +3349,7 @@ HWTEST2_F(InOrderCmdListTests, givenInOrderModeWhenProgrammingAppendBarrierWitho auto offset = cmdStream->getUsed(); auto eventPool = createEvents(1, false); - events[0]->inOrderExecEvent = false; + events[0]->counterBased = false; auto eventHandle = events[0]->toHandle(); @@ -4219,7 +4221,7 @@ HWTEST2_F(BcsSplitInOrderCmdListTests, givenBcsSplitEnabledWhenAppendingMemoryCo constexpr size_t copySize = 8 * MemoryConstants::megaByte; auto eventPool = createEvents(1, false); - events[0]->inOrderExecEvent = false; + events[0]->counterBased = false; auto eventHandle = events[0]->toHandle(); immCmdList->appendMemoryCopy(©Data, ©Data, copySize, nullptr, 0, nullptr, false, false); @@ -4682,7 +4684,7 @@ HWTEST2_F(InOrderRegularCmdListTests, givenInOrderModeWhenDispatchingRegularCmdL auto eventPool = createEvents(1, true); auto eventHandle = events[0]->toHandle(); - events[0]->inOrderExecEvent = false; + events[0]->counterBased = false; auto regularCmdList = createRegularCmdList(false); auto regularCopyOnlyCmdList = createRegularCmdList(true); diff --git a/level_zero/core/test/unit_tests/sources/event/test_event.cpp b/level_zero/core/test/unit_tests/sources/event/test_event.cpp index 70c52eb8c9..1728a1a56a 100644 --- a/level_zero/core/test/unit_tests/sources/event/test_event.cpp +++ b/level_zero/core/test/unit_tests/sources/event/test_event.cpp @@ -173,6 +173,21 @@ TEST_F(EventPoolCreate, GivenEventPoolThenAllocationContainsAtLeast16Bytes) { minAllocationSize); } +TEST_F(EventPoolCreate, givenInvalidPNextWhenCreatingPoolThenIgnore) { + ze_base_desc_t baseDesc = {ZE_STRUCTURE_TYPE_FORCE_UINT32}; + + ze_event_pool_desc_t eventPoolDesc = { + ZE_STRUCTURE_TYPE_EVENT_POOL_DESC, + &baseDesc, + ZE_EVENT_POOL_FLAG_HOST_VISIBLE, + 1}; + + ze_result_t result = ZE_RESULT_SUCCESS; + std::unique_ptr eventPool(EventPool::create(driverHandle.get(), context, 0, nullptr, &eventPoolDesc, result)); + EXPECT_EQ(ZE_RESULT_SUCCESS, result); + ASSERT_NE(nullptr, eventPool); +} + HWTEST_F(EventPoolCreate, givenTimestampEventsThenEventSizeSufficientForAllKernelTimestamps) { ze_event_pool_desc_t eventPoolDesc = {}; eventPoolDesc.count = 1; @@ -3262,7 +3277,7 @@ HWTEST_F(EventTests, givenInOrderEventWhenHostSynchronizeIsCalledThenAllocationI auto inOrderExecInfo = std::make_shared(*syncAllocation, *neoDevice->getMemoryManager(), false); - event->inOrderExecEvent = true; + event->counterBased = true; event->updateInOrderExecState(inOrderExecInfo, 1, 0); constexpr uint64_t timeout = std::numeric_limits::max(); @@ -3274,7 +3289,7 @@ HWTEST_F(EventTests, givenInOrderEventWhenHostSynchronizeIsCalledThenAllocationI auto event2 = zeUniquePtr(whiteboxCast(getHelper().createEvent(eventPool.get(), &eventDesc, device))); - event2->inOrderExecEvent = true; + event2->counterBased = true; event2->updateInOrderExecState(inOrderExecInfo, 1, 0); syncAllocation->updateTaskCount(0u, ultCsr->getOsContext().getContextId()); ultCsr->downloadAllocationsCalledCount = 0;