Disable round robin engine assign on PVC

Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
This commit is contained in:
Lukasz Jobczyk
2022-06-17 10:14:50 +00:00
committed by Compute-Runtime-Automation
parent 5f985a012a
commit f98c6b1a8b
12 changed files with 28 additions and 15 deletions

View File

@ -137,7 +137,7 @@ void CommandQueue::initializeGpgpu() const {
!this->isSpecialCommandQueue &&
!this->queueFamilySelected &&
!(getCmdQueueProperties<cl_queue_priority_khr>(propertiesVector.data(), CL_QUEUE_PRIORITY_KHR) & static_cast<cl_queue_priority_khr>(CL_QUEUE_PRIORITY_LOW_KHR)) &&
hwHelper.isAssignEngineRoundRobinSupported() &&
hwHelper.isAssignEngineRoundRobinSupported(hwInfo) &&
this->isAssignEngineRoundRobinEnabled();
if (assignEngineRoundRobin) {

View File

@ -994,7 +994,7 @@ HWTEST_F(EngineInstancedDeviceTests, whenCreateMultipleCommandQueuesThenEnginesA
auto &hwInfo = rootDevice->getHardwareInfo();
const auto &hwHelper = NEO::HwHelper::get(hwInfo.platform.eRenderCoreFamily);
if (!hwHelper.isAssignEngineRoundRobinSupported()) {
if (!hwHelper.isAssignEngineRoundRobinSupported(hwInfo)) {
GTEST_SKIP();
}
@ -1040,7 +1040,7 @@ HWTEST_F(EngineInstancedDeviceTests, givenCmdQRoundRobindEngineAssignBitfieldwWe
auto &hwInfo = rootDevice->getHardwareInfo();
const auto &hwHelper = NEO::HwHelper::get(hwInfo.platform.eRenderCoreFamily);
if (!hwHelper.isAssignEngineRoundRobinSupported()) {
if (!hwHelper.isAssignEngineRoundRobinSupported(hwInfo)) {
GTEST_SKIP();
}
@ -1089,7 +1089,7 @@ HWTEST_F(EngineInstancedDeviceTests, givenCmdQRoundRobindEngineAssignNTo1wWenCre
auto &hwInfo = rootDevice->getHardwareInfo();
const auto &hwHelper = NEO::HwHelper::get(hwInfo.platform.eRenderCoreFamily);
if (!hwHelper.isAssignEngineRoundRobinSupported()) {
if (!hwHelper.isAssignEngineRoundRobinSupported(hwInfo)) {
GTEST_SKIP();
}
@ -1136,7 +1136,7 @@ HWTEST_F(EngineInstancedDeviceTests, givenCmdQRoundRobindEngineAssignNTo1AndCmdQ
auto &hwInfo = rootDevice->getHardwareInfo();
const auto &hwHelper = NEO::HwHelper::get(hwInfo.platform.eRenderCoreFamily);
if (!hwHelper.isAssignEngineRoundRobinSupported()) {
if (!hwHelper.isAssignEngineRoundRobinSupported(hwInfo)) {
GTEST_SKIP();
}
@ -1184,7 +1184,7 @@ HWTEST_F(EngineInstancedDeviceTests, givenEnableCmdQRoundRobindEngineAssignDisab
auto &hwInfo = rootDevice->getHardwareInfo();
const auto &hwHelper = NEO::HwHelper::get(hwInfo.platform.eRenderCoreFamily);
if (!hwHelper.isAssignEngineRoundRobinSupported()) {
if (!hwHelper.isAssignEngineRoundRobinSupported(hwInfo)) {
GTEST_SKIP();
}

View File

@ -191,7 +191,7 @@ XE_HP_CORE_TEST_F(HwHelperTestXE_HP_CORE, givenDisablePipeControlFlagIsEnabledWh
XE_HP_CORE_TEST_F(HwHelperTestXE_HP_CORE, givenXeHPAndLaterPlatformWhenCheckAssignEngineRoundRobinSupportedThenReturnFalse) {
auto &hwHelper = HwHelperHw<FamilyType>::get();
EXPECT_FALSE(hwHelper.isAssignEngineRoundRobinSupported());
EXPECT_FALSE(hwHelper.isAssignEngineRoundRobinSupported(*defaultHwInfo));
}
using HwInfoConfigTestXE_HP_CORE = ::testing::Test;

View File

@ -109,7 +109,7 @@ class HwHelper {
virtual bool useOnlyGlobalTimestamps() const = 0;
virtual bool useSystemMemoryPlacementForISA(const HardwareInfo &hwInfo) const = 0;
virtual bool packedFormatsSupported() const = 0;
virtual bool isAssignEngineRoundRobinSupported() const = 0;
virtual bool isAssignEngineRoundRobinSupported(const HardwareInfo &hwInfo) const = 0;
virtual bool isRcsAvailable(const HardwareInfo &hwInfo) const = 0;
virtual bool isCooperativeDispatchSupported(const EngineGroupType engineGroupType, const HardwareInfo &hwInfo) const = 0;
virtual uint32_t adjustMaxWorkGroupCount(uint32_t maxWorkGroupCount, const EngineGroupType engineGroupType,
@ -374,7 +374,7 @@ class HwHelperHw : public HwHelper {
bool unTypedDataPortCacheFlushRequired() const override;
bool isAssignEngineRoundRobinSupported() const override;
bool isAssignEngineRoundRobinSupported(const HardwareInfo &hwInfo) const override;
bool isEngineTypeRemappingToHwSpecificRequired() const override;

View File

@ -56,7 +56,7 @@ bool HwHelperHw<GfxFamily>::isUpdateTaskCountFromWaitSupported() const {
}
template <typename GfxFamily>
bool HwHelperHw<GfxFamily>::isAssignEngineRoundRobinSupported() const {
bool HwHelperHw<GfxFamily>::isAssignEngineRoundRobinSupported(const HardwareInfo &hwInfo) const {
return false;
}

View File

@ -152,7 +152,7 @@ uint32_t HwHelperHw<GfxFamily>::getPlanarYuvMaxHeight() const {
}
template <typename GfxFamily>
bool HwHelperHw<GfxFamily>::isAssignEngineRoundRobinSupported() const {
bool HwHelperHw<GfxFamily>::isAssignEngineRoundRobinSupported(const HardwareInfo &hwInfo) const {
return false;
}

View File

@ -119,6 +119,7 @@ class HwInfoConfig {
virtual bool isImplicitScalingSupported(const HardwareInfo &hwInfo) const = 0;
virtual bool isCpuCopyNecessary(const void *ptr, MemoryManager *memoryManager) const = 0;
virtual bool isAdjustWalkOrderAvailable(const HardwareInfo &hwInfo) const = 0;
virtual bool isAssignEngineRoundRobinSupported() const = 0;
MOCKABLE_VIRTUAL ~HwInfoConfig() = default;
@ -216,6 +217,7 @@ class HwInfoConfigHw : public HwInfoConfig {
bool isImplicitScalingSupported(const HardwareInfo &hwInfo) const override;
bool isCpuCopyNecessary(const void *ptr, MemoryManager *memoryManager) const override;
bool isAdjustWalkOrderAvailable(const HardwareInfo &hwInfo) const override;
bool isAssignEngineRoundRobinSupported() const override;
protected:
HwInfoConfigHw() = default;

View File

@ -222,6 +222,11 @@ bool HwInfoConfigHw<gfxProduct>::isPrefetchDisablingRequired(const HardwareInfo
return false;
}
template <PRODUCT_FAMILY gfxProduct>
bool HwInfoConfigHw<gfxProduct>::isAssignEngineRoundRobinSupported() const {
return false;
}
template <PRODUCT_FAMILY gfxProduct>
std::pair<bool, bool> HwInfoConfigHw<gfxProduct>::isPipeControlPriorToNonPipelinedStateCommandsWARequired(const HardwareInfo &hwInfo, bool isRcs) const {
return {false, false};

View File

@ -371,8 +371,8 @@ int32_t HwHelperHw<Family>::getDefaultThreadArbitrationPolicy() const {
}
template <>
bool HwHelperHw<Family>::isAssignEngineRoundRobinSupported() const {
return true;
bool HwHelperHw<Family>::isAssignEngineRoundRobinSupported(const HardwareInfo &hwInfo) const {
return HwInfoConfig::get(hwInfo.platform.eProductFamily)->isAssignEngineRoundRobinSupported();
}
template <>

View File

@ -179,3 +179,8 @@ template <>
bool HwInfoConfigHw<gfxProduct>::isImplicitScalingSupported(const HardwareInfo &hwInfo) const {
return getSteppingFromHwRevId(hwInfo) >= REVISION_B;
}
template <>
bool HwInfoConfigHw<gfxProduct>::isAssignEngineRoundRobinSupported() const {
return false;
}

View File

@ -66,6 +66,7 @@ XE_HPC_CORETEST_F(HwHelperXeHpcCoreTest, givenHwHelperWhenCheckTimestampWaitSupp
}
XE_HPC_CORETEST_F(HwHelperXeHpcCoreTest, givenXeHPCPlatformWhenCheckAssignEngineRoundRobinSupportedThenReturnTrue) {
auto hwInfo = *defaultHwInfo;
auto &hwHelper = HwHelperHw<FamilyType>::get();
EXPECT_TRUE(hwHelper.isAssignEngineRoundRobinSupported());
EXPECT_EQ(hwHelper.isAssignEngineRoundRobinSupported(hwInfo), HwInfoConfig::get(hwInfo.platform.eProductFamily)->isAssignEngineRoundRobinSupported());
}

View File

@ -124,7 +124,7 @@ XE_HPG_CORETEST_F(HwHelperTestXeHpgCore, WhenCheckingSipWAThenFalseIsReturned) {
XE_HPG_CORETEST_F(HwHelperTestXeHpgCore, givenXeHPAndLaterPlatformWhenCheckAssignEngineRoundRobinSupportedThenReturnFalse) {
auto &hwHelper = HwHelperHw<FamilyType>::get();
EXPECT_FALSE(hwHelper.isAssignEngineRoundRobinSupported());
EXPECT_FALSE(hwHelper.isAssignEngineRoundRobinSupported(*defaultHwInfo));
}
XE_HPG_CORETEST_F(HwHelperTestXeHpgCore, givenHwHelperWhenCheckTimestampWaitSupportThenReturnFalse) {