5757
5858using namespace OCLRT ;
5959
60- using ::testing::Invoke;
6160using ::testing::_;
61+ using ::testing::Invoke;
6262
6363HWTEST_F (UltCommandStreamReceiverTest, requiredCmdSizeForPreamble) {
6464 auto expectedCmdSize =
@@ -682,8 +682,7 @@ HWTEST_F(CommandStreamReceiverFlushTaskTests, nonblockingFlushWithNoPreviousDepe
682682}
683683
684684HWTEST_F (CommandStreamReceiverFlushTaskTests, flushTaskWithOnlyEnoughMemoryForPreamble) {
685- typedef typename FamilyType::PIPE_CONTROL PIPE_CONTROL;
686- typedef typename FamilyType::STATE_BASE_ADDRESS STATE_BASE_ADDRESS;
685+ typedef typename FamilyType::MI_BATCH_BUFFER_START MI_BATCH_BUFFER_START;
687686 typedef typename FamilyType::MI_BATCH_BUFFER_END MI_BATCH_BUFFER_END;
688687
689688 WhitelistedRegisters forceRegs = {0 };
@@ -700,6 +699,8 @@ HWTEST_F(CommandStreamReceiverFlushTaskTests, flushTaskWithOnlyEnoughMemoryForPr
700699 auto &csrCS = commandStreamReceiver.getCS ();
701700 size_t sizeNeededForPreamble = getSizeRequiredPreambleCS<FamilyType>(MockDevice (commandStreamReceiver.hwInfo ));
702701 size_t sizeNeeded = commandStreamReceiver.getRequiredCmdStreamSize (flushTaskFlags);
702+ sizeNeeded -= sizeof (MI_BATCH_BUFFER_START); // no task to submit
703+ sizeNeeded += sizeof (MI_BATCH_BUFFER_END); // no task to submit, add BBE to CSR stream
703704 sizeNeeded = alignUp (sizeNeeded, MemoryConstants::cacheLineSize);
704705
705706 csrCS.getSpace (csrCS.getAvailableSpace () - sizeNeededForPreamble);
@@ -712,6 +713,7 @@ HWTEST_F(CommandStreamReceiverFlushTaskTests, flushTaskWithOnlyEnoughMemoryForPr
712713HWTEST_F (CommandStreamReceiverFlushTaskTests, flushTaskWithOnlyEnoughMemoryForPreambleAndSba) {
713714 typedef typename FamilyType::PIPE_CONTROL PIPE_CONTROL;
714715 typedef typename FamilyType::STATE_BASE_ADDRESS STATE_BASE_ADDRESS;
716+ typedef typename FamilyType::MI_BATCH_BUFFER_START MI_BATCH_BUFFER_START;
715717 typedef typename FamilyType::MI_BATCH_BUFFER_END MI_BATCH_BUFFER_END;
716718
717719 WhitelistedRegisters forceRegs = {0 };
@@ -729,6 +731,8 @@ HWTEST_F(CommandStreamReceiverFlushTaskTests, flushTaskWithOnlyEnoughMemoryForPr
729731 size_t sizeNeededForPreamble = getSizeRequiredPreambleCS<FamilyType>(MockDevice (commandStreamReceiver.hwInfo ));
730732 size_t sizeNeededForStateBaseAddress = sizeof (STATE_BASE_ADDRESS) + sizeof (PIPE_CONTROL);
731733 size_t sizeNeeded = commandStreamReceiver.getRequiredCmdStreamSize (flushTaskFlags);
734+ sizeNeeded -= sizeof (MI_BATCH_BUFFER_START); // no task to submit
735+ sizeNeeded += sizeof (MI_BATCH_BUFFER_END); // no task to submit, add BBE to CSR stream
732736 sizeNeeded = alignUp (sizeNeeded, MemoryConstants::cacheLineSize);
733737
734738 csrCS.getSpace (csrCS.getAvailableSpace () - sizeNeededForPreamble - sizeNeededForStateBaseAddress);
0 commit comments