diff --git a/opencl/test/unit_test/device/sub_device_tests.cpp b/opencl/test/unit_test/device/sub_device_tests.cpp index 2c3335a959..9184be38b6 100644 --- a/opencl/test/unit_test/device/sub_device_tests.cpp +++ b/opencl/test/unit_test/device/sub_device_tests.cpp @@ -989,6 +989,12 @@ HWTEST_F(EngineInstancedDeviceTests, whenCreateMultipleCommandQueuesThenEnginesA } auto &hwInfo = rootDevice->getHardwareInfo(); + const auto &hwHelper = NEO::HwHelper::get(hwInfo.platform.eRenderCoreFamily); + + if (!hwHelper.isAssignEngineRoundRobinSupported()) { + GTEST_SKIP(); + } + EXPECT_EQ(ccsCount, hwInfo.gtSystemInfo.CCSInfo.NumberOfCCSEnabled); auto clRootDevice = std::make_unique(*rootDevice, nullptr); @@ -1002,7 +1008,6 @@ HWTEST_F(EngineInstancedDeviceTests, whenCreateMultipleCommandQueuesThenEnginesA } const auto &defaultEngine = clRootDevice->getDefaultEngine(); - const auto &hwHelper = NEO::HwHelper::get(hwInfo.platform.eRenderCoreFamily); const auto engineGroupType = hwHelper.getEngineGroupType(defaultEngine.getEngineType(), defaultEngine.getEngineUsage(), hwInfo); auto defaultEngineGroupIndex = clRootDevice->getDevice().getEngineGroupIndexFromEngineGroupType(engineGroupType); @@ -1030,6 +1035,12 @@ HWTEST_F(EngineInstancedDeviceTests, givenCmdQRoundRobindEngineAssignBitfieldwWe } auto &hwInfo = rootDevice->getHardwareInfo(); + const auto &hwHelper = NEO::HwHelper::get(hwInfo.platform.eRenderCoreFamily); + + if (!hwHelper.isAssignEngineRoundRobinSupported()) { + GTEST_SKIP(); + } + EXPECT_EQ(ccsCount, hwInfo.gtSystemInfo.CCSInfo.NumberOfCCSEnabled); auto clRootDevice = std::make_unique(*rootDevice, nullptr); @@ -1043,7 +1054,6 @@ HWTEST_F(EngineInstancedDeviceTests, givenCmdQRoundRobindEngineAssignBitfieldwWe } const auto &defaultEngine = clRootDevice->getDefaultEngine(); - const auto &hwHelper = NEO::HwHelper::get(hwInfo.platform.eRenderCoreFamily); const auto engineGroupType = hwHelper.getEngineGroupType(defaultEngine.getEngineType(), defaultEngine.getEngineUsage(), hwInfo); auto defaultEngineGroupIndex = clRootDevice->getDevice().getEngineGroupIndexFromEngineGroupType(engineGroupType); @@ -1074,6 +1084,12 @@ HWTEST_F(EngineInstancedDeviceTests, givenCmdQRoundRobindEngineAssignNTo1wWenCre } auto &hwInfo = rootDevice->getHardwareInfo(); + const auto &hwHelper = NEO::HwHelper::get(hwInfo.platform.eRenderCoreFamily); + + if (!hwHelper.isAssignEngineRoundRobinSupported()) { + GTEST_SKIP(); + } + EXPECT_EQ(ccsCount, hwInfo.gtSystemInfo.CCSInfo.NumberOfCCSEnabled); auto clRootDevice = std::make_unique(*rootDevice, nullptr); @@ -1087,7 +1103,6 @@ HWTEST_F(EngineInstancedDeviceTests, givenCmdQRoundRobindEngineAssignNTo1wWenCre } const auto &defaultEngine = clRootDevice->getDefaultEngine(); - const auto &hwHelper = NEO::HwHelper::get(hwInfo.platform.eRenderCoreFamily); const auto engineGroupType = hwHelper.getEngineGroupType(defaultEngine.getEngineType(), defaultEngine.getEngineUsage(), hwInfo); auto defaultEngineGroupIndex = clRootDevice->getDevice().getEngineGroupIndexFromEngineGroupType(engineGroupType); @@ -1116,6 +1131,12 @@ HWTEST_F(EngineInstancedDeviceTests, givenCmdQRoundRobindEngineAssignNTo1AndCmdQ } auto &hwInfo = rootDevice->getHardwareInfo(); + const auto &hwHelper = NEO::HwHelper::get(hwInfo.platform.eRenderCoreFamily); + + if (!hwHelper.isAssignEngineRoundRobinSupported()) { + GTEST_SKIP(); + } + EXPECT_EQ(ccsCount, hwInfo.gtSystemInfo.CCSInfo.NumberOfCCSEnabled); auto clRootDevice = std::make_unique(*rootDevice, nullptr); @@ -1129,7 +1150,6 @@ HWTEST_F(EngineInstancedDeviceTests, givenCmdQRoundRobindEngineAssignNTo1AndCmdQ } const auto &defaultEngine = clRootDevice->getDefaultEngine(); - const auto &hwHelper = NEO::HwHelper::get(hwInfo.platform.eRenderCoreFamily); const auto engineGroupType = hwHelper.getEngineGroupType(defaultEngine.getEngineType(), defaultEngine.getEngineUsage(), hwInfo); auto defaultEngineGroupIndex = clRootDevice->getDevice().getEngineGroupIndexFromEngineGroupType(engineGroupType); @@ -1159,6 +1179,12 @@ HWTEST_F(EngineInstancedDeviceTests, givenEnableCmdQRoundRobindEngineAssignDisab } auto &hwInfo = rootDevice->getHardwareInfo(); + const auto &hwHelper = NEO::HwHelper::get(hwInfo.platform.eRenderCoreFamily); + + if (!hwHelper.isAssignEngineRoundRobinSupported()) { + GTEST_SKIP(); + } + EXPECT_EQ(ccsCount, hwInfo.gtSystemInfo.CCSInfo.NumberOfCCSEnabled); auto clRootDevice = std::make_unique(*rootDevice, nullptr); diff --git a/opencl/test/unit_test/helpers/hw_helper_tests_xehp_and_later.cpp b/opencl/test/unit_test/helpers/hw_helper_tests_xehp_and_later.cpp index 452e8a1eec..e253fd72bd 100644 --- a/opencl/test/unit_test/helpers/hw_helper_tests_xehp_and_later.cpp +++ b/opencl/test/unit_test/helpers/hw_helper_tests_xehp_and_later.cpp @@ -84,11 +84,6 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, HwHelperTestXeHPAndLater, givenXeHPAndLaterPlatform EXPECT_TRUE(hwHelper.timestampPacketWriteSupported()); } -HWCMDTEST_F(IGFX_XE_HP_CORE, HwHelperTestXeHPAndLater, givenXeHPAndLaterPlatformWhenCheckAssignEngineRoundRobinSupportedThenReturnTrue) { - auto &hwHelper = HwHelperHw::get(); - EXPECT_TRUE(hwHelper.isAssignEngineRoundRobinSupported()); -} - HWCMDTEST_F(IGFX_XE_HP_CORE, HwHelperTestXeHPAndLater, givenAllFlagsSetWhenGetGpgpuEnginesThenReturnThreeRcsEnginesFourCcsEnginesAndOneBcsEngine) { HardwareInfo hwInfo = *defaultHwInfo; hwInfo.featureTable.flags.ftrCCSNode = true; diff --git a/opencl/test/unit_test/xe_hp_core/hw_helper_tests_xe_hp_core.cpp b/opencl/test/unit_test/xe_hp_core/hw_helper_tests_xe_hp_core.cpp index 03c0c969ce..9186a4cac7 100644 --- a/opencl/test/unit_test/xe_hp_core/hw_helper_tests_xe_hp_core.cpp +++ b/opencl/test/unit_test/xe_hp_core/hw_helper_tests_xe_hp_core.cpp @@ -189,6 +189,11 @@ XE_HP_CORE_TEST_F(HwHelperTestXE_HP_CORE, givenDisablePipeControlFlagIsEnabledWh EXPECT_EQ(0u, cmdStream.getUsed()); } +XE_HP_CORE_TEST_F(HwHelperTestXE_HP_CORE, givenXeHPAndLaterPlatformWhenCheckAssignEngineRoundRobinSupportedThenReturnFalse) { + auto &hwHelper = HwHelperHw::get(); + EXPECT_FALSE(hwHelper.isAssignEngineRoundRobinSupported()); +} + using HwInfoConfigTestXE_HP_CORE = ::testing::Test; XE_HP_CORE_TEST_F(HwInfoConfigTestXE_HP_CORE, givenDebugVariableSetWhenConfigureIsCalledThenSetupBlitterOperationsSupportedFlag) { diff --git a/shared/source/helpers/hw_helper_xehp_and_later.inl b/shared/source/helpers/hw_helper_xehp_and_later.inl index c48d00b2f5..cc5f89c75c 100644 --- a/shared/source/helpers/hw_helper_xehp_and_later.inl +++ b/shared/source/helpers/hw_helper_xehp_and_later.inl @@ -146,7 +146,7 @@ uint32_t HwHelperHw::getPlanarYuvMaxHeight() const { template bool HwHelperHw::isAssignEngineRoundRobinSupported() const { - return true; + return false; } template diff --git a/shared/source/xe_hpc_core/hw_helper_xe_hpc_core.cpp b/shared/source/xe_hpc_core/hw_helper_xe_hpc_core.cpp index 6a1c4ab287..bd99fbbb4d 100644 --- a/shared/source/xe_hpc_core/hw_helper_xe_hpc_core.cpp +++ b/shared/source/xe_hpc_core/hw_helper_xe_hpc_core.cpp @@ -372,6 +372,11 @@ int32_t HwHelperHw::getDefaultThreadArbitrationPolicy() const { return ThreadArbitrationPolicy::RoundRobinAfterDependency; } +template <> +bool HwHelperHw::isAssignEngineRoundRobinSupported() const { + return true; +} + template <> bool HwHelperHw::isSubDeviceEngineSupported(const HardwareInfo &hwInfo, const DeviceBitfield &deviceBitfield, aub_stream::EngineType engineType) const { constexpr uint64_t tile1Bitfield = 0b10; diff --git a/shared/test/unit_test/xe_hpc_core/hw_helper_xe_hpc_core_tests.cpp b/shared/test/unit_test/xe_hpc_core/hw_helper_xe_hpc_core_tests.cpp index 0d402dd588..d267da5cc0 100644 --- a/shared/test/unit_test/xe_hpc_core/hw_helper_xe_hpc_core_tests.cpp +++ b/shared/test/unit_test/xe_hpc_core/hw_helper_xe_hpc_core_tests.cpp @@ -62,4 +62,9 @@ XE_HPC_CORETEST_F(HwHelperXeHpcCoreTest, givenHwHelperWhenGettingIfRevisionSpeci XE_HPC_CORETEST_F(HwHelperXeHpcCoreTest, givenHwHelperWhenCheckTimestampWaitSupportThenReturnTrue) { auto &helper = HwHelper::get(renderCoreFamily); EXPECT_TRUE(helper.isTimestampWaitSupported()); +} + +XE_HPC_CORETEST_F(HwHelperXeHpcCoreTest, givenXeHPCPlatformWhenCheckAssignEngineRoundRobinSupportedThenReturnTrue) { + auto &hwHelper = HwHelperHw::get(); + EXPECT_TRUE(hwHelper.isAssignEngineRoundRobinSupported()); } \ No newline at end of file diff --git a/shared/test/unit_test/xe_hpg_core/hw_helper_tests_xe_hpg_core.cpp b/shared/test/unit_test/xe_hpg_core/hw_helper_tests_xe_hpg_core.cpp index a214f3a84d..ac2fb83897 100644 --- a/shared/test/unit_test/xe_hpg_core/hw_helper_tests_xe_hpg_core.cpp +++ b/shared/test/unit_test/xe_hpg_core/hw_helper_tests_xe_hpg_core.cpp @@ -122,6 +122,11 @@ XE_HPG_CORETEST_F(HwHelperTestXeHpgCore, WhenCheckingSipWAThenFalseIsReturned) { EXPECT_FALSE(HwHelper::get(pDevice->getHardwareInfo().platform.eRenderCoreFamily).isSipWANeeded(pDevice->getHardwareInfo())); } +XE_HPG_CORETEST_F(HwHelperTestXeHpgCore, givenXeHPAndLaterPlatformWhenCheckAssignEngineRoundRobinSupportedThenReturnFalse) { + auto &hwHelper = HwHelperHw::get(); + EXPECT_FALSE(hwHelper.isAssignEngineRoundRobinSupported()); +} + XE_HPG_CORETEST_F(HwHelperTestXeHpgCore, givenHwHelperWhenCheckTimestampWaitSupportThenReturnFalse) { auto &helper = HwHelper::get(renderCoreFamily); EXPECT_FALSE(helper.isTimestampWaitSupported());