mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-06 19:32:25 +08:00
Use max enabled slice in debugger thread mapping
Signed-off-by: Yates, Brandon <brandon.yates@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
81845d3781
commit
71bef6094d
@@ -6,6 +6,7 @@
|
||||
*/
|
||||
|
||||
#include "shared/source/debug_settings/debug_settings_manager.h"
|
||||
#include "shared/source/helpers/hw_helper.h"
|
||||
|
||||
#include "level_zero/core/source/device/device.h"
|
||||
#include "level_zero/core/source/event/event.h"
|
||||
@@ -40,8 +41,9 @@ void L0HwHelperHw<GfxFamily>::getAttentionBitmaskForSingleThreads(const std::vec
|
||||
const uint32_t numThreadsPerEu = (hwInfo.gtSystemInfo.ThreadCount / hwInfo.gtSystemInfo.EUCount);
|
||||
const uint32_t bytesPerEu = alignUp(numThreadsPerEu, 8) / 8;
|
||||
const uint32_t threadsSizePerSlice = numSubslicesPerSlice * numEuPerSubslice * bytesPerEu;
|
||||
const uint32_t highestEnabledSlice = NEO::HwHelper::getHighestEnabledSlice(hwInfo);
|
||||
|
||||
bitmaskSize = hwInfo.gtSystemInfo.MaxSubSlicesSupported * hwInfo.gtSystemInfo.MaxEuPerSubSlice * bytesPerEu;
|
||||
bitmaskSize = std::max(highestEnabledSlice, hwInfo.gtSystemInfo.MaxSlicesSupported) * numSubslicesPerSlice * numEuPerSubslice * bytesPerEu;
|
||||
bitmask = std::make_unique<uint8_t[]>(bitmaskSize);
|
||||
|
||||
memset(bitmask.get(), 0, bitmaskSize);
|
||||
@@ -63,11 +65,12 @@ std::vector<EuThread::ThreadId> L0HwHelperHw<GfxFamily>::getThreadsFromAttention
|
||||
const uint32_t bytesPerEu = alignUp(numThreadsPerEu, 8) / 8;
|
||||
const uint32_t threadsSizePerSlice = numSubslicesPerSlice * numEuPerSubslice * bytesPerEu;
|
||||
const uint32_t threadsSizePerSubSlice = numEuPerSubslice * bytesPerEu;
|
||||
const uint32_t highestEnabledSlice = NEO::HwHelper::getHighestEnabledSlice(hwInfo);
|
||||
|
||||
UNRECOVERABLE_IF(bytesPerEu != 1);
|
||||
std::vector<EuThread::ThreadId> threads;
|
||||
|
||||
for (uint32_t slice = 0; slice < hwInfo.gtSystemInfo.MaxSlicesSupported; slice++) {
|
||||
for (uint32_t slice = 0; slice < std::max(highestEnabledSlice, hwInfo.gtSystemInfo.MaxSlicesSupported); slice++) {
|
||||
for (uint32_t subslice = 0; subslice < numSubslicesPerSlice; subslice++) {
|
||||
for (uint32_t eu = 0; eu < hwInfo.gtSystemInfo.MaxEuPerSubSlice; eu++) {
|
||||
size_t offset = slice * threadsSizePerSlice + subslice * threadsSizePerSubSlice + eu * bytesPerEu;
|
||||
|
||||
@@ -12,11 +12,12 @@ void L0HwHelperHw<Family>::getAttentionBitmaskForSingleThreads(const std::vector
|
||||
const uint32_t bytesPerEu = alignUp(numThreadsPerEu, 8) / 8;
|
||||
const uint32_t numEuPerSubslice = std::min(hwInfo.gtSystemInfo.MaxEuPerSubSlice, 8u);
|
||||
const uint32_t threadsSizePerSlice = numSubslicesPerSlice * numEuPerSubslice * bytesPerEu;
|
||||
const uint32_t highestEnabledSlice = NEO::HwHelper::getHighestEnabledSlice(hwInfo);
|
||||
|
||||
const uint32_t eusPerRow = 4;
|
||||
const uint32_t numberOfRows = 2;
|
||||
|
||||
bitmaskSize = hwInfo.gtSystemInfo.MaxSubSlicesSupported * numEuPerSubslice * bytesPerEu;
|
||||
bitmaskSize = std::max(highestEnabledSlice, hwInfo.gtSystemInfo.MaxSlicesSupported) * numSubslicesPerSlice * numEuPerSubslice * bytesPerEu;
|
||||
bitmask = std::make_unique<uint8_t[]>(bitmaskSize);
|
||||
|
||||
memset(bitmask.get(), 0, bitmaskSize);
|
||||
@@ -43,11 +44,12 @@ std::vector<EuThread::ThreadId> L0HwHelperHw<Family>::getThreadsFromAttentionBit
|
||||
const uint32_t threadsSizePerSubSlice = numEuPerSubslice * bytesPerEu;
|
||||
const uint32_t eusPerRow = 4;
|
||||
const uint32_t numberOfRows = 2;
|
||||
const uint32_t highestEnabledSlice = NEO::HwHelper::getHighestEnabledSlice(hwInfo);
|
||||
|
||||
UNRECOVERABLE_IF(bytesPerEu != 1);
|
||||
std::vector<EuThread::ThreadId> threads;
|
||||
|
||||
for (uint32_t slice = 0; slice < hwInfo.gtSystemInfo.MaxSlicesSupported; slice++) {
|
||||
for (uint32_t slice = 0; slice < std::max(highestEnabledSlice, hwInfo.gtSystemInfo.MaxSlicesSupported); slice++) {
|
||||
for (uint32_t subslice = 0; subslice < numSubslicesPerSlice; subslice++) {
|
||||
|
||||
size_t subSliceOffset = slice * threadsSizePerSlice + subslice * threadsSizePerSubSlice;
|
||||
|
||||
@@ -296,7 +296,6 @@ int main(int argc, char **argv) {
|
||||
gtSystemInfo.MaxEuPerSubSlice = std::max(gtSystemInfo.MaxEuPerSubSlice, euPerSubSlice);
|
||||
gtSystemInfo.MaxSlicesSupported = std::max(gtSystemInfo.MaxSlicesSupported, gtSystemInfo.SliceCount);
|
||||
gtSystemInfo.MaxSubSlicesSupported = std::max(gtSystemInfo.MaxSubSlicesSupported, gtSystemInfo.SubSliceCount);
|
||||
gtSystemInfo.IsDynamicallyPopulated = false;
|
||||
// clang-format on
|
||||
|
||||
// Platforms with uninitialized factory are not supported
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "shared/source/helpers/aligned_memory.h"
|
||||
#include "shared/source/helpers/ptr_math.h"
|
||||
#include "shared/test/common/helpers/debug_manager_state_restore.h"
|
||||
#include "shared/test/common/helpers/default_hw_info.h"
|
||||
@@ -373,9 +374,44 @@ HWTEST_F(L0HwHelperTest, givenBitmaskWithAttentionBitsForHalfOfThreadsWhenGettin
|
||||
}
|
||||
}
|
||||
|
||||
using PlatformsWithFusedEus = IsWithinGfxCore<IGFX_GEN12LP_CORE, IGFX_XE_HP_CORE>;
|
||||
using PlatformsWithFusedEus = IsWithinGfxCore<IGFX_GEN12LP_CORE, IGFX_XE_HPG_CORE>;
|
||||
using L0HwHelperFusedEuTest = ::testing::Test;
|
||||
|
||||
HWTEST2_F(L0HwHelperFusedEuTest, givenDynamicallyPopulatesSliceInfoGreaterThanMaxSlicesSupportedThenBitmasksAreCorrect, PlatformsWithFusedEus) {
|
||||
auto hwInfo = *NEO::defaultHwInfo.get();
|
||||
auto &l0HwHelper = L0::L0HwHelper::get(hwInfo.platform.eRenderCoreFamily);
|
||||
if (hwInfo.gtSystemInfo.MaxEuPerSubSlice <= 8) {
|
||||
GTEST_SKIP();
|
||||
}
|
||||
|
||||
std::unique_ptr<uint8_t[]> bitmask;
|
||||
size_t size = 0;
|
||||
|
||||
hwInfo.gtSystemInfo.IsDynamicallyPopulated = true;
|
||||
hwInfo.gtSystemInfo.MaxSlicesSupported = 2;
|
||||
for (int i = 0; i < GT_MAX_SLICE; i++) {
|
||||
hwInfo.gtSystemInfo.SliceInfo[i].Enabled = false;
|
||||
}
|
||||
hwInfo.gtSystemInfo.SliceInfo[2].Enabled = true;
|
||||
hwInfo.gtSystemInfo.SliceInfo[3].Enabled = true;
|
||||
|
||||
std::vector<EuThread::ThreadId> threadsWithAtt;
|
||||
threadsWithAtt.push_back({0, 2, 0, 0, 0});
|
||||
threadsWithAtt.push_back({0, 3, 0, 0, 0});
|
||||
l0HwHelper.getAttentionBitmaskForSingleThreads(threadsWithAtt, hwInfo, bitmask, size);
|
||||
const uint32_t numSubslicesPerSlice = hwInfo.gtSystemInfo.MaxSubSlicesSupported / hwInfo.gtSystemInfo.MaxSlicesSupported;
|
||||
const uint32_t numEuPerSubslice = std::min(hwInfo.gtSystemInfo.MaxEuPerSubSlice, 8u);
|
||||
const uint32_t numThreadsPerEu = (hwInfo.gtSystemInfo.ThreadCount / hwInfo.gtSystemInfo.EUCount);
|
||||
const uint32_t bytesPerEu = alignUp(numThreadsPerEu, 8) / 8;
|
||||
auto expected_size = 4 * numSubslicesPerSlice * numEuPerSubslice * bytesPerEu;
|
||||
EXPECT_EQ(size, expected_size);
|
||||
|
||||
auto threads = l0HwHelper.getThreadsFromAttentionBitmask(hwInfo, 0, bitmask.get(), size);
|
||||
ASSERT_EQ(threads.size(), 4u);
|
||||
EXPECT_EQ(threads[0], threadsWithAtt[0]);
|
||||
EXPECT_EQ(threads[2], threadsWithAtt[1]);
|
||||
}
|
||||
|
||||
HWTEST2_F(L0HwHelperFusedEuTest, givenBitmaskWithAttentionBitsForSingleThreadWhenGettingThreadsThenThreadForTwoEUsReturned, PlatformsWithFusedEus) {
|
||||
auto hwInfo = *NEO::defaultHwInfo.get();
|
||||
if (hwInfo.gtSystemInfo.MaxEuPerSubSlice <= 8) {
|
||||
|
||||
@@ -1516,3 +1516,27 @@ HWTEST2_F(HwHelperTest, givenAtLeastXeHpPlatformWhenGettingMinimalScratchSpaceSi
|
||||
const auto &hwHelper = HwHelper::get(renderCoreFamily);
|
||||
EXPECT_EQ(64U, hwHelper.getMinimalScratchSpaceSize());
|
||||
}
|
||||
|
||||
TEST(HwHelperTests, whenIsDynamicallyPopulatedisFalseThengetHighestEnabledSliceReturnsMaxSlicesSupported) {
|
||||
auto hwInfo = *defaultHwInfo;
|
||||
|
||||
hwInfo.gtSystemInfo.IsDynamicallyPopulated = false;
|
||||
hwInfo.gtSystemInfo.MaxSlicesSupported = 4;
|
||||
const auto &hwHelper = HwHelper::get(hwInfo.platform.eRenderCoreFamily);
|
||||
auto maxSlice = hwHelper.getHighestEnabledSlice(hwInfo);
|
||||
EXPECT_EQ(maxSlice, hwInfo.gtSystemInfo.MaxSlicesSupported);
|
||||
}
|
||||
|
||||
TEST(HwHelperTests, whenIsDynamicallyPopulatedisTrueThengetHighestEnabledSliceReturnsHighestEnabledSliceInfo) {
|
||||
auto hwInfo = *defaultHwInfo;
|
||||
|
||||
hwInfo.gtSystemInfo.IsDynamicallyPopulated = true;
|
||||
hwInfo.gtSystemInfo.MaxSlicesSupported = 4;
|
||||
for (int i = 0; i < GT_MAX_SLICE; i++) {
|
||||
hwInfo.gtSystemInfo.SliceInfo[i].Enabled = false;
|
||||
}
|
||||
hwInfo.gtSystemInfo.SliceInfo[6].Enabled = true;
|
||||
const auto &hwHelper = HwHelper::get(hwInfo.platform.eRenderCoreFamily);
|
||||
auto maxSlice = hwHelper.getHighestEnabledSlice(hwInfo);
|
||||
EXPECT_EQ(maxSlice, 7u);
|
||||
}
|
||||
|
||||
@@ -299,7 +299,6 @@ int main(int argc, char **argv) {
|
||||
gtSystemInfo.MaxEuPerSubSlice = std::max(gtSystemInfo.MaxEuPerSubSlice, euPerSubSlice);
|
||||
gtSystemInfo.MaxSlicesSupported = std::max(gtSystemInfo.MaxSlicesSupported, gtSystemInfo.SliceCount);
|
||||
gtSystemInfo.MaxSubSlicesSupported = std::max(gtSystemInfo.MaxSubSlicesSupported, gtSystemInfo.SubSliceCount);
|
||||
gtSystemInfo.IsDynamicallyPopulated = false;
|
||||
// clang-format on
|
||||
|
||||
binaryNameSuffix.append(familyName[hwInfoForTests.platform.eRenderCoreFamily]);
|
||||
|
||||
@@ -66,4 +66,18 @@ uint32_t HwHelper::getSubDevicesCount(const HardwareInfo *pHwInfo) {
|
||||
}
|
||||
}
|
||||
|
||||
uint32_t HwHelper::getHighestEnabledSlice(const HardwareInfo &hwInfo) {
|
||||
uint32_t highestEnabledSlice = 0;
|
||||
if (!hwInfo.gtSystemInfo.IsDynamicallyPopulated) {
|
||||
return hwInfo.gtSystemInfo.MaxSlicesSupported;
|
||||
}
|
||||
for (int highestSlice = GT_MAX_SLICE - 1; highestSlice >= 0; highestSlice--) {
|
||||
if (hwInfo.gtSystemInfo.SliceInfo[highestSlice].Enabled) {
|
||||
highestEnabledSlice = highestSlice + 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return highestEnabledSlice;
|
||||
}
|
||||
|
||||
} // namespace NEO
|
||||
|
||||
@@ -62,6 +62,7 @@ class HwHelper {
|
||||
static bool compressedBuffersSupported(const HardwareInfo &hwInfo);
|
||||
static bool compressedImagesSupported(const HardwareInfo &hwInfo);
|
||||
static bool cacheFlushAfterWalkerSupported(const HardwareInfo &hwInfo);
|
||||
static uint32_t getHighestEnabledSlice(const HardwareInfo &hwInfo);
|
||||
virtual bool timestampPacketWriteSupported() const = 0;
|
||||
virtual bool isTimestampWaitSupportedForQueues() const = 0;
|
||||
virtual bool isTimestampWaitSupportedForEvents(const HardwareInfo &hwInfo) const = 0;
|
||||
|
||||
@@ -75,6 +75,7 @@ void setHwInfoValuesFromConfig(const uint64_t hwInfoConfig, HardwareInfo &hwInfo
|
||||
hwInfoIn.gtSystemInfo.SubSliceCount = subSlicePerSliceCount * sliceCount;
|
||||
hwInfoIn.gtSystemInfo.DualSubSliceCount = subSlicePerSliceCount * sliceCount;
|
||||
hwInfoIn.gtSystemInfo.EUCount = euPerSubSliceCount * subSlicePerSliceCount * sliceCount;
|
||||
hwInfoIn.gtSystemInfo.IsDynamicallyPopulated = true;
|
||||
for (uint32_t slice = 0; slice < hwInfoIn.gtSystemInfo.SliceCount; slice++) {
|
||||
hwInfoIn.gtSystemInfo.SliceInfo[slice].Enabled = true;
|
||||
}
|
||||
|
||||
@@ -110,6 +110,7 @@ int HwInfoConfig::configureHwInfoDrm(const HardwareInfo *inHwInfo, HardwareInfo
|
||||
gtSystemInfo->MaxSubSlicesSupported = std::max(static_cast<uint32_t>(topologyData.maxSubSliceCount * topologyData.maxSliceCount), gtSystemInfo->MaxSubSlicesSupported);
|
||||
gtSystemInfo->MaxSlicesSupported = topologyData.maxSliceCount;
|
||||
|
||||
gtSystemInfo->IsDynamicallyPopulated = true;
|
||||
for (uint32_t slice = 0; slice < gtSystemInfo->SliceCount; slice++) {
|
||||
gtSystemInfo->SliceInfo[slice].Enabled = true;
|
||||
}
|
||||
|
||||
@@ -171,8 +171,10 @@ bool Wddm::translateTopologyInfo(TopologyMapping &mapping) {
|
||||
std::vector<int> sliceIndices;
|
||||
auto gtSystemInfo = rootDeviceEnvironment.getHardwareInfo()->gtSystemInfo;
|
||||
sliceIndices.reserve(gtSystemInfo.SliceCount);
|
||||
auto hwInfo = rootDeviceEnvironment.getHardwareInfo();
|
||||
const uint32_t highestEnabledSlice = NEO::HwHelper::getHighestEnabledSlice(*hwInfo);
|
||||
|
||||
for (uint32_t x = 0; x < GT_MAX_SLICE; x++) {
|
||||
for (uint32_t x = 0; x < std::max(highestEnabledSlice, hwInfo->gtSystemInfo.MaxSlicesSupported); x++) {
|
||||
if (!gtSystemInfo.SliceInfo[x].Enabled) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -207,7 +207,7 @@ void PvcHwConfig::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTable
|
||||
gtSysInfo->CCSInfo.Instances.CCSEnableMask = 0b11;
|
||||
|
||||
hwInfo->featureTable.ftrBcsInfo = 1;
|
||||
|
||||
gtSysInfo->IsDynamicallyPopulated = true;
|
||||
for (uint32_t slice = 0; slice < gtSysInfo->SliceCount; slice++) {
|
||||
gtSysInfo->SliceInfo[slice].Enabled = true;
|
||||
}
|
||||
|
||||
@@ -158,13 +158,7 @@ bool HwInfoConfigHw<gfxProduct>::isTile64With3DSurfaceOnBCSSupported(const Hardw
|
||||
|
||||
template <>
|
||||
uint32_t HwInfoConfigHw<gfxProduct>::computeMaxNeededSubSliceSpace(const HardwareInfo &hwInfo) const {
|
||||
auto highestEnabledSlice = 0;
|
||||
for (int highestSlice = GT_MAX_SLICE - 1; highestSlice >= 0; highestSlice--) {
|
||||
if (hwInfo.gtSystemInfo.SliceInfo[highestSlice].Enabled) {
|
||||
highestEnabledSlice = highestSlice + 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
const uint32_t highestEnabledSlice = NEO::HwHelper::getHighestEnabledSlice(hwInfo);
|
||||
|
||||
auto subSlicesPerSlice = hwInfo.gtSystemInfo.MaxSubSlicesSupported / hwInfo.gtSystemInfo.MaxSlicesSupported;
|
||||
auto maxSubSlice = highestEnabledSlice * subSlicesPerSlice;
|
||||
|
||||
@@ -178,7 +178,7 @@ void Dg2HwConfig::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTable
|
||||
gtSysInfo->CCSInfo.NumberOfCCSEnabled = 1;
|
||||
|
||||
hwInfo->featureTable.ftrBcsInfo = 1;
|
||||
|
||||
gtSysInfo->IsDynamicallyPopulated = true;
|
||||
for (uint32_t slice = 0; slice < gtSysInfo->SliceCount; slice++) {
|
||||
gtSysInfo->SliceInfo[slice].Enabled = true;
|
||||
}
|
||||
|
||||
@@ -292,7 +292,6 @@ int main(int argc, char **argv) {
|
||||
gtSystemInfo.MaxEuPerSubSlice = std::max(gtSystemInfo.MaxEuPerSubSlice, euPerSubSlice);
|
||||
gtSystemInfo.MaxSlicesSupported = std::max(gtSystemInfo.MaxSlicesSupported, gtSystemInfo.SliceCount);
|
||||
gtSystemInfo.MaxSubSlicesSupported = std::max(gtSystemInfo.MaxSubSlicesSupported, gtSystemInfo.SubSliceCount);
|
||||
gtSystemInfo.IsDynamicallyPopulated = false;
|
||||
// clang-format on
|
||||
|
||||
binaryNameSuffix.append(familyName[hwInfoForTests.platform.eRenderCoreFamily]);
|
||||
|
||||
@@ -164,6 +164,7 @@ TEST_F(WddmTests, givenDebugFlagForceEvictOnlyIfNecessaryAllValuesThenForceSetti
|
||||
TEST_F(WddmTests, GivengtSystemInfoSliceInfoHasEnabledSlicesAtHigherIndicesThenExpectTopologyMapCreateAndReturnTrue) {
|
||||
VariableBackup<HardwareInfo> backupHwInfo(defaultHwInfo.get());
|
||||
defaultHwInfo.get()->gtSystemInfo.MaxSlicesSupported = 2;
|
||||
defaultHwInfo.get()->gtSystemInfo.IsDynamicallyPopulated = true;
|
||||
defaultHwInfo.get()->gtSystemInfo.SliceCount = 1; // Only one slice enabled
|
||||
|
||||
defaultHwInfo.get()->gtSystemInfo.SliceInfo[0].Enabled = false;
|
||||
@@ -191,6 +192,7 @@ TEST_F(WddmTests, GivengtSystemInfoSliceInfoHasEnabledSlicesAtHigherIndicesThenE
|
||||
TEST_F(WddmTests, GivenProperTopologyDataAndDebugFlagsEnabledWhenInitializingWddmThenExpectTopologyMapCreateAndReturnTrue) {
|
||||
VariableBackup<HardwareInfo> backupHwInfo(defaultHwInfo.get());
|
||||
defaultHwInfo.get()->gtSystemInfo.MaxSlicesSupported = 10;
|
||||
defaultHwInfo.get()->gtSystemInfo.IsDynamicallyPopulated = true;
|
||||
defaultHwInfo.get()->gtSystemInfo.SliceCount = 1; // Only one slice enabled
|
||||
|
||||
defaultHwInfo.get()->gtSystemInfo.SliceInfo[0].Enabled = true;
|
||||
@@ -216,6 +218,7 @@ TEST_F(WddmTests, GivenNoSubsliceEnabledAndDebugFlagsEnabledWhenInitializingWddm
|
||||
VariableBackup<HardwareInfo> backupHwInfo(defaultHwInfo.get());
|
||||
defaultHwInfo.get()->gtSystemInfo.MaxSlicesSupported = 10;
|
||||
defaultHwInfo.get()->gtSystemInfo.SliceCount = 1; // Only one slice enabled
|
||||
defaultHwInfo.get()->gtSystemInfo.IsDynamicallyPopulated = true;
|
||||
defaultHwInfo.get()->gtSystemInfo.SliceInfo[0].DualSubSliceEnabledCount = 1;
|
||||
defaultHwInfo.get()->gtSystemInfo.SliceInfo[0].DSSInfo[0].Enabled = true;
|
||||
defaultHwInfo.get()->gtSystemInfo.SliceInfo[0].DSSInfo[0].SubSlice[0].Enabled = false;
|
||||
@@ -236,6 +239,7 @@ TEST_F(WddmTests, GivenProperTopologyDataWhenQueryingTopologyThenExpectTrue) {
|
||||
VariableBackup<HardwareInfo> backupHwInfo(defaultHwInfo.get());
|
||||
defaultHwInfo.get()->gtSystemInfo.MultiTileArchInfo.TileCount = 1;
|
||||
defaultHwInfo.get()->gtSystemInfo.MaxSlicesSupported = 10;
|
||||
defaultHwInfo.get()->gtSystemInfo.IsDynamicallyPopulated = true;
|
||||
defaultHwInfo.get()->gtSystemInfo.SliceCount = 1; // Only one slice enabled
|
||||
|
||||
defaultHwInfo.get()->gtSystemInfo.SliceInfo[0].Enabled = true;
|
||||
@@ -272,6 +276,7 @@ TEST_F(WddmTests, GivenMoreThanOneEnabledSliceWhenQueryingTopologyThenExpectTrue
|
||||
defaultHwInfo.get()->gtSystemInfo.MaxSlicesSupported = 10;
|
||||
defaultHwInfo.get()->gtSystemInfo.SliceCount = 2;
|
||||
defaultHwInfo.get()->gtSystemInfo.SliceInfo[0].Enabled = false;
|
||||
defaultHwInfo.get()->gtSystemInfo.IsDynamicallyPopulated = true;
|
||||
|
||||
uint32_t index = 1;
|
||||
for (uint32_t enabledSliceCount = 0; enabledSliceCount < defaultHwInfo.get()->gtSystemInfo.SliceCount; enabledSliceCount++) {
|
||||
@@ -303,6 +308,7 @@ TEST_F(WddmTests, GivenNoSubsliceEnabledWhenQueryingTopologyThenExpectFalse) {
|
||||
defaultHwInfo.get()->gtSystemInfo.MultiTileArchInfo.TileCount = 1;
|
||||
defaultHwInfo.get()->gtSystemInfo.MaxSlicesSupported = 10;
|
||||
defaultHwInfo.get()->gtSystemInfo.SliceCount = 1;
|
||||
defaultHwInfo.get()->gtSystemInfo.IsDynamicallyPopulated = true;
|
||||
|
||||
defaultHwInfo.get()->gtSystemInfo.SliceInfo[0].DualSubSliceEnabledCount = 1;
|
||||
// Lets say, DSS 0 is disabled and dss 1 is enabled, thus overall DSS enable count is 1
|
||||
@@ -320,6 +326,7 @@ TEST_F(WddmTests, GivenNoEuThreadsEnabledWhenQueryingTopologyThenExpectFalse) {
|
||||
defaultHwInfo.get()->gtSystemInfo.MultiTileArchInfo.TileCount = 1;
|
||||
defaultHwInfo.get()->gtSystemInfo.MaxSlicesSupported = 10;
|
||||
defaultHwInfo.get()->gtSystemInfo.SliceCount = 1;
|
||||
defaultHwInfo.get()->gtSystemInfo.IsDynamicallyPopulated = true;
|
||||
|
||||
defaultHwInfo.get()->gtSystemInfo.SliceInfo[0].DualSubSliceEnabledCount = 1;
|
||||
defaultHwInfo.get()->gtSystemInfo.SliceInfo[0].DSSInfo[0].Enabled = true;
|
||||
|
||||
@@ -51,7 +51,6 @@ DG2TEST_F(HwInfoConfigTestDg2, givenDg2ConfigWhenSetupHardwareInfoThenGtSystemIn
|
||||
Dg2HwConfig::setupHardwareInfo(&hwInfo, false);
|
||||
EXPECT_EQ(8u, gtSystemInfo.CsrSizeInMb);
|
||||
EXPECT_FALSE(gtSystemInfo.IsL3HashModeEnabled);
|
||||
EXPECT_FALSE(gtSystemInfo.IsDynamicallyPopulated);
|
||||
}
|
||||
|
||||
DG2TEST_F(HwInfoConfigTestDg2, givenG10DevIdWhenAdditionalKernelExecInfoSupportCheckedThenCorrectValueIsReturned) {
|
||||
@@ -392,6 +391,7 @@ DG2TEST_F(HwInfoConfigTestDg2, givenDg2WhenSetForceNonCoherentThenProperFlagSet)
|
||||
DG2TEST_F(HwInfoConfigTestDg2, givenEnabledSliceInNonStandardConfigWhenComputeUnitsUsedForScratchThenProperCalculationIsReturned) {
|
||||
HardwareInfo hwInfo = *defaultHwInfo;
|
||||
GT_SYSTEM_INFO &testSysInfo = hwInfo.gtSystemInfo;
|
||||
testSysInfo.IsDynamicallyPopulated = true;
|
||||
for (int i = 0; i < GT_MAX_SLICE; i++) {
|
||||
testSysInfo.SliceInfo[i].Enabled = false;
|
||||
}
|
||||
@@ -411,6 +411,7 @@ DG2TEST_F(HwInfoConfigTestDg2, givenEnabledSliceInNonStandardConfigWhenComputeUn
|
||||
DG2TEST_F(HwInfoConfigTestDg2, givenNotEnabledSliceWhenComputeUnitsUsedForScratchThenThrowUnrecoverableIf) {
|
||||
HardwareInfo hwInfo = *defaultHwInfo;
|
||||
GT_SYSTEM_INFO &testSysInfo = hwInfo.gtSystemInfo;
|
||||
testSysInfo.IsDynamicallyPopulated = true;
|
||||
for (int i = 0; i < GT_MAX_SLICE; i++) {
|
||||
testSysInfo.SliceInfo[i].Enabled = false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user