From 3979af1dcc26c8b71bbaef757779784f98840eb1 Mon Sep 17 00:00:00 2001 From: Katarzyna Cencelewska Date: Mon, 6 Dec 2021 19:25:14 +0000 Subject: [PATCH] Move slice enable to setHwInfoValuesFromConfig Fix problem with not enabled slices in mode SetCommandStreamReceiver=1 Related-To: NEO-6507 Signed-off-by: Katarzyna Cencelewska --- level_zero/core/test/unit_tests/main.cpp | 4 --- opencl/test/unit_test/main.cpp | 4 --- .../os_interface/hw_info_config_tests.cpp | 27 ++++++++++++++----- shared/source/helpers/hw_info.cpp | 3 +++ shared/test/unit_test/main.cpp | 4 --- 5 files changed, 24 insertions(+), 18 deletions(-) diff --git a/level_zero/core/test/unit_tests/main.cpp b/level_zero/core/test/unit_tests/main.cpp index fb90a4535f..9dfd4bbf2f 100644 --- a/level_zero/core/test/unit_tests/main.cpp +++ b/level_zero/core/test/unit_tests/main.cpp @@ -312,10 +312,6 @@ int main(int argc, char **argv) { gtSystemInfo.IsDynamicallyPopulated = false; // clang-format on - for (uint32_t slice = 0; slice < gtSystemInfo.MaxSlicesSupported; slice++) { - gtSystemInfo.SliceInfo[slice].Enabled = true; - } - // Platforms with uninitialized factory are not supported if (L0::commandListFactory[productFamily] == nullptr) { std::cout << "unsupported product family has been set: " << NEO::hardwarePrefix[::productFamily] << std::endl; diff --git a/opencl/test/unit_test/main.cpp b/opencl/test/unit_test/main.cpp index d67e73407d..07354905a7 100644 --- a/opencl/test/unit_test/main.cpp +++ b/opencl/test/unit_test/main.cpp @@ -362,10 +362,6 @@ int main(int argc, char **argv) { gtSystemInfo.IsDynamicallyPopulated = false; // clang-format on - for (uint32_t slice = 0; slice < gtSystemInfo.MaxSlicesSupported; slice++) { - gtSystemInfo.SliceInfo[slice].Enabled = true; - } - binaryNameSuffix.append(familyName[hwInfoForTests.platform.eRenderCoreFamily]); binaryNameSuffix.append(hwInfoForTests.capabilityTable.platformType); diff --git a/opencl/test/unit_test/os_interface/hw_info_config_tests.cpp b/opencl/test/unit_test/os_interface/hw_info_config_tests.cpp index 9ed3ab3190..64dc2875f1 100644 --- a/opencl/test/unit_test/os_interface/hw_info_config_tests.cpp +++ b/opencl/test/unit_test/os_interface/hw_info_config_tests.cpp @@ -79,15 +79,21 @@ TEST_F(HwInfoConfigTest, WhenParsingHwInfoConfigThenCorrectValuesAreReturned) { EXPECT_EQ(outHwInfo.gtSystemInfo.SubSliceCount, 1u); EXPECT_EQ(outHwInfo.gtSystemInfo.DualSubSliceCount, 1u); EXPECT_EQ(outHwInfo.gtSystemInfo.EUCount, 1u); + for (uint32_t slice = 0; slice < outHwInfo.gtSystemInfo.SliceCount; slice++) { + EXPECT_TRUE(outHwInfo.gtSystemInfo.SliceInfo[slice].Enabled); + } - success = parseHwInfoConfigString("7x1x1", hwInfoConfig); + success = parseHwInfoConfigString("3x1x1", hwInfoConfig); EXPECT_TRUE(success); - EXPECT_EQ(hwInfoConfig, 0x700010001u); + EXPECT_EQ(hwInfoConfig, 0x300010001u); setHwInfoValuesFromConfig(hwInfoConfig, outHwInfo); - EXPECT_EQ(outHwInfo.gtSystemInfo.SliceCount, 7u); - EXPECT_EQ(outHwInfo.gtSystemInfo.SubSliceCount, 7u); - EXPECT_EQ(outHwInfo.gtSystemInfo.DualSubSliceCount, 7u); - EXPECT_EQ(outHwInfo.gtSystemInfo.EUCount, 7u); + EXPECT_EQ(outHwInfo.gtSystemInfo.SliceCount, 3u); + EXPECT_EQ(outHwInfo.gtSystemInfo.SubSliceCount, 3u); + EXPECT_EQ(outHwInfo.gtSystemInfo.DualSubSliceCount, 3u); + EXPECT_EQ(outHwInfo.gtSystemInfo.EUCount, 3u); + for (uint32_t slice = 0; slice < outHwInfo.gtSystemInfo.SliceCount; slice++) { + EXPECT_TRUE(outHwInfo.gtSystemInfo.SliceInfo[slice].Enabled); + } success = parseHwInfoConfigString("1x7x1", hwInfoConfig); EXPECT_TRUE(success); @@ -97,6 +103,9 @@ TEST_F(HwInfoConfigTest, WhenParsingHwInfoConfigThenCorrectValuesAreReturned) { EXPECT_EQ(outHwInfo.gtSystemInfo.SubSliceCount, 7u); EXPECT_EQ(outHwInfo.gtSystemInfo.DualSubSliceCount, 7u); EXPECT_EQ(outHwInfo.gtSystemInfo.EUCount, 7u); + for (uint32_t slice = 0; slice < outHwInfo.gtSystemInfo.SliceCount; slice++) { + EXPECT_TRUE(outHwInfo.gtSystemInfo.SliceInfo[slice].Enabled); + } success = parseHwInfoConfigString("1x1x7", hwInfoConfig); EXPECT_TRUE(success); @@ -106,6 +115,9 @@ TEST_F(HwInfoConfigTest, WhenParsingHwInfoConfigThenCorrectValuesAreReturned) { EXPECT_EQ(outHwInfo.gtSystemInfo.SubSliceCount, 1u); EXPECT_EQ(outHwInfo.gtSystemInfo.DualSubSliceCount, 1u); EXPECT_EQ(outHwInfo.gtSystemInfo.EUCount, 7u); + for (uint32_t slice = 0; slice < outHwInfo.gtSystemInfo.SliceCount; slice++) { + EXPECT_TRUE(outHwInfo.gtSystemInfo.SliceInfo[slice].Enabled); + } success = parseHwInfoConfigString("2x4x16", hwInfoConfig); EXPECT_TRUE(success); @@ -115,6 +127,9 @@ TEST_F(HwInfoConfigTest, WhenParsingHwInfoConfigThenCorrectValuesAreReturned) { EXPECT_EQ(outHwInfo.gtSystemInfo.SubSliceCount, 8u); EXPECT_EQ(outHwInfo.gtSystemInfo.DualSubSliceCount, 8u); EXPECT_EQ(outHwInfo.gtSystemInfo.EUCount, 128u); + for (uint32_t slice = 0; slice < outHwInfo.gtSystemInfo.SliceCount; slice++) { + EXPECT_TRUE(outHwInfo.gtSystemInfo.SliceInfo[slice].Enabled); + } } TEST_F(HwInfoConfigTest, givenInvalidHwInfoWhenParsingHwInfoConfigThenErrorIsReturned) { diff --git a/shared/source/helpers/hw_info.cpp b/shared/source/helpers/hw_info.cpp index 10297a4879..1180155494 100644 --- a/shared/source/helpers/hw_info.cpp +++ b/shared/source/helpers/hw_info.cpp @@ -72,6 +72,9 @@ void setHwInfoValuesFromConfig(const uint64_t hwInfoConfig, HardwareInfo &hwInfo hwInfoIn.gtSystemInfo.SubSliceCount = subSlicePerSliceCount * sliceCount; hwInfoIn.gtSystemInfo.DualSubSliceCount = subSlicePerSliceCount * sliceCount; hwInfoIn.gtSystemInfo.EUCount = euPerSubSliceCount * subSlicePerSliceCount * sliceCount; + for (uint32_t slice = 0; slice < hwInfoIn.gtSystemInfo.SliceCount; slice++) { + hwInfoIn.gtSystemInfo.SliceInfo[slice].Enabled = true; + } } bool parseHwInfoConfigString(const std::string &hwInfoConfigStr, uint64_t &hwInfoConfig) { diff --git a/shared/test/unit_test/main.cpp b/shared/test/unit_test/main.cpp index bb6b08f17c..f6e20eb992 100644 --- a/shared/test/unit_test/main.cpp +++ b/shared/test/unit_test/main.cpp @@ -341,10 +341,6 @@ int main(int argc, char **argv) { gtSystemInfo.IsDynamicallyPopulated = false; // clang-format on - for (uint32_t slice = 0; slice < gtSystemInfo.MaxSlicesSupported; slice++) { - gtSystemInfo.SliceInfo[slice].Enabled = true; - } - binaryNameSuffix.append(familyName[hwInfoForTests.platform.eRenderCoreFamily]); binaryNameSuffix.append(hwInfoForTests.capabilityTable.platformType);