diff --git a/opencl/test/unit_test/command_queue/dispatch_walker_tests_xehp_and_later.cpp b/opencl/test/unit_test/command_queue/dispatch_walker_tests_xehp_and_later.cpp index c08b3e1bac..4181dbd507 100644 --- a/opencl/test/unit_test/command_queue/dispatch_walker_tests_xehp_and_later.cpp +++ b/opencl/test/unit_test/command_queue/dispatch_walker_tests_xehp_and_later.cpp @@ -558,13 +558,20 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, XeHPAndLaterDispatchWalkerBasicTest, givenTimestamp device->getUltCommandStreamReceiver().timestampPacketWriteEnabled = false; getCommandStream(cmdQ, CsrDependencies(), false, false, false, multiDispatchInfo, nullptr, 0, false, false); - auto sizeWithDisabled = cmdQ.requestedCmdStreamSize; + size_t sizeWithDisabled = cmdQ.requestedCmdStreamSize; device->getUltCommandStreamReceiver().timestampPacketWriteEnabled = true; getCommandStream(cmdQ, CsrDependencies(), false, false, false, multiDispatchInfo, nullptr, 0, false, false); - auto sizeWithEnabled = cmdQ.requestedCmdStreamSize; + size_t sizeWithEnabled = cmdQ.requestedCmdStreamSize; - EXPECT_EQ(sizeWithEnabled, sizeWithDisabled + 0); + size_t additionalSize = 0u; + const auto &hwInfo = device->getHardwareInfo(); + const auto &hwInfoConfig = *HwInfoConfig::get(hwInfo.platform.eProductFamily); + if (hwInfoConfig.isResolveDependenciesByPipeControlsSupported(hwInfo, cmdQ.isOOQEnabled())) { + additionalSize = MemorySynchronizationCommands::getSizeForSingleBarrier(false); + } + + EXPECT_EQ(sizeWithEnabled, sizeWithDisabled + additionalSize); } HWCMDTEST_F(IGFX_XE_HP_CORE, XeHPAndLaterDispatchWalkerBasicTest, givenDebugVariableEnabledWhenEnqueueingThenWritePostsyncOperationInImmWriteMode) { diff --git a/opencl/test/unit_test/helpers/timestamp_packet_1_tests.cpp b/opencl/test/unit_test/helpers/timestamp_packet_1_tests.cpp index 87040cfa1a..71b44dcb62 100644 --- a/opencl/test/unit_test/helpers/timestamp_packet_1_tests.cpp +++ b/opencl/test/unit_test/helpers/timestamp_packet_1_tests.cpp @@ -182,7 +182,14 @@ HWTEST_F(TimestampPacketTests, givenTimestampPacketWriteEnabledWhenEstimatingStr } } - size_t extendedSize = sizeWithDisabled + EnqueueOperation::getSizeRequiredForTimestampPacketWrite() + sizeForNodeDependency; + size_t sizeForPipeControl = 0; + const auto &hwInfo = device->getHardwareInfo(); + const auto &hwInfoConfig = *HwInfoConfig::get(hwInfo.platform.eProductFamily); + if (hwInfoConfig.isResolveDependenciesByPipeControlsSupported(hwInfo, mockCmdQHw->isOOQEnabled())) { + sizeForPipeControl = MemorySynchronizationCommands::getSizeForSingleBarrier(false); + } + + size_t extendedSize = sizeWithDisabled + EnqueueOperation::getSizeRequiredForTimestampPacketWrite() + sizeForNodeDependency + sizeForPipeControl; EXPECT_EQ(sizeWithEnabled, extendedSize); } diff --git a/shared/source/xe_hpg_core/dg2/os_agnostic_hw_info_config_dg2.inl b/shared/source/xe_hpg_core/dg2/os_agnostic_hw_info_config_dg2.inl index 9ea36464d2..633d1e39bb 100644 --- a/shared/source/xe_hpg_core/dg2/os_agnostic_hw_info_config_dg2.inl +++ b/shared/source/xe_hpg_core/dg2/os_agnostic_hw_info_config_dg2.inl @@ -210,7 +210,7 @@ bool HwInfoConfigHw::isStorageInfoAdjustmentRequired() const { template <> bool HwInfoConfigHw::isResolveDependenciesByPipeControlsSupported(const HardwareInfo &hwInfo, bool isOOQ) const { - const bool enabled = false; + const bool enabled = !isOOQ; if (DebugManager.flags.ResolveDependenciesViaPipeControls.get() != -1) { return DebugManager.flags.ResolveDependenciesViaPipeControls.get() == 1; } diff --git a/shared/test/unit_test/xe_hpg_core/dg2/excludes_xe_hpg_core_dg2.cpp b/shared/test/unit_test/xe_hpg_core/dg2/excludes_xe_hpg_core_dg2.cpp index 9e0e105f7a..48bb42045d 100644 --- a/shared/test/unit_test/xe_hpg_core/dg2/excludes_xe_hpg_core_dg2.cpp +++ b/shared/test/unit_test/xe_hpg_core/dg2/excludes_xe_hpg_core_dg2.cpp @@ -21,6 +21,7 @@ HWTEST_EXCLUDE_PRODUCT(ProductHelperTest, givenProductHelperWhenAskedIfStorageIn HWTEST_EXCLUDE_PRODUCT(CompilerProductHelperFixture, givenAtLeastXeHpgCoreWhenGetCachingPolicyOptionsThenReturnWriteByPassPolicyOption_IsAtLeastXeHpgCore, IGFX_DG2); HWTEST_EXCLUDE_PRODUCT(ProductHelperTest, givenProductHelperWhenGetL1CachePolicyThenReturnWriteByPass_IsAtLeastXeHpgCore, IGFX_DG2); HWTEST_EXCLUDE_PRODUCT(HwInfoConfigTest, givenAtLeastXeHpgCoreWhenGetL1CachePolicyThenReturnCorrectValue_IsAtLeastXeHpgCore, IGFX_DG2); +HWTEST_EXCLUDE_PRODUCT(HwInfoConfigTest, givenDebugFlagWhenCheckingIsResolveDependenciesByPipeControlsSupportedThenCorrectValueIsReturned, IGFX_DG2); HWTEST_EXCLUDE_PRODUCT(AILTests, whenModifyKernelIfRequiredIsCalledThenDontChangeKernelSources, IGFX_DG2); HWTEST_EXCLUDE_PRODUCT(CommandEncodeStatesTest, givenSlmTotalSizeEqualZeroWhenDispatchingKernelThenSharedMemorySizeIsSetCorrectly, IGFX_DG2); HWTEST_EXCLUDE_PRODUCT(MemoryManagerTests, givenEnabledLocalMemoryWhenAllocateInternalAllocationInDevicePoolThen32BitAllocationIsCreated, IGFX_DG2); diff --git a/shared/test/unit_test/xe_hpg_core/dg2/hw_info_config_tests_dg2.cpp b/shared/test/unit_test/xe_hpg_core/dg2/hw_info_config_tests_dg2.cpp index d271914f4f..1ef1e8b339 100644 --- a/shared/test/unit_test/xe_hpg_core/dg2/hw_info_config_tests_dg2.cpp +++ b/shared/test/unit_test/xe_hpg_core/dg2/hw_info_config_tests_dg2.cpp @@ -552,3 +552,21 @@ DG2TEST_F(HwInfoConfigTestDg2, givenHwInfoConfigWhenGettingEvictIfNecessaryFlagS const auto &hwInfoConfig = *HwInfoConfig::get(hwInfo.platform.eProductFamily); EXPECT_TRUE(hwInfoConfig.isEvictionIfNecessaryFlagSupported()); } + +DG2TEST_F(HwInfoConfigTestDg2, givenDebugFlagWhenCheckingIsResolveDependenciesByPipeControlsSupportedThenCorrectValueIsReturned) { + DebugManagerStateRestore restorer; + HardwareInfo hwInfo = *defaultHwInfo; + auto hwInfoConfig = HwInfoConfig::get(hwInfo.platform.eProductFamily); + + // ResolveDependenciesViaPipeControls = -1 (default) + EXPECT_TRUE(hwInfoConfig->isResolveDependenciesByPipeControlsSupported(hwInfo, false)); + EXPECT_FALSE(hwInfoConfig->isResolveDependenciesByPipeControlsSupported(hwInfo, true)); + + DebugManager.flags.ResolveDependenciesViaPipeControls.set(0); + EXPECT_FALSE(hwInfoConfig->isResolveDependenciesByPipeControlsSupported(hwInfo, false)); + EXPECT_FALSE(hwInfoConfig->isResolveDependenciesByPipeControlsSupported(hwInfo, true)); + + DebugManager.flags.ResolveDependenciesViaPipeControls.set(1); + EXPECT_TRUE(hwInfoConfig->isResolveDependenciesByPipeControlsSupported(hwInfo, false)); + EXPECT_TRUE(hwInfoConfig->isResolveDependenciesByPipeControlsSupported(hwInfo, true)); +}