@@ -911,6 +911,48 @@ HWTEST_F(TimestampPacketTests, givenEnableTimestampWaitWhenFinishThenCallWaitUti
911911 cmdQ.reset ();
912912}
913913
914+ HWTEST_F (TimestampPacketTests, givenEnableTimestampWaitAndNonGpuKernelEnqueueWhenFinishThenDoNotCallWaitUtils) {
915+ DebugManagerStateRestore restorer;
916+ DebugManager.flags .UpdateTaskCountFromWait .set (3 );
917+ DebugManager.flags .EnableTimestampWait .set (1 );
918+
919+ device->getUltCommandStreamReceiver <FamilyType>().timestampPacketWriteEnabled = true ;
920+ cl_queue_properties props[3 ] = {CL_QUEUE_PROPERTIES, CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE, 0 };
921+ auto cmdQ = std::make_unique<MockCommandQueueHw<FamilyType>>(context, device.get (), props);
922+
923+ TimestampPacketContainer *deferredTimestampPackets = cmdQ->deferredTimestampPackets .get ();
924+ TimestampPacketContainer *timestampPacketContainer = cmdQ->timestampPacketContainer .get ();
925+
926+ cmdQ->enqueueKernel (kernel->mockKernel , 1 , nullptr , gws, nullptr , 0 , nullptr , nullptr );
927+ cmdQ->enqueueKernel (kernel->mockKernel , 1 , nullptr , gws, nullptr , 0 , nullptr , nullptr );
928+ cmdQ->enqueueMarkerWithWaitList (0 , nullptr , nullptr );
929+ cmdQ->flush ();
930+
931+ EXPECT_EQ (1u , deferredTimestampPackets->peekNodes ().size ());
932+ EXPECT_EQ (1u , timestampPacketContainer->peekNodes ().size ());
933+
934+ VariableBackup<volatile uint32_t *> backupPauseAddress (&CpuIntrinsicsTests::pauseAddress);
935+ VariableBackup<uint32_t > backupPauseValue (&CpuIntrinsicsTests::pauseValue);
936+ VariableBackup<uint32_t > backupPauseOffset (&CpuIntrinsicsTests::pauseOffset);
937+ VariableBackup<std::function<void ()>> backupSetupPauseAddress (&CpuIntrinsicsTests::setupPauseAddress);
938+
939+ deferredTimestampPackets->peekNodes ()[0 ]->setPacketsUsed (1u );
940+ timestampPacketContainer->peekNodes ()[0 ]->setPacketsUsed (1u );
941+
942+ CpuIntrinsicsTests::pauseAddress = reinterpret_cast <volatile uint32_t *>(const_cast <void *>(timestampPacketContainer->peekNodes ()[0 ]->getContextEndAddress (0u )));
943+ CpuIntrinsicsTests::pauseValue = 2u ;
944+ CpuIntrinsicsTests::setupPauseAddress = [&]() {
945+ CpuIntrinsicsTests::pauseAddress = reinterpret_cast <volatile uint32_t *>(const_cast <void *>(deferredTimestampPackets->peekNodes ()[0 ]->getContextEndAddress (0u )));
946+ };
947+ CpuIntrinsicsTests::pauseCounter = 0u ;
948+
949+ cmdQ->finish ();
950+
951+ EXPECT_EQ (0u , CpuIntrinsicsTests::pauseCounter);
952+
953+ cmdQ.reset ();
954+ }
955+
914956HWTEST_F (TimestampPacketTests, givenTimestampPacketWriteEnabledWhenEnqueueingToOoqThenMoveToDeferredList) {
915957 device->getUltCommandStreamReceiver <FamilyType>().timestampPacketWriteEnabled = true ;
916958
0 commit comments