@@ -341,13 +341,14 @@ struct BcsTests : public CommandStreamReceiverHwTest {
341341
342342HWTEST_F (BcsTests, givenBltSizeWhenEstimatingCommandSizeThenAddAllRequiredCommands) {
343343 constexpr auto max2DBlitSize = BlitterConstants::maxBlitWidth * BlitterConstants::maxBlitHeight;
344+ constexpr size_t cmdsSizePerBlit = sizeof (typename FamilyType::XY_COPY_BLT) + sizeof (typename FamilyType::MI_ARB_CHECK);
344345 size_t notAlignedBltSize = (3 * max2DBlitSize) + 1 ;
345346 size_t alignedBltSize = (3 * max2DBlitSize);
346347 uint32_t alignedNumberOfBlts = 3 ;
347348 uint32_t notAlignedNumberOfBlts = 4 ;
348349
349- auto expectedAlignedSize = sizeof ( typename FamilyType::XY_COPY_BLT) * alignedNumberOfBlts;
350- auto expectedNotAlignedSize = sizeof ( typename FamilyType::XY_COPY_BLT) * notAlignedNumberOfBlts;
350+ auto expectedAlignedSize = cmdsSizePerBlit * alignedNumberOfBlts;
351+ auto expectedNotAlignedSize = cmdsSizePerBlit * notAlignedNumberOfBlts;
351352
352353 auto alignedEstimatedSize = BlitCommandsHelper<FamilyType>::estimateBlitCommandsSize ({alignedBltSize, 1 , 1 }, csrDependencies, false );
353354 auto notAlignedEstimatedSize = BlitCommandsHelper<FamilyType>::estimateBlitCommandsSize ({notAlignedBltSize, 1 , 1 }, csrDependencies, false );
@@ -358,13 +359,14 @@ HWTEST_F(BcsTests, givenBltSizeWhenEstimatingCommandSizeThenAddAllRequiredComman
358359
359360HWTEST_F (BcsTests, givenBltSizeWhenEstimatingCommandSizeForReadBufferRectThenAddAllRequiredCommands) {
360361 constexpr auto max2DBlitSize = BlitterConstants::maxBlitWidth * BlitterConstants::maxBlitHeight;
362+ constexpr size_t cmdsSizePerBlit = sizeof (typename FamilyType::XY_COPY_BLT) + sizeof (typename FamilyType::MI_ARB_CHECK);
361363 Vec3<size_t > notAlignedBltSize = {(3 * max2DBlitSize) + 1 , 4 , 2 };
362364 Vec3<size_t > alignedBltSize = {(3 * max2DBlitSize), 4 , 2 };
363365 size_t alignedNumberOfBlts = 3 * alignedBltSize.y * alignedBltSize.z ;
364366 size_t notAlignedNumberOfBlts = 4 * notAlignedBltSize.y * notAlignedBltSize.z ;
365367
366- auto expectedAlignedSize = sizeof ( typename FamilyType::XY_COPY_BLT) * alignedNumberOfBlts;
367- auto expectedNotAlignedSize = sizeof ( typename FamilyType::XY_COPY_BLT) * notAlignedNumberOfBlts;
368+ auto expectedAlignedSize = cmdsSizePerBlit * alignedNumberOfBlts;
369+ auto expectedNotAlignedSize = cmdsSizePerBlit * notAlignedNumberOfBlts;
368370
369371 auto alignedEstimatedSize = BlitCommandsHelper<FamilyType>::estimateBlitCommandsSize (alignedBltSize, csrDependencies, false );
370372 auto notAlignedEstimatedSize = BlitCommandsHelper<FamilyType>::estimateBlitCommandsSize (notAlignedBltSize, csrDependencies, false );
@@ -391,7 +393,8 @@ HWTEST_F(BcsTests, givenBlitPropertiesContainerWhenExstimatingCommandsSizeThenCa
391393 const uint32_t numberOfBlitOperations = 4 ;
392394
393395 auto baseSize = EncodeMiFlushDW<FamilyType>::getMiFlushDwCmdSizeForDataWrite () + sizeof (typename FamilyType::MI_BATCH_BUFFER_END);
394- auto expectedBlitInstructionsSize = sizeof (typename FamilyType::XY_COPY_BLT) * numberOfBlts;
396+ constexpr size_t cmdsSizePerBlit = sizeof (typename FamilyType::XY_COPY_BLT) + sizeof (typename FamilyType::MI_ARB_CHECK);
397+ auto expectedBlitInstructionsSize = cmdsSizePerBlit * numberOfBlts;
395398
396399 auto expectedAlignedSize = baseSize + MemorySynchronizationCommands<FamilyType>::getSizeForAdditonalSynchronization (pDevice->getHardwareInfo ());
397400
@@ -416,9 +419,10 @@ HWTEST_F(BcsTests, givenBlitPropertiesContainerWhenExstimatingCommandsSizeForWri
416419 const Vec3<size_t > bltSize = {(3 * max2DBlitSize), 4 , 2 };
417420 const size_t numberOfBlts = 3 * bltSize.y * bltSize.z ;
418421 const size_t numberOfBlitOperations = 4 * bltSize.y * bltSize.z ;
422+ const size_t cmdsSizePerBlit = sizeof (typename FamilyType::XY_COPY_BLT) + sizeof (typename FamilyType::MI_ARB_CHECK);
419423
420424 auto baseSize = EncodeMiFlushDW<FamilyType>::getMiFlushDwCmdSizeForDataWrite () + sizeof (typename FamilyType::MI_BATCH_BUFFER_END);
421- auto expectedBlitInstructionsSize = sizeof ( typename FamilyType::XY_COPY_BLT) * numberOfBlts;
425+ auto expectedBlitInstructionsSize = cmdsSizePerBlit * numberOfBlts;
422426
423427 auto expectedAlignedSize = baseSize + MemorySynchronizationCommands<FamilyType>::getSizeForAdditonalSynchronization (pDevice->getHardwareInfo ());
424428
@@ -439,7 +443,7 @@ HWTEST_F(BcsTests, givenBlitPropertiesContainerWhenExstimatingCommandsSizeForWri
439443}
440444
441445HWTEST_F (BcsTests, givenTimestampPacketWriteRequestWhenEstimatingSizeForCommandsThenAddMiFlushDw) {
442- size_t expectedBaseSize = sizeof (typename FamilyType::XY_COPY_BLT);
446+ constexpr size_t expectedBaseSize = sizeof (typename FamilyType::XY_COPY_BLT) + sizeof ( typename FamilyType::MI_ARB_CHECK );
443447
444448 auto expectedSizeWithTimestampPacketWrite = expectedBaseSize + EncodeMiFlushDW<FamilyType>::getMiFlushDwCmdSizeForDataWrite ();
445449 auto expectedSizeWithoutTimestampPacketWrite = expectedBaseSize;
@@ -461,7 +465,8 @@ HWTEST_F(BcsTests, givenBltSizeAndCsrDependenciesWhenEstimatingCommandSizeThenAd
461465 csrDependencies.push_back (×tamp0);
462466 csrDependencies.push_back (×tamp1);
463467
464- size_t expectedSize = (sizeof (typename FamilyType::XY_COPY_BLT) * numberOfBlts) +
468+ constexpr size_t cmdsSizePerBlit = sizeof (typename FamilyType::XY_COPY_BLT) + sizeof (typename FamilyType::MI_ARB_CHECK);
469+ size_t expectedSize = (cmdsSizePerBlit * numberOfBlts) +
465470 TimestampPacketHelper::getRequiredCmdStreamSize<FamilyType>(csrDependencies);
466471
467472 auto estimatedSize = BlitCommandsHelper<FamilyType>::estimateBlitCommandsSize ({1 , 1 , 1 }, csrDependencies, false );
@@ -520,6 +525,10 @@ HWTEST_F(BcsTests, givenBltSizeWithLeftoverWhenDispatchedThenProgramAllRequiredC
520525 EXPECT_EQ (expectedHeight, bltCmd->getTransferHeight ());
521526 EXPECT_EQ (expectedWidth, bltCmd->getDestinationPitch ());
522527 EXPECT_EQ (expectedWidth, bltCmd->getSourcePitch ());
528+
529+ auto miArbCheckCmd = genCmdCast<typename FamilyType::MI_ARB_CHECK *>(*(cmdIterator++));
530+ EXPECT_NE (nullptr , miArbCheckCmd);
531+ EXPECT_TRUE (memcmp (&FamilyType::cmdInitArbCheck, miArbCheckCmd, sizeof (typename FamilyType::MI_ARB_CHECK)) == 0 );
523532 }
524533
525534 if (UnitTestHelper<FamilyType>::isSynchronizationWArequired (pDevice->getHardwareInfo ())) {
@@ -703,6 +712,10 @@ HWTEST_P(BcsDetaliedTestsWithParams, givenBltSizeWithLeftoverWhenDispatchedThenP
703712 EXPECT_EQ (srcAddr, expectedSrcAddr);
704713
705714 offset += (expectedWidth * expectedHeight);
715+
716+ auto miArbCheckCmd = genCmdCast<typename FamilyType::MI_ARB_CHECK *>(*(cmdIterator++));
717+ EXPECT_NE (nullptr , miArbCheckCmd);
718+ EXPECT_TRUE (memcmp (&FamilyType::cmdInitArbCheck, miArbCheckCmd, sizeof (typename FamilyType::MI_ARB_CHECK)) == 0 );
706719 }
707720}
708721
@@ -781,6 +794,10 @@ HWTEST_P(BcsDetaliedTestsWithParams, givenBltSizeWithLeftoverWhenDispatchedThenP
781794 EXPECT_EQ (srcAddr, bltCmd->getSourceBaseAddress ());
782795
783796 offset += (expectedWidth * expectedHeight);
797+
798+ auto miArbCheckCmd = genCmdCast<typename FamilyType::MI_ARB_CHECK *>(*(cmdIterator++));
799+ EXPECT_NE (nullptr , miArbCheckCmd);
800+ EXPECT_TRUE (memcmp (&FamilyType::cmdInitArbCheck, miArbCheckCmd, sizeof (typename FamilyType::MI_ARB_CHECK)) == 0 );
784801 }
785802}
786803
@@ -854,6 +871,10 @@ HWTEST_P(BcsDetaliedTestsWithParams, givenBltSizeWithLeftoverWhenDispatchedThenP
854871 EXPECT_EQ (srcAddr, bltCmd->getSourceBaseAddress ());
855872
856873 offset += (expectedWidth * expectedHeight);
874+
875+ auto miArbCheckCmd = genCmdCast<typename FamilyType::MI_ARB_CHECK *>(*(cmdIterator++));
876+ EXPECT_NE (nullptr , miArbCheckCmd);
877+ EXPECT_TRUE (memcmp (&FamilyType::cmdInitArbCheck, miArbCheckCmd, sizeof (typename FamilyType::MI_ARB_CHECK)) == 0 );
857878 }
858879}
859880
0 commit comments