From 6bf5183effa33498f08cd3d2b8c23c694c197e70 Mon Sep 17 00:00:00 2001 From: Lukasz Jobczyk Date: Mon, 30 Sep 2024 06:51:34 +0000 Subject: [PATCH] performance: Do not create global fence allocation on integrated Signed-off-by: Lukasz Jobczyk --- .../test_cmdlist_xe2_hpg_core.cpp | 2 +- .../test_cmdqueue_xe2_hpg_core.cpp | 4 + ..._stream_receiver_hw_tests_xe2_hpg_core.cpp | 118 ++++++++++-------- .../helpers/gfx_core_helper_pvc_and_later.inl | 2 +- .../command_encoder_xe2_hpg_core.cpp | 2 +- .../command_stream_receiver_tests.cpp | 3 + .../direct_submission_tests_2.cpp | 2 +- .../gfx_core_helper_tests_xe2_hpg_core.cpp | 8 +- .../xe2_hpg_core/test_encode_xe2_hpg_core.cpp | 2 +- 9 files changed, 81 insertions(+), 62 deletions(-) diff --git a/level_zero/core/test/unit_tests/xe2_hpg_core/test_cmdlist_xe2_hpg_core.cpp b/level_zero/core/test/unit_tests/xe2_hpg_core/test_cmdlist_xe2_hpg_core.cpp index a6ec24aca0..571aa7ccdf 100644 --- a/level_zero/core/test/unit_tests/xe2_hpg_core/test_cmdlist_xe2_hpg_core.cpp +++ b/level_zero/core/test/unit_tests/xe2_hpg_core/test_cmdlist_xe2_hpg_core.cpp @@ -391,7 +391,7 @@ HWTEST2_F(CommandListAppendLaunchKernelXe2HpgCore, auto walkerCmd = genCmdCast(*itor); auto &postSyncData = walkerCmd->getPostSync(); - EXPECT_TRUE(postSyncData.getSystemMemoryFenceRequest()); + EXPECT_EQ(postSyncData.getSystemMemoryFenceRequest(), !device->getHwInfo().capabilityTable.isIntegratedDevice); result = context->freeMem(ptr); ASSERT_EQ(result, ZE_RESULT_SUCCESS); diff --git a/level_zero/core/test/unit_tests/xe2_hpg_core/test_cmdqueue_xe2_hpg_core.cpp b/level_zero/core/test/unit_tests/xe2_hpg_core/test_cmdqueue_xe2_hpg_core.cpp index 5a47dc9c53..239e7b5278 100644 --- a/level_zero/core/test/unit_tests/xe2_hpg_core/test_cmdqueue_xe2_hpg_core.cpp +++ b/level_zero/core/test/unit_tests/xe2_hpg_core/test_cmdqueue_xe2_hpg_core.cpp @@ -22,6 +22,10 @@ namespace ult { using CommandQueueCommandsXe2HpgCore = Test; HWTEST2_F(CommandQueueCommandsXe2HpgCore, givenCommandQueueWhenExecutingCommandListsThenStateSystemMemFenceAddressCmdIsGenerated, IsXe2HpgCore) { + if (neoDevice->getHardwareInfo().capabilityTable.isIntegratedDevice) { + GTEST_SKIP(); + } + using STATE_SYSTEM_MEM_FENCE_ADDRESS = typename FamilyType::STATE_SYSTEM_MEM_FENCE_ADDRESS; ze_command_queue_desc_t desc = {}; auto csr = neoDevice->getDefaultEngine().commandStreamReceiver; diff --git a/opencl/test/unit_test/xe2_hpg_core/command_stream_receiver_hw_tests_xe2_hpg_core.cpp b/opencl/test/unit_test/xe2_hpg_core/command_stream_receiver_hw_tests_xe2_hpg_core.cpp index d84f1f8407..1b28df88b9 100644 --- a/opencl/test/unit_test/xe2_hpg_core/command_stream_receiver_hw_tests_xe2_hpg_core.cpp +++ b/opencl/test/unit_test/xe2_hpg_core/command_stream_receiver_hw_tests_xe2_hpg_core.cpp @@ -246,13 +246,15 @@ XE2_HPG_CORETEST_F(SystemMemoryFenceViaMiMemFenceTestXe2HpgCore, givenSystemMemo commandStreamReceiver.flushBcsTask(blitPropertiesContainer, false, false, *pDevice); EXPECT_TRUE(commandStreamReceiver.isEnginePrologueSent); - HardwareParse hwParser; - hwParser.parseCommands(cmdStream); - auto itorSystemMemFenceAddress = find(hwParser.cmdList.begin(), hwParser.cmdList.end()); - ASSERT_NE(hwParser.cmdList.end(), itorSystemMemFenceAddress); + if (!pClDevice->getHardwareInfo().capabilityTable.isIntegratedDevice) { + HardwareParse hwParser; + hwParser.parseCommands(cmdStream); + auto itorSystemMemFenceAddress = find(hwParser.cmdList.begin(), hwParser.cmdList.end()); + ASSERT_NE(hwParser.cmdList.end(), itorSystemMemFenceAddress); - auto systemMemFenceAddressCmd = genCmdCast(*itorSystemMemFenceAddress); - EXPECT_EQ(commandStreamReceiver.globalFenceAllocation->getGpuAddress(), systemMemFenceAddressCmd->getSystemMemoryFenceAddress()); + auto systemMemFenceAddressCmd = genCmdCast(*itorSystemMemFenceAddress); + EXPECT_EQ(commandStreamReceiver.globalFenceAllocation->getGpuAddress(), systemMemFenceAddressCmd->getSystemMemoryFenceAddress()); + } } struct SystemMemoryFenceViaComputeWalkerTest : public UltCommandStreamReceiverTest { @@ -282,13 +284,15 @@ XE2_HPG_CORETEST_F(SystemMemoryFenceViaComputeWalkerTestXe2HpgCore, givenSystemM commandStreamReceiver.programEnginePrologue(cmdStream); EXPECT_TRUE(commandStreamReceiver.isEnginePrologueSent); - HardwareParse hwParser; - hwParser.parseCommands(cmdStream); - auto itorSystemMemFenceAddress = find(hwParser.cmdList.begin(), hwParser.cmdList.end()); - ASSERT_NE(hwParser.cmdList.end(), itorSystemMemFenceAddress); + if (!pClDevice->getHardwareInfo().capabilityTable.isIntegratedDevice) { + HardwareParse hwParser; + hwParser.parseCommands(cmdStream); + auto itorSystemMemFenceAddress = find(hwParser.cmdList.begin(), hwParser.cmdList.end()); + ASSERT_NE(hwParser.cmdList.end(), itorSystemMemFenceAddress); - auto systemMemFenceAddressCmd = genCmdCast(*itorSystemMemFenceAddress); - EXPECT_EQ(commandStreamReceiver.globalFenceAllocation->getGpuAddress(), systemMemFenceAddressCmd->getSystemMemoryFenceAddress()); + auto systemMemFenceAddressCmd = genCmdCast(*itorSystemMemFenceAddress); + EXPECT_EQ(commandStreamReceiver.globalFenceAllocation->getGpuAddress(), systemMemFenceAddressCmd->getSystemMemoryFenceAddress()); + } } XE2_HPG_CORETEST_F(SystemMemoryFenceViaComputeWalkerTestXe2HpgCore, givenSystemMemoryFenceGeneratedAsPostSyncOperationInComputeWalkerWhenDispatchWalkerIsCalledThenSystemMemoryFenceRequestInPostSyncDataIsProgrammed) { @@ -346,13 +350,15 @@ XE2_HPG_CORETEST_F(SystemMemoryFenceViaKernelInstructionTestXe2HpgCore, givenSys commandStreamReceiver.programEnginePrologue(cmdStream); EXPECT_TRUE(commandStreamReceiver.isEnginePrologueSent); - HardwareParse hwParser; - hwParser.parseCommands(cmdStream); - auto itorSystemMemFenceAddress = find(hwParser.cmdList.begin(), hwParser.cmdList.end()); - ASSERT_NE(hwParser.cmdList.end(), itorSystemMemFenceAddress); + if (!pDevice->getHardwareInfo().capabilityTable.isIntegratedDevice) { + HardwareParse hwParser; + hwParser.parseCommands(cmdStream); + auto itorSystemMemFenceAddress = find(hwParser.cmdList.begin(), hwParser.cmdList.end()); + ASSERT_NE(hwParser.cmdList.end(), itorSystemMemFenceAddress); - auto systemMemFenceAddressCmd = genCmdCast(*itorSystemMemFenceAddress); - EXPECT_EQ(commandStreamReceiver.globalFenceAllocation->getGpuAddress(), systemMemFenceAddressCmd->getSystemMemoryFenceAddress()); + auto systemMemFenceAddressCmd = genCmdCast(*itorSystemMemFenceAddress); + EXPECT_EQ(commandStreamReceiver.globalFenceAllocation->getGpuAddress(), systemMemFenceAddressCmd->getSystemMemoryFenceAddress()); + } } struct SystemMemoryFenceInDefaultConfigurationTest : public UltCommandStreamReceiverTest { @@ -373,6 +379,9 @@ XE2_HPG_CORETEST_F(SystemMemoryFenceInDefaultConfigurationTestXe2HpgCore, using STATE_SYSTEM_MEM_FENCE_ADDRESS = typename FamilyType::STATE_SYSTEM_MEM_FENCE_ADDRESS; using COMPUTE_WALKER = typename FamilyType::COMPUTE_WALKER; using MI_MEM_FENCE = typename FamilyType::MI_MEM_FENCE; + if (pClDevice->getHardwareInfo().capabilityTable.isIntegratedDevice) { + GTEST_SKIP(); + } MockKernelWithInternals kernel(*pClDevice); MockContext context(pClDevice); @@ -396,13 +405,11 @@ XE2_HPG_CORETEST_F(SystemMemoryFenceInDefaultConfigurationTestXe2HpgCore, auto &postSyncData = walkerCmd->getPostSync(); EXPECT_FALSE(postSyncData.getSystemMemoryFenceRequest()); - if (MemorySynchronizationCommands::getSizeForAdditonalSynchronization(pClDevice->getRootDeviceEnvironment()) > 0) { - auto itorMiMemFence = find(hwParser.cmdList.begin(), hwParser.cmdList.end()); - ASSERT_NE(hwParser.cmdList.end(), itorMiMemFence); - auto fenceCmd = genCmdCast(*itorMiMemFence); - ASSERT_NE(nullptr, fenceCmd); - EXPECT_EQ(MI_MEM_FENCE::FENCE_TYPE::FENCE_TYPE_RELEASE, fenceCmd->getFenceType()); - } + auto itorMiMemFence = find(hwParser.cmdList.begin(), hwParser.cmdList.end()); + ASSERT_NE(hwParser.cmdList.end(), itorMiMemFence); + auto fenceCmd = genCmdCast(*itorMiMemFence); + ASSERT_NE(nullptr, fenceCmd); + EXPECT_EQ(MI_MEM_FENCE::FENCE_TYPE::FENCE_TYPE_RELEASE, fenceCmd->getFenceType()); } XE2_HPG_CORETEST_F(SystemMemoryFenceInDefaultConfigurationTestXe2HpgCore, @@ -410,6 +417,9 @@ XE2_HPG_CORETEST_F(SystemMemoryFenceInDefaultConfigurationTestXe2HpgCore, using STATE_SYSTEM_MEM_FENCE_ADDRESS = typename FamilyType::STATE_SYSTEM_MEM_FENCE_ADDRESS; using COMPUTE_WALKER = typename FamilyType::COMPUTE_WALKER; using MI_MEM_FENCE = typename FamilyType::MI_MEM_FENCE; + if (pClDevice->getHardwareInfo().capabilityTable.isIntegratedDevice) { + GTEST_SKIP(); + } MockKernelWithInternals kernel(*pClDevice); MockContext context(pClDevice); @@ -434,13 +444,11 @@ XE2_HPG_CORETEST_F(SystemMemoryFenceInDefaultConfigurationTestXe2HpgCore, auto &postSyncData = walkerCmd->getPostSync(); EXPECT_FALSE(postSyncData.getSystemMemoryFenceRequest()); - if (MemorySynchronizationCommands::getSizeForAdditonalSynchronization(pClDevice->getRootDeviceEnvironment()) > 0) { - auto itorMiMemFence = find(hwParser.cmdList.begin(), hwParser.cmdList.end()); - ASSERT_NE(hwParser.cmdList.end(), itorMiMemFence); - auto fenceCmd = genCmdCast(*itorMiMemFence); - ASSERT_NE(nullptr, fenceCmd); - EXPECT_EQ(MI_MEM_FENCE::FENCE_TYPE::FENCE_TYPE_RELEASE, fenceCmd->getFenceType()); - } + auto itorMiMemFence = find(hwParser.cmdList.begin(), hwParser.cmdList.end()); + ASSERT_NE(hwParser.cmdList.end(), itorMiMemFence); + auto fenceCmd = genCmdCast(*itorMiMemFence); + ASSERT_NE(nullptr, fenceCmd); + EXPECT_EQ(MI_MEM_FENCE::FENCE_TYPE::FENCE_TYPE_RELEASE, fenceCmd->getFenceType()); } XE2_HPG_CORETEST_F(SystemMemoryFenceInDefaultConfigurationTestXe2HpgCore, @@ -448,6 +456,9 @@ XE2_HPG_CORETEST_F(SystemMemoryFenceInDefaultConfigurationTestXe2HpgCore, using STATE_SYSTEM_MEM_FENCE_ADDRESS = typename FamilyType::STATE_SYSTEM_MEM_FENCE_ADDRESS; using COMPUTE_WALKER = typename FamilyType::COMPUTE_WALKER; using MI_MEM_FENCE = typename FamilyType::MI_MEM_FENCE; + if (pClDevice->getHardwareInfo().capabilityTable.isIntegratedDevice) { + GTEST_SKIP(); + } MockKernelWithInternals kernel(*pClDevice); MockContext context(pClDevice); @@ -472,13 +483,11 @@ XE2_HPG_CORETEST_F(SystemMemoryFenceInDefaultConfigurationTestXe2HpgCore, auto &postSyncData = walkerCmd->getPostSync(); EXPECT_FALSE(postSyncData.getSystemMemoryFenceRequest()); - if (MemorySynchronizationCommands::getSizeForAdditonalSynchronization(pClDevice->getRootDeviceEnvironment()) > 0) { - auto itorMiMemFence = find(hwParser.cmdList.begin(), hwParser.cmdList.end()); - ASSERT_NE(hwParser.cmdList.end(), itorMiMemFence); - auto fenceCmd = genCmdCast(*itorMiMemFence); - ASSERT_NE(nullptr, fenceCmd); - EXPECT_EQ(MI_MEM_FENCE::FENCE_TYPE::FENCE_TYPE_RELEASE, fenceCmd->getFenceType()); - } + auto itorMiMemFence = find(hwParser.cmdList.begin(), hwParser.cmdList.end()); + ASSERT_NE(hwParser.cmdList.end(), itorMiMemFence); + auto fenceCmd = genCmdCast(*itorMiMemFence); + ASSERT_NE(nullptr, fenceCmd); + EXPECT_EQ(MI_MEM_FENCE::FENCE_TYPE::FENCE_TYPE_RELEASE, fenceCmd->getFenceType()); auto event = castToObject(kernelEvent); event->release(); @@ -489,6 +498,9 @@ XE2_HPG_CORETEST_F(SystemMemoryFenceInDefaultConfigurationTestXe2HpgCore, using STATE_SYSTEM_MEM_FENCE_ADDRESS = typename FamilyType::STATE_SYSTEM_MEM_FENCE_ADDRESS; using COMPUTE_WALKER = typename FamilyType::COMPUTE_WALKER; using MI_MEM_FENCE = typename FamilyType::MI_MEM_FENCE; + if (pClDevice->getHardwareInfo().capabilityTable.isIntegratedDevice) { + GTEST_SKIP(); + } MockKernelWithInternals kernel(*pClDevice); MockContext context(pClDevice); @@ -514,13 +526,11 @@ XE2_HPG_CORETEST_F(SystemMemoryFenceInDefaultConfigurationTestXe2HpgCore, auto &postSyncData = walkerCmd->getPostSync(); EXPECT_TRUE(postSyncData.getSystemMemoryFenceRequest()); - if (MemorySynchronizationCommands::getSizeForAdditonalSynchronization(pClDevice->getRootDeviceEnvironment()) > 0) { - auto itorMiMemFence = find(hwParser.cmdList.begin(), hwParser.cmdList.end()); - ASSERT_NE(hwParser.cmdList.end(), itorMiMemFence); - auto fenceCmd = genCmdCast(*itorMiMemFence); - ASSERT_NE(nullptr, fenceCmd); - EXPECT_EQ(MI_MEM_FENCE::FENCE_TYPE::FENCE_TYPE_RELEASE, fenceCmd->getFenceType()); - } + auto itorMiMemFence = find(hwParser.cmdList.begin(), hwParser.cmdList.end()); + ASSERT_NE(hwParser.cmdList.end(), itorMiMemFence); + auto fenceCmd = genCmdCast(*itorMiMemFence); + ASSERT_NE(nullptr, fenceCmd); + EXPECT_EQ(MI_MEM_FENCE::FENCE_TYPE::FENCE_TYPE_RELEASE, fenceCmd->getFenceType()); auto event = castToObject(kernelEvent); event->release(); @@ -532,6 +542,10 @@ XE2_HPG_CORETEST_F(SystemMemoryFenceInDefaultConfigurationTestXe2HpgCore, using COMPUTE_WALKER = typename FamilyType::COMPUTE_WALKER; using MI_MEM_FENCE = typename FamilyType::MI_MEM_FENCE; + if (pClDevice->getHardwareInfo().capabilityTable.isIntegratedDevice) { + GTEST_SKIP(); + } + MockKernelWithInternals kernel(*pClDevice); MockContext context(pClDevice); MockCommandQueueHw commandQueue(&context, pClDevice, nullptr); @@ -557,13 +571,11 @@ XE2_HPG_CORETEST_F(SystemMemoryFenceInDefaultConfigurationTestXe2HpgCore, auto &postSyncData = walkerCmd->getPostSync(); EXPECT_TRUE(postSyncData.getSystemMemoryFenceRequest()); - if (MemorySynchronizationCommands::getSizeForAdditonalSynchronization(pClDevice->getRootDeviceEnvironment()) > 0) { - auto itorMiMemFence = find(hwParser.cmdList.begin(), hwParser.cmdList.end()); - ASSERT_NE(hwParser.cmdList.end(), itorMiMemFence); - auto fenceCmd = genCmdCast(*itorMiMemFence); - ASSERT_NE(nullptr, fenceCmd); - EXPECT_EQ(MI_MEM_FENCE::FENCE_TYPE::FENCE_TYPE_RELEASE, fenceCmd->getFenceType()); - } + auto itorMiMemFence = find(hwParser.cmdList.begin(), hwParser.cmdList.end()); + ASSERT_NE(hwParser.cmdList.end(), itorMiMemFence); + auto fenceCmd = genCmdCast(*itorMiMemFence); + ASSERT_NE(nullptr, fenceCmd); + EXPECT_EQ(MI_MEM_FENCE::FENCE_TYPE::FENCE_TYPE_RELEASE, fenceCmd->getFenceType()); auto event = castToObject(kernelEvent); event->release(); diff --git a/shared/source/helpers/gfx_core_helper_pvc_and_later.inl b/shared/source/helpers/gfx_core_helper_pvc_and_later.inl index 77dae69b1d..6783a6b4ac 100644 --- a/shared/source/helpers/gfx_core_helper_pvc_and_later.inl +++ b/shared/source/helpers/gfx_core_helper_pvc_and_later.inl @@ -17,7 +17,7 @@ bool GfxCoreHelperHw::isFenceAllocationRequired(const HardwareInfo &hwIn (debugManager.flags.ProgramGlobalFenceAsKernelInstructionInEUKernel.get() == 0)) { return false; } - return true; + return !hwInfo.capabilityTable.isIntegratedDevice; } template diff --git a/shared/source/xe2_hpg_core/command_encoder_xe2_hpg_core.cpp b/shared/source/xe2_hpg_core/command_encoder_xe2_hpg_core.cpp index a7eb35541a..4442b4830c 100644 --- a/shared/source/xe2_hpg_core/command_encoder_xe2_hpg_core.cpp +++ b/shared/source/xe2_hpg_core/command_encoder_xe2_hpg_core.cpp @@ -232,7 +232,7 @@ void EncodeSurfaceState::disableCompressionFlags(R_SURFACE_STATE *surfac template <> template void EncodeDispatchKernel::encodeAdditionalWalkerFields(const RootDeviceEnvironment &rootDeviceEnvironment, WalkerType &walkerCmd, const EncodeWalkerArgs &walkerArgs) { - auto programGlobalFenceAsPostSyncOperationInComputeWalker = walkerArgs.requiredSystemFence; + auto programGlobalFenceAsPostSyncOperationInComputeWalker = !rootDeviceEnvironment.getHardwareInfo()->capabilityTable.isIntegratedDevice && walkerArgs.requiredSystemFence; int32_t overrideProgramSystemMemoryFence = debugManager.flags.ProgramGlobalFenceAsPostSyncOperationInComputeWalker.get(); if (overrideProgramSystemMemoryFence != -1) { programGlobalFenceAsPostSyncOperationInComputeWalker = !!overrideProgramSystemMemoryFence; diff --git a/shared/test/unit_test/command_stream/command_stream_receiver_tests.cpp b/shared/test/unit_test/command_stream/command_stream_receiver_tests.cpp index c458dbd92b..82616f71a4 100644 --- a/shared/test/unit_test/command_stream/command_stream_receiver_tests.cpp +++ b/shared/test/unit_test/command_stream/command_stream_receiver_tests.cpp @@ -4234,6 +4234,9 @@ HWTEST2_F(CommandStreamReceiverHwTest, givenImmediateFlushTaskWhenOneTimeContextSystemFenceRequiredThenExpectOneTimeSystemFenceCommand, IsAtLeastXeHpcCore) { using STATE_SYSTEM_MEM_FENCE_ADDRESS = typename FamilyType::STATE_SYSTEM_MEM_FENCE_ADDRESS; + if (pDevice->getHardwareInfo().capabilityTable.isIntegratedDevice) { + GTEST_SKIP(); + } auto &commandStreamReceiver = pDevice->getUltCommandStreamReceiver(); commandStreamReceiver.storeMakeResidentAllocations = true; diff --git a/shared/test/unit_test/direct_submission/direct_submission_tests_2.cpp b/shared/test/unit_test/direct_submission/direct_submission_tests_2.cpp index 42ac528096..33cb7c0e0b 100644 --- a/shared/test/unit_test/direct_submission/direct_submission_tests_2.cpp +++ b/shared/test/unit_test/direct_submission/direct_submission_tests_2.cpp @@ -199,7 +199,7 @@ HWTEST_F(DirectSubmissionDispatchMiMemFenceTest, givenDebugFlagSetToTrueWhenCrea DebugManagerStateRestore restorer; debugManager.flags.DirectSubmissionInsertExtraMiMemFenceCommands.set(1); - if (heaplessStateInit) { + if (heaplessStateInit || pDevice->getHardwareInfo().capabilityTable.isIntegratedDevice) { GTEST_SKIP(); } diff --git a/shared/test/unit_test/xe2_hpg_core/gfx_core_helper_tests_xe2_hpg_core.cpp b/shared/test/unit_test/xe2_hpg_core/gfx_core_helper_tests_xe2_hpg_core.cpp index 95874eb8da..befaa042cd 100644 --- a/shared/test/unit_test/xe2_hpg_core/gfx_core_helper_tests_xe2_hpg_core.cpp +++ b/shared/test/unit_test/xe2_hpg_core/gfx_core_helper_tests_xe2_hpg_core.cpp @@ -391,7 +391,7 @@ XE2_HPG_CORETEST_F(GfxCoreHelperTestsXe2HpgCore, givenGfxCoreHelperWhenAskedIfFe debugManager.flags.ProgramGlobalFenceAsMiMemFenceCommandInCommandStream.set(-1); debugManager.flags.ProgramGlobalFenceAsPostSyncOperationInComputeWalker.set(-1); debugManager.flags.ProgramGlobalFenceAsKernelInstructionInEUKernel.set(-1); - EXPECT_TRUE(gfxCoreHelper.isFenceAllocationRequired(hwInfo)); + EXPECT_EQ(gfxCoreHelper.isFenceAllocationRequired(hwInfo), !hwInfo.capabilityTable.isIntegratedDevice); debugManager.flags.ProgramGlobalFenceAsMiMemFenceCommandInCommandStream.set(0); debugManager.flags.ProgramGlobalFenceAsPostSyncOperationInComputeWalker.set(0); @@ -401,17 +401,17 @@ XE2_HPG_CORETEST_F(GfxCoreHelperTestsXe2HpgCore, givenGfxCoreHelperWhenAskedIfFe debugManager.flags.ProgramGlobalFenceAsMiMemFenceCommandInCommandStream.set(1); debugManager.flags.ProgramGlobalFenceAsPostSyncOperationInComputeWalker.set(0); debugManager.flags.ProgramGlobalFenceAsKernelInstructionInEUKernel.set(0); - EXPECT_TRUE(gfxCoreHelper.isFenceAllocationRequired(hwInfo)); + EXPECT_EQ(gfxCoreHelper.isFenceAllocationRequired(hwInfo), !hwInfo.capabilityTable.isIntegratedDevice); debugManager.flags.ProgramGlobalFenceAsMiMemFenceCommandInCommandStream.set(0); debugManager.flags.ProgramGlobalFenceAsPostSyncOperationInComputeWalker.set(1); debugManager.flags.ProgramGlobalFenceAsKernelInstructionInEUKernel.set(0); - EXPECT_TRUE(gfxCoreHelper.isFenceAllocationRequired(hwInfo)); + EXPECT_EQ(gfxCoreHelper.isFenceAllocationRequired(hwInfo), !hwInfo.capabilityTable.isIntegratedDevice); debugManager.flags.ProgramGlobalFenceAsMiMemFenceCommandInCommandStream.set(0); debugManager.flags.ProgramGlobalFenceAsPostSyncOperationInComputeWalker.set(0); debugManager.flags.ProgramGlobalFenceAsKernelInstructionInEUKernel.set(1); - EXPECT_TRUE(gfxCoreHelper.isFenceAllocationRequired(hwInfo)); + EXPECT_EQ(gfxCoreHelper.isFenceAllocationRequired(hwInfo), !hwInfo.capabilityTable.isIntegratedDevice); } XE2_HPG_CORETEST_F(GfxCoreHelperTestsXe2HpgCore, givenDefaultMemorySynchronizationCommandsWhenGettingSizeForAdditionalSynchronizationThenCorrectValueIsReturned) { diff --git a/shared/test/unit_test/xe2_hpg_core/test_encode_xe2_hpg_core.cpp b/shared/test/unit_test/xe2_hpg_core/test_encode_xe2_hpg_core.cpp index 9ae095a835..c4c91595fa 100644 --- a/shared/test/unit_test/xe2_hpg_core/test_encode_xe2_hpg_core.cpp +++ b/shared/test/unit_test/xe2_hpg_core/test_encode_xe2_hpg_core.cpp @@ -441,7 +441,7 @@ XE2_HPG_CORETEST_F(EncodeKernelXe2HpgCoreTest, givenDefaultSettingForFenceWhenKe auto walkerCmd = genCmdCast(*itor); auto &postSyncData = walkerCmd->getPostSync(); - EXPECT_TRUE(postSyncData.getSystemMemoryFenceRequest()); + EXPECT_EQ(postSyncData.getSystemMemoryFenceRequest(), !pDevice->getHardwareInfo().capabilityTable.isIntegratedDevice); } XE2_HPG_CORETEST_F(EncodeKernelXe2HpgCoreTest, givenCleanHeapsAndSlmNotChangedAndUncachedMocsRequestedThenSBAIsProgrammedAndMocsAreSet) {