diff --git a/opencl/test/unit_test/aub_tests/fixtures/multicontext_aub_fixture.cpp b/opencl/test/unit_test/aub_tests/fixtures/multicontext_aub_fixture.cpp index 01fea1f452..a211b54fb8 100644 --- a/opencl/test/unit_test/aub_tests/fixtures/multicontext_aub_fixture.cpp +++ b/opencl/test/unit_test/aub_tests/fixtures/multicontext_aub_fixture.cpp @@ -175,7 +175,7 @@ void MulticontextAubFixture::overridePlatformConfigForAllEnginesSupport(Hardware #ifdef SUPPORT_XE_HP_SDV if (localHwInfo.platform.eProductFamily == IGFX_XE_HP_SDV) { setupCalled = true; - XE_HP_SDV_CONFIG::setupHardwareInfo(&localHwInfo, true); + XE_HP_SDV_CONFIG::setupHardwareInfoMultiTile(&localHwInfo, true, true); // Mock values localHwInfo.gtSystemInfo.SliceCount = 8; @@ -195,7 +195,7 @@ void MulticontextAubFixture::overridePlatformConfigForAllEnginesSupport(Hardware ASSERT_TRUE(numberOfEnabledTiles == 1); setupCalled = true; - DG2_CONFIG::setupHardwareInfo(&localHwInfo, true); + DG2_CONFIG::setupHardwareInfoMultiTile(&localHwInfo, true, false); // Mock values localHwInfo.gtSystemInfo.SliceCount = 8; @@ -214,7 +214,7 @@ void MulticontextAubFixture::overridePlatformConfigForAllEnginesSupport(Hardware if (localHwInfo.platform.eProductFamily == IGFX_PVC) { setupCalled = true; - PVC_CONFIG::setupHardwareInfo(&localHwInfo, true); + PVC_CONFIG::setupHardwareInfoMultiTile(&localHwInfo, true, true); // Mock values localHwInfo.gtSystemInfo.SliceCount = 8; diff --git a/opencl/test/unit_test/offline_compiler/offline_compiler_tests.cpp b/opencl/test/unit_test/offline_compiler/offline_compiler_tests.cpp index c5d171ea25..8c3200400f 100644 --- a/opencl/test/unit_test/offline_compiler/offline_compiler_tests.cpp +++ b/opencl/test/unit_test/offline_compiler/offline_compiler_tests.cpp @@ -520,8 +520,7 @@ TEST(MultiCommandWhiteboxTest, GivenInvalidArgsWhenInitializingThenErrorIsReturn EXPECT_NE(std::string::npos, errorPosition); } -using MockOfflineCompilerTests = ::testing::Test; -TEST_F(MockOfflineCompilerTests, givenProductConfigValueWhenInitHwInfoThenBaseHardwareInfoValuesAreSet) { +TEST(MockOfflineCompilerTests, givenProductConfigValueWhenInitHwInfoThenResetGtSystemInfo) { MockOfflineCompiler mockOfflineCompiler; auto allEnabledDeviceConfigs = mockOfflineCompiler.argHelper->getAllSupportedDeviceConfigs(); if (allEnabledDeviceConfigs.empty()) { @@ -540,30 +539,11 @@ TEST_F(MockOfflineCompilerTests, givenProductConfigValueWhenInitHwInfoThenBaseHa EXPECT_FALSE(mockOfflineCompiler.deviceName.empty()); mockOfflineCompiler.initHardwareInfo(mockOfflineCompiler.deviceName); + GT_SYSTEM_INFO expectedGtSystemInfo = {0}; EXPECT_EQ(mockOfflineCompiler.hwInfo.platform.usRevId, expectedRevId); EXPECT_EQ(mockOfflineCompiler.hwInfo.platform.eProductFamily, productFamily); - EXPECT_NE(mockOfflineCompiler.hwInfo.gtSystemInfo.MaxEuPerSubSlice, 0u); - EXPECT_NE(mockOfflineCompiler.hwInfo.gtSystemInfo.MaxSlicesSupported, 0u); - EXPECT_NE(mockOfflineCompiler.hwInfo.gtSystemInfo.MaxSubSlicesSupported, 0u); -} - -HWTEST2_F(MockOfflineCompilerTests, givenProductConfigValueWhenInitHwInfoThenMaxDualSubSlicesSupportedIsSet, IsAtLeastGen12lp) { - MockOfflineCompiler mockOfflineCompiler; - auto allEnabledDeviceConfigs = mockOfflineCompiler.argHelper->getAllSupportedDeviceConfigs(); - if (allEnabledDeviceConfigs.empty()) { - GTEST_SKIP(); - } - - for (auto &deviceMapConfig : allEnabledDeviceConfigs) { - if (productFamily == deviceMapConfig.hwInfo->platform.eProductFamily) { - mockOfflineCompiler.deviceName = ProductConfigHelper::parseMajorMinorRevisionValue(deviceMapConfig.config); - break; - } - } - - mockOfflineCompiler.initHardwareInfo(mockOfflineCompiler.deviceName); - EXPECT_NE(mockOfflineCompiler.hwInfo.gtSystemInfo.MaxDualSubSlicesSupported, 0u); + EXPECT_EQ(memcmp(&mockOfflineCompiler.hwInfo.gtSystemInfo, &expectedGtSystemInfo, sizeof(GT_SYSTEM_INFO)), 0); } TEST_F(OfflineCompilerTests, GivenHelpOptionOnQueryThenSuccessIsReturned) { @@ -2991,6 +2971,17 @@ TEST(OclocArgHelperTest, GivenDifferentRevisionIdsInDeviceMappingsWhenComparingT EXPECT_FALSE(lhs == rhs); } +TEST(OclocArgHelperTest, GivenDifferentSetupFeatureAndWorkaroundTableFunctionsInDeviceMappingsWhenComparingThemThenFalseIsReturned) { + DeviceMapping lhs{}; + DeviceMapping rhs{}; + ASSERT_TRUE(lhs == rhs); + + // Different lambdas are obligated to have different addresses. + lhs.setupFeatureAndWorkaroundTable = [](NEO::HardwareInfo *hwInfo) {}; + rhs.setupFeatureAndWorkaroundTable = [](NEO::HardwareInfo *hwInfo) {}; + EXPECT_FALSE(lhs == rhs); +} + TEST(OclocArgHelperTest, GivenDifferentHwInfosInDeviceMappingsWhenComparingThemThenFalseIsReturned) { DeviceMapping lhs{}; DeviceMapping rhs{}; diff --git a/shared/offline_compiler/source/ocloc_arg_helper.cpp b/shared/offline_compiler/source/ocloc_arg_helper.cpp index 4f269bbcd2..85f4f6e7bb 100644 --- a/shared/offline_compiler/source/ocloc_arg_helper.cpp +++ b/shared/offline_compiler/source/ocloc_arg_helper.cpp @@ -63,9 +63,9 @@ OclocArgHelper::OclocArgHelper(const uint32_t numSources, const uint8_t **dataSo #undef NAMEDDEVICE {0u, std::string("")}}), deviceMap({ -#define DEVICE_CONFIG_IDS_AND_REVISION(product, productConfig, deviceIds, revision_id) {product, &NEO::productConfig::hwInfo, &NEO::deviceIds, revision_id}, -#define DEVICE_CONFIG_IDS(product, productConfig, deviceIds) {product, &NEO::productConfig::hwInfo, &NEO::deviceIds, NEO::productConfig::hwInfo.platform.usRevId}, -#define DEVICE_CONFIG(product, productConfig) {product, &NEO::productConfig::hwInfo, nullptr, NEO::productConfig::hwInfo.platform.usRevId}, +#define DEVICE_CONFIG_IDS_AND_REVISION(product, productConfig, deviceIds, revision_id) {product, &NEO::productConfig::hwInfo, &NEO::deviceIds, NEO::productConfig::setupFeatureAndWorkaroundTable, revision_id}, +#define DEVICE_CONFIG_IDS(product, productConfig, deviceIds) {product, &NEO::productConfig::hwInfo, &NEO::deviceIds, NEO::productConfig::setupFeatureAndWorkaroundTable, NEO::productConfig::hwInfo.platform.usRevId}, +#define DEVICE_CONFIG(product, productConfig) {product, &NEO::productConfig::hwInfo, nullptr, NEO::productConfig::setupFeatureAndWorkaroundTable, NEO::productConfig::hwInfo.platform.usRevId}, #include "product_config.inl" #undef DEVICE_CONFIG #undef DEVICE_CONFIG_IDS @@ -171,13 +171,14 @@ std::unique_ptr OclocArgHelper::loadDataFromFile(const std::string &file void OclocArgHelper::setDeviceInfoForFatbinaryTarget(const DeviceMapping &device) { deviceForFatbinary.hwInfo = device.hwInfo; + deviceForFatbinary.setupFeatureAndWorkaroundTable = device.setupFeatureAndWorkaroundTable; deviceForFatbinary.revId = device.revId; deviceForFatbinary.deviceIds = device.deviceIds; } void OclocArgHelper::setHwInfoForFatbinaryTarget(NEO::HardwareInfo &hwInfo) { hwInfo = *deviceForFatbinary.hwInfo; - NEO::hardwareInfoBaseSetup[hwInfo.platform.eProductFamily](&hwInfo, true); + deviceForFatbinary.setupFeatureAndWorkaroundTable(&hwInfo); hwInfo.platform.usRevId = deviceForFatbinary.revId; if (deviceForFatbinary.deviceIds) { hwInfo.platform.usDeviceID = deviceForFatbinary.deviceIds->front(); @@ -192,7 +193,7 @@ bool OclocArgHelper::getHwInfoForProductConfig(uint32_t config, NEO::HardwareInf for (auto &deviceConfig : deviceMap) { if (deviceConfig.config == config) { hwInfo = *deviceConfig.hwInfo; - NEO::hardwareInfoBaseSetup[hwInfo.platform.eProductFamily](&hwInfo, true); + deviceConfig.setupFeatureAndWorkaroundTable(&hwInfo); hwInfo.platform.usRevId = deviceConfig.revId; if (deviceConfig.deviceIds) { hwInfo.platform.usDeviceID = deviceConfig.deviceIds->front(); diff --git a/shared/offline_compiler/source/ocloc_arg_helper.h b/shared/offline_compiler/source/ocloc_arg_helper.h index 6d75c2a40a..59c0a4f0f7 100644 --- a/shared/offline_compiler/source/ocloc_arg_helper.h +++ b/shared/offline_compiler/source/ocloc_arg_helper.h @@ -51,10 +51,11 @@ struct DeviceMapping { PRODUCT_CONFIG config; const NEO::HardwareInfo *hwInfo; const std::vector *deviceIds; + void (*setupFeatureAndWorkaroundTable)(NEO::HardwareInfo *hwInfo); unsigned int revId; bool operator==(const DeviceMapping &rhs) { - return config == rhs.config && hwInfo == rhs.hwInfo && revId == rhs.revId; + return config == rhs.config && hwInfo == rhs.hwInfo && setupFeatureAndWorkaroundTable == rhs.setupFeatureAndWorkaroundTable && revId == rhs.revId; } }; diff --git a/shared/offline_compiler/source/offline_compiler.cpp b/shared/offline_compiler/source/offline_compiler.cpp index c12e0c8c84..09e47622f1 100644 --- a/shared/offline_compiler/source/offline_compiler.cpp +++ b/shared/offline_compiler/source/offline_compiler.cpp @@ -389,7 +389,7 @@ int OfflineCompiler::initHardwareInfo(std::string deviceName) { auto hwInfoConfig = defaultHardwareInfoConfigTable[hwInfo.platform.eProductFamily]; setHwInfoValuesFromConfig(hwInfoConfig, hwInfo); - hardwareInfoBaseSetup[hwInfo.platform.eProductFamily](&hwInfo, true); + hardwareInfoSetup[hwInfo.platform.eProductFamily](&hwInfo, true, hwInfoConfig); setFamilyType(); retVal = SUCCESS; break; diff --git a/shared/source/gen11/hw_cmds_ehl.h b/shared/source/gen11/hw_cmds_ehl.h index 690167a617..b2dba42001 100644 --- a/shared/source/gen11/hw_cmds_ehl.h +++ b/shared/source/gen11/hw_cmds_ehl.h @@ -23,7 +23,6 @@ struct EHL : public ICLFamily { static const RuntimeCapabilityTable capabilityTable; static void (*setupHardwareInfo)(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, uint64_t hwInfoConfig); static void setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo); - static void setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable); }; class EHL_HW_CONFIG : public EHL { diff --git a/shared/source/gen11/hw_cmds_icllp.h b/shared/source/gen11/hw_cmds_icllp.h index b500c161b9..3f948c86e7 100644 --- a/shared/source/gen11/hw_cmds_icllp.h +++ b/shared/source/gen11/hw_cmds_icllp.h @@ -23,7 +23,6 @@ struct ICLLP : public ICLFamily { static const RuntimeCapabilityTable capabilityTable; static void (*setupHardwareInfo)(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, uint64_t hwInfoConfig); static void setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo); - static void setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable); }; class ICLLP_1x8x8 : public ICLLP { diff --git a/shared/source/gen11/hw_cmds_lkf.h b/shared/source/gen11/hw_cmds_lkf.h index 807242543b..539fc4c16a 100644 --- a/shared/source/gen11/hw_cmds_lkf.h +++ b/shared/source/gen11/hw_cmds_lkf.h @@ -23,7 +23,6 @@ struct LKF : public ICLFamily { static const RuntimeCapabilityTable capabilityTable; static void (*setupHardwareInfo)(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, uint64_t hwInfoConfig); static void setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo); - static void setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable); }; class LKF_1x8x8 : public LKF { public: diff --git a/shared/source/gen11/hw_info_ehl.cpp b/shared/source/gen11/hw_info_ehl.cpp index b63de7e5aa..4a98e8b3b9 100644 --- a/shared/source/gen11/hw_info_ehl.cpp +++ b/shared/source/gen11/hw_info_ehl.cpp @@ -124,9 +124,21 @@ void EHL::setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo) { workaroundTable->flags.waReportPerfCountUseGlobalContextID = true; }; -void EHL::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { +const HardwareInfo EHL_HW_CONFIG::hwInfo = { + &EHL::platform, + &EHL::featureTable, + &EHL::workaroundTable, + &EHL_HW_CONFIG::gtSystemInfo, + EHL::capabilityTable, +}; +GT_SYSTEM_INFO EHL_HW_CONFIG::gtSystemInfo = {0}; +void EHL_HW_CONFIG::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; gtSysInfo->ThreadCount = gtSysInfo->EUCount * EHL::threadsPerEu; + gtSysInfo->SliceCount = 1; + gtSysInfo->L3CacheSizeInKb = 1280; + gtSysInfo->L3BankCount = 4; + gtSysInfo->MaxFillRate = 8; gtSysInfo->TotalVsThreads = 0; gtSysInfo->TotalHsThreads = 0; gtSysInfo->TotalDsThreads = 0; @@ -138,29 +150,9 @@ void EHL::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndW gtSysInfo->MaxSubSlicesSupported = EHL::maxSubslicesSupported; gtSysInfo->IsL3HashModeEnabled = false; gtSysInfo->IsDynamicallyPopulated = false; - if (setupFeatureTableAndWorkaroundTable) { setupFeatureAndWorkaroundTable(hwInfo); } -} - -const HardwareInfo EHL_HW_CONFIG::hwInfo = { - &EHL::platform, - &EHL::featureTable, - &EHL::workaroundTable, - &EHL_HW_CONFIG::gtSystemInfo, - EHL::capabilityTable, -}; - -GT_SYSTEM_INFO EHL_HW_CONFIG::gtSystemInfo = {0}; -void EHL_HW_CONFIG::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { - EHL::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable); - - GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; - gtSysInfo->SliceCount = 1; - gtSysInfo->L3CacheSizeInKb = 1280; - gtSysInfo->L3BankCount = 4; - gtSysInfo->MaxFillRate = 8; }; const HardwareInfo EHL::hwInfo = EHL_HW_CONFIG::hwInfo; diff --git a/shared/source/gen11/hw_info_icllp.cpp b/shared/source/gen11/hw_info_icllp.cpp index 5a32e08f75..20d2a64d79 100644 --- a/shared/source/gen11/hw_info_icllp.cpp +++ b/shared/source/gen11/hw_info_icllp.cpp @@ -125,26 +125,6 @@ void ICLLP::setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo) { workaroundTable->flags.waReportPerfCountUseGlobalContextID = true; }; -void ICLLP::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { - GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; - gtSysInfo->ThreadCount = gtSysInfo->EUCount * ICLLP::threadsPerEu; - gtSysInfo->TotalHsThreads = 224; - gtSysInfo->TotalGsThreads = 224; - gtSysInfo->TotalVsThreads = 336; - gtSysInfo->TotalDsThreads = 336; - gtSysInfo->TotalPsThreadsWindowerRange = 128; - gtSysInfo->CsrSizeInMb = 5; - gtSysInfo->MaxEuPerSubSlice = ICLLP::maxEuPerSubslice; - gtSysInfo->MaxSlicesSupported = ICLLP::maxSlicesSupported; - gtSysInfo->MaxSubSlicesSupported = ICLLP::maxSubslicesSupported; - gtSysInfo->IsL3HashModeEnabled = false; - gtSysInfo->IsDynamicallyPopulated = false; - - if (setupFeatureTableAndWorkaroundTable) { - setupFeatureAndWorkaroundTable(hwInfo); - } -} - const HardwareInfo ICLLP_1x8x8::hwInfo = { &ICLLP::platform, &ICLLP::featureTable, @@ -155,16 +135,26 @@ const HardwareInfo ICLLP_1x8x8::hwInfo = { GT_SYSTEM_INFO ICLLP_1x8x8::gtSystemInfo = {0}; void ICLLP_1x8x8::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { - ICLLP::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable); - GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; + gtSysInfo->ThreadCount = gtSysInfo->EUCount * ICLLP::threadsPerEu; gtSysInfo->SliceCount = 1; gtSysInfo->L3CacheSizeInKb = 3072; gtSysInfo->L3BankCount = 8; gtSysInfo->MaxFillRate = 16; + gtSysInfo->TotalVsThreads = 336; gtSysInfo->TotalHsThreads = 336; + gtSysInfo->TotalDsThreads = 336; gtSysInfo->TotalGsThreads = 336; gtSysInfo->TotalPsThreadsWindowerRange = 64; + gtSysInfo->CsrSizeInMb = 5; + gtSysInfo->MaxEuPerSubSlice = ICLLP::maxEuPerSubslice; + gtSysInfo->MaxSlicesSupported = ICLLP::maxSlicesSupported; + gtSysInfo->MaxSubSlicesSupported = ICLLP::maxSubslicesSupported; + gtSysInfo->IsL3HashModeEnabled = false; + gtSysInfo->IsDynamicallyPopulated = false; + if (setupFeatureTableAndWorkaroundTable) { + setupFeatureAndWorkaroundTable(hwInfo); + } }; const HardwareInfo ICLLP_1x4x8::hwInfo = { @@ -177,15 +167,27 @@ const HardwareInfo ICLLP_1x4x8::hwInfo = { GT_SYSTEM_INFO ICLLP_1x4x8::gtSystemInfo = {0}; void ICLLP_1x4x8::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { - ICLLP::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable); - GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; + gtSysInfo->ThreadCount = gtSysInfo->EUCount * ICLLP::threadsPerEu; gtSysInfo->SliceCount = 1; gtSysInfo->L3CacheSizeInKb = 2304; gtSysInfo->L3BankCount = 6; gtSysInfo->MaxFillRate = 8; + gtSysInfo->TotalVsThreads = 364; + gtSysInfo->TotalHsThreads = 224; + gtSysInfo->TotalDsThreads = 364; + gtSysInfo->TotalGsThreads = 224; + gtSysInfo->TotalPsThreadsWindowerRange = 128; + gtSysInfo->CsrSizeInMb = 5; + gtSysInfo->MaxEuPerSubSlice = ICLLP::maxEuPerSubslice; + gtSysInfo->MaxSlicesSupported = ICLLP::maxSlicesSupported; + gtSysInfo->MaxSubSlicesSupported = ICLLP::maxSubslicesSupported; + gtSysInfo->IsL3HashModeEnabled = false; + gtSysInfo->IsDynamicallyPopulated = false; + if (setupFeatureTableAndWorkaroundTable) { + setupFeatureAndWorkaroundTable(hwInfo); + } }; - const HardwareInfo ICLLP_1x6x8::hwInfo = { &ICLLP::platform, &ICLLP::featureTable, @@ -196,13 +198,26 @@ const HardwareInfo ICLLP_1x6x8::hwInfo = { GT_SYSTEM_INFO ICLLP_1x6x8::gtSystemInfo = {0}; void ICLLP_1x6x8::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { - ICLLP::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable); - GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; + gtSysInfo->ThreadCount = gtSysInfo->EUCount * ICLLP::threadsPerEu; gtSysInfo->SliceCount = 1; gtSysInfo->L3CacheSizeInKb = 2304; gtSysInfo->L3BankCount = 6; gtSysInfo->MaxFillRate = 8; + gtSysInfo->TotalVsThreads = 364; + gtSysInfo->TotalHsThreads = 224; + gtSysInfo->TotalDsThreads = 364; + gtSysInfo->TotalGsThreads = 224; + gtSysInfo->TotalPsThreadsWindowerRange = 128; + gtSysInfo->CsrSizeInMb = 5; + gtSysInfo->MaxEuPerSubSlice = ICLLP::maxEuPerSubslice; + gtSysInfo->MaxSlicesSupported = ICLLP::maxSlicesSupported; + gtSysInfo->MaxSubSlicesSupported = ICLLP::maxSubslicesSupported; + gtSysInfo->IsL3HashModeEnabled = false; + gtSysInfo->IsDynamicallyPopulated = false; + if (setupFeatureTableAndWorkaroundTable) { + setupFeatureAndWorkaroundTable(hwInfo); + } }; const HardwareInfo ICLLP::hwInfo = ICLLP_1x8x8::hwInfo; diff --git a/shared/source/gen11/hw_info_lkf.cpp b/shared/source/gen11/hw_info_lkf.cpp index 1e90e706cf..f2cac70847 100644 --- a/shared/source/gen11/hw_info_lkf.cpp +++ b/shared/source/gen11/hw_info_lkf.cpp @@ -124,9 +124,21 @@ void LKF::setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo) { workaroundTable->flags.waReportPerfCountUseGlobalContextID = true; }; -void LKF::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { +const HardwareInfo LKF_1x8x8::hwInfo = { + &LKF::platform, + &LKF::featureTable, + &LKF::workaroundTable, + &LKF_1x8x8::gtSystemInfo, + LKF::capabilityTable, +}; +GT_SYSTEM_INFO LKF_1x8x8::gtSystemInfo = {0}; +void LKF_1x8x8::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; gtSysInfo->ThreadCount = gtSysInfo->EUCount * LKF::threadsPerEu; + gtSysInfo->SliceCount = 1; + gtSysInfo->L3CacheSizeInKb = 2560; + gtSysInfo->L3BankCount = 8; + gtSysInfo->MaxFillRate = 16; gtSysInfo->TotalVsThreads = 448; gtSysInfo->TotalHsThreads = 448; gtSysInfo->TotalDsThreads = 448; @@ -138,29 +150,9 @@ void LKF::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndW gtSysInfo->MaxSubSlicesSupported = LKF::maxSubslicesSupported; gtSysInfo->IsL3HashModeEnabled = false; gtSysInfo->IsDynamicallyPopulated = false; - if (setupFeatureTableAndWorkaroundTable) { setupFeatureAndWorkaroundTable(hwInfo); } -} - -const HardwareInfo LKF_1x8x8::hwInfo = { - &LKF::platform, - &LKF::featureTable, - &LKF::workaroundTable, - &LKF_1x8x8::gtSystemInfo, - LKF::capabilityTable, -}; -GT_SYSTEM_INFO LKF_1x8x8::gtSystemInfo = {0}; -void LKF_1x8x8::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { - LKF::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable); - - GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; - gtSysInfo->ThreadCount = gtSysInfo->EUCount * LKF::threadsPerEu; - gtSysInfo->SliceCount = 1; - gtSysInfo->L3CacheSizeInKb = 2560; - gtSysInfo->L3BankCount = 8; - gtSysInfo->MaxFillRate = 16; }; const HardwareInfo LKF::hwInfo = LKF_1x8x8::hwInfo; diff --git a/shared/source/gen12lp/hw_cmds_adlp.h b/shared/source/gen12lp/hw_cmds_adlp.h index b6f0963266..6efb46631f 100644 --- a/shared/source/gen12lp/hw_cmds_adlp.h +++ b/shared/source/gen12lp/hw_cmds_adlp.h @@ -23,7 +23,6 @@ struct ADLP : public TGLLPFamily { static const RuntimeCapabilityTable capabilityTable; static void (*setupHardwareInfo)(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, uint64_t hwInfoConfig); static void setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo); - static void setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable); }; class ADLP_CONFIG : public ADLP { diff --git a/shared/source/gen12lp/hw_cmds_adls.h b/shared/source/gen12lp/hw_cmds_adls.h index 8401bf38df..4d0768efd2 100644 --- a/shared/source/gen12lp/hw_cmds_adls.h +++ b/shared/source/gen12lp/hw_cmds_adls.h @@ -23,7 +23,6 @@ struct ADLS : public TGLLPFamily { static const RuntimeCapabilityTable capabilityTable; static void (*setupHardwareInfo)(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, uint64_t hwInfoConfig); static void setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo); - static void setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable); }; class ADLS_HW_CONFIG : public ADLS { public: diff --git a/shared/source/gen12lp/hw_cmds_dg1.h b/shared/source/gen12lp/hw_cmds_dg1.h index dd9e233f8a..73281e47e7 100644 --- a/shared/source/gen12lp/hw_cmds_dg1.h +++ b/shared/source/gen12lp/hw_cmds_dg1.h @@ -22,7 +22,6 @@ struct DG1 : public TGLLPFamily { static const RuntimeCapabilityTable capabilityTable; static void (*setupHardwareInfo)(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, uint64_t hwInfoConfig); static void setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo); - static void setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable); }; class DG1_CONFIG : public DG1 { public: diff --git a/shared/source/gen12lp/hw_cmds_rkl.h b/shared/source/gen12lp/hw_cmds_rkl.h index 11f0db268b..f546cc6ec7 100644 --- a/shared/source/gen12lp/hw_cmds_rkl.h +++ b/shared/source/gen12lp/hw_cmds_rkl.h @@ -20,7 +20,6 @@ struct RKL : public TGLLPFamily { static const RuntimeCapabilityTable capabilityTable; static void (*setupHardwareInfo)(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, uint64_t hwInfoConfig); static void setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo); - static void setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable); }; class RKL_HW_CONFIG : public RKL { public: diff --git a/shared/source/gen12lp/hw_cmds_tgllp.h b/shared/source/gen12lp/hw_cmds_tgllp.h index 044fb106c9..107f9a072f 100644 --- a/shared/source/gen12lp/hw_cmds_tgllp.h +++ b/shared/source/gen12lp/hw_cmds_tgllp.h @@ -23,7 +23,6 @@ struct TGLLP : public TGLLPFamily { static const RuntimeCapabilityTable capabilityTable; static void (*setupHardwareInfo)(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, uint64_t hwInfoConfig); static void setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo); - static void setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable); }; class TGLLP_1x6x16 : public TGLLP { diff --git a/shared/source/gen12lp/hw_info_adlp.cpp b/shared/source/gen12lp/hw_info_adlp.cpp index e49eb45c29..76a2720b81 100644 --- a/shared/source/gen12lp/hw_info_adlp.cpp +++ b/shared/source/gen12lp/hw_info_adlp.cpp @@ -120,24 +120,6 @@ void ADLP::setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo) { workaroundTable->flags.waEnablePreemptionGranularityControlByUMD = true; workaroundTable->flags.waUntypedBufferCompression = true; }; - -void ADLP::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { - GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; - gtSysInfo->ThreadCount = gtSysInfo->EUCount * ADLP::threadsPerEu; - gtSysInfo->TotalPsThreadsWindowerRange = 64; - gtSysInfo->CsrSizeInMb = 8; - gtSysInfo->MaxEuPerSubSlice = ADLP::maxEuPerSubslice; - gtSysInfo->MaxSlicesSupported = ADLP::maxSlicesSupported; - gtSysInfo->MaxSubSlicesSupported = ADLP::maxSubslicesSupported; - gtSysInfo->MaxDualSubSlicesSupported = ADLP::maxDualSubslicesSupported; - gtSysInfo->IsL3HashModeEnabled = false; - gtSysInfo->IsDynamicallyPopulated = false; - - if (setupFeatureTableAndWorkaroundTable) { - setupFeatureAndWorkaroundTable(hwInfo); - } -} - const HardwareInfo ADLP_CONFIG::hwInfo = { &ADLP::platform, &ADLP::featureTable, @@ -148,18 +130,28 @@ const HardwareInfo ADLP_CONFIG::hwInfo = { GT_SYSTEM_INFO ADLP_CONFIG::gtSystemInfo = {0}; void ADLP_CONFIG::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { - setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable); - GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; + gtSysInfo->CsrSizeInMb = 8; + gtSysInfo->IsDynamicallyPopulated = false; + // non-zero values for unit tests if (gtSysInfo->SliceCount == 0) { gtSysInfo->SliceCount = 2; gtSysInfo->SubSliceCount = 8; gtSysInfo->EUCount = 40; + gtSysInfo->MaxEuPerSubSlice = ADLP::maxEuPerSubslice; + gtSysInfo->MaxSlicesSupported = ADLP::maxSlicesSupported; + gtSysInfo->MaxSubSlicesSupported = ADLP::maxSubslicesSupported; + gtSysInfo->L3BankCount = 1; + gtSysInfo->CCSInfo.IsValid = true; gtSysInfo->CCSInfo.NumberOfCCSEnabled = 1; } + + if (setupFeatureTableAndWorkaroundTable) { + setupFeatureAndWorkaroundTable(hwInfo); + } }; #include "hw_info_setup_adlp.inl" } // namespace NEO diff --git a/shared/source/gen12lp/hw_info_adls.cpp b/shared/source/gen12lp/hw_info_adls.cpp index 14246467d5..04628ef5bd 100644 --- a/shared/source/gen12lp/hw_info_adls.cpp +++ b/shared/source/gen12lp/hw_info_adls.cpp @@ -121,23 +121,6 @@ void ADLS::setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo) { workaroundTable->flags.waUntypedBufferCompression = true; }; -void ADLS::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { - GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; - gtSysInfo->ThreadCount = gtSysInfo->EUCount * ADLS::threadsPerEu; - gtSysInfo->TotalPsThreadsWindowerRange = 64; - gtSysInfo->CsrSizeInMb = 8; - gtSysInfo->MaxEuPerSubSlice = ADLS::maxEuPerSubslice; - gtSysInfo->MaxSlicesSupported = ADLS::maxSlicesSupported; - gtSysInfo->MaxSubSlicesSupported = ADLS::maxSubslicesSupported; - gtSysInfo->MaxDualSubSlicesSupported = ADLS::maxDualSubslicesSupported; - gtSysInfo->IsL3HashModeEnabled = false; - gtSysInfo->IsDynamicallyPopulated = false; - - if (setupFeatureTableAndWorkaroundTable) { - setupFeatureAndWorkaroundTable(hwInfo); - } -} - const HardwareInfo ADLS_HW_CONFIG::hwInfo = { &ADLS::platform, &ADLS::featureTable, @@ -148,9 +131,8 @@ const HardwareInfo ADLS_HW_CONFIG::hwInfo = { GT_SYSTEM_INFO ADLS_HW_CONFIG::gtSystemInfo = {0}; void ADLS_HW_CONFIG::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { - setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable); - GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; + gtSysInfo->ThreadCount = gtSysInfo->EUCount * ADLS::threadsPerEu; gtSysInfo->DualSubSliceCount = gtSysInfo->SubSliceCount; gtSysInfo->L3CacheSizeInKb = 1920; gtSysInfo->L3BankCount = 4; @@ -159,12 +141,22 @@ void ADLS_HW_CONFIG::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTa gtSysInfo->TotalHsThreads = 0; gtSysInfo->TotalDsThreads = 0; gtSysInfo->TotalGsThreads = 0; + gtSysInfo->TotalPsThreadsWindowerRange = 64; + gtSysInfo->CsrSizeInMb = 8; + gtSysInfo->MaxEuPerSubSlice = ADLS::maxEuPerSubslice; + gtSysInfo->MaxSlicesSupported = ADLS::maxSlicesSupported; gtSysInfo->MaxSubSlicesSupported = 1; gtSysInfo->MaxDualSubSlicesSupported = 2; + gtSysInfo->IsL3HashModeEnabled = false; + gtSysInfo->IsDynamicallyPopulated = false; gtSysInfo->CCSInfo.IsValid = true; gtSysInfo->CCSInfo.NumberOfCCSEnabled = 1; gtSysInfo->CCSInfo.Instances.CCSEnableMask = 0b1; + + if (setupFeatureTableAndWorkaroundTable) { + setupFeatureAndWorkaroundTable(hwInfo); + } }; const HardwareInfo ADLS::hwInfo = ADLS_HW_CONFIG::hwInfo; diff --git a/shared/source/gen12lp/hw_info_dg1.cpp b/shared/source/gen12lp/hw_info_dg1.cpp index 07de079eda..f3e67f5f85 100644 --- a/shared/source/gen12lp/hw_info_dg1.cpp +++ b/shared/source/gen12lp/hw_info_dg1.cpp @@ -130,9 +130,22 @@ void DG1::setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo) { workaroundTable->flags.waEnablePreemptionGranularityControlByUMD = true; }; -void DG1::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { +const HardwareInfo DG1_CONFIG::hwInfo = { + &DG1::platform, + &DG1::featureTable, + &DG1::workaroundTable, + &DG1_CONFIG::gtSystemInfo, + DG1::capabilityTable, +}; +GT_SYSTEM_INFO DG1_CONFIG::gtSystemInfo = {0}; +void DG1_CONFIG::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; gtSysInfo->ThreadCount = gtSysInfo->EUCount * DG1::threadsPerEu; + gtSysInfo->SliceCount = 1; + gtSysInfo->DualSubSliceCount = 6; + gtSysInfo->L3CacheSizeInKb = 16384; + gtSysInfo->L3BankCount = 8; + gtSysInfo->MaxFillRate = 16; gtSysInfo->TotalVsThreads = 672; gtSysInfo->TotalHsThreads = 672; gtSysInfo->TotalDsThreads = 672; @@ -146,33 +159,13 @@ void DG1::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndW gtSysInfo->IsL3HashModeEnabled = false; gtSysInfo->IsDynamicallyPopulated = false; - if (setupFeatureTableAndWorkaroundTable) { - setupFeatureAndWorkaroundTable(hwInfo); - } -} - -const HardwareInfo DG1_CONFIG::hwInfo = { - &DG1::platform, - &DG1::featureTable, - &DG1::workaroundTable, - &DG1_CONFIG::gtSystemInfo, - DG1::capabilityTable, -}; - -GT_SYSTEM_INFO DG1_CONFIG::gtSystemInfo = {0}; -void DG1_CONFIG::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { - DG1::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable); - - GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; - gtSysInfo->SliceCount = 1; - gtSysInfo->DualSubSliceCount = 6; - gtSysInfo->L3CacheSizeInKb = 16384; - gtSysInfo->L3BankCount = 8; - gtSysInfo->MaxFillRate = 16; - gtSysInfo->CCSInfo.IsValid = true; gtSysInfo->CCSInfo.NumberOfCCSEnabled = 1; gtSysInfo->CCSInfo.Instances.CCSEnableMask = 0b1; + + if (setupFeatureTableAndWorkaroundTable) { + DG1::setupFeatureAndWorkaroundTable(hwInfo); + } }; const HardwareInfo DG1::hwInfo = DG1_CONFIG::hwInfo; diff --git a/shared/source/gen12lp/hw_info_rkl.cpp b/shared/source/gen12lp/hw_info_rkl.cpp index 2cf83829e7..b35c433e92 100644 --- a/shared/source/gen12lp/hw_info_rkl.cpp +++ b/shared/source/gen12lp/hw_info_rkl.cpp @@ -120,9 +120,21 @@ void RKL::setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo) { workaroundTable->flags.waEnablePreemptionGranularityControlByUMD = true; }; -void RKL::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { +const HardwareInfo RKL_HW_CONFIG::hwInfo = { + &RKL::platform, + &RKL::featureTable, + &RKL::workaroundTable, + &RKL_HW_CONFIG::gtSystemInfo, + RKL::capabilityTable, +}; +GT_SYSTEM_INFO RKL_HW_CONFIG::gtSystemInfo = {0}; +void RKL_HW_CONFIG::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; gtSysInfo->ThreadCount = gtSysInfo->EUCount * RKL::threadsPerEu; + gtSysInfo->DualSubSliceCount = gtSysInfo->SubSliceCount; + gtSysInfo->L3CacheSizeInKb = 1920; + gtSysInfo->L3BankCount = 4; + gtSysInfo->MaxFillRate = 8; gtSysInfo->TotalVsThreads = 0; gtSysInfo->TotalHsThreads = 0; gtSysInfo->TotalDsThreads = 0; @@ -136,32 +148,13 @@ void RKL::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndW gtSysInfo->IsL3HashModeEnabled = false; gtSysInfo->IsDynamicallyPopulated = false; - if (setupFeatureTableAndWorkaroundTable) { - setupFeatureAndWorkaroundTable(hwInfo); - } -} - -const HardwareInfo RKL_HW_CONFIG::hwInfo = { - &RKL::platform, - &RKL::featureTable, - &RKL::workaroundTable, - &RKL_HW_CONFIG::gtSystemInfo, - RKL::capabilityTable, -}; - -GT_SYSTEM_INFO RKL_HW_CONFIG::gtSystemInfo = {0}; -void RKL_HW_CONFIG::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { - RKL::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable); - - GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; - gtSysInfo->DualSubSliceCount = gtSysInfo->SubSliceCount; - gtSysInfo->L3CacheSizeInKb = 1920; - gtSysInfo->L3BankCount = 4; - gtSysInfo->MaxFillRate = 8; - gtSysInfo->CCSInfo.IsValid = true; gtSysInfo->CCSInfo.NumberOfCCSEnabled = 1; gtSysInfo->CCSInfo.Instances.CCSEnableMask = 0b1; + + if (setupFeatureTableAndWorkaroundTable) { + setupFeatureAndWorkaroundTable(hwInfo); + } }; const HardwareInfo RKL::hwInfo = RKL_HW_CONFIG::hwInfo; diff --git a/shared/source/gen12lp/hw_info_tgllp.cpp b/shared/source/gen12lp/hw_info_tgllp.cpp index 1c29fee7f7..ae475865f6 100644 --- a/shared/source/gen12lp/hw_info_tgllp.cpp +++ b/shared/source/gen12lp/hw_info_tgllp.cpp @@ -125,23 +125,6 @@ void TGLLP::setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo) { workaroundTable->flags.waUntypedBufferCompression = true; }; -void TGLLP::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { - GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; - gtSysInfo->ThreadCount = gtSysInfo->EUCount * TGLLP::threadsPerEu; - gtSysInfo->TotalPsThreadsWindowerRange = 64; - gtSysInfo->CsrSizeInMb = 8; - gtSysInfo->MaxEuPerSubSlice = TGLLP::maxEuPerSubslice; - gtSysInfo->MaxSlicesSupported = TGLLP::maxSlicesSupported; - gtSysInfo->MaxSubSlicesSupported = TGLLP::maxSubslicesSupported; - gtSysInfo->MaxDualSubSlicesSupported = TGLLP::maxDualSubslicesSupported; - gtSysInfo->IsL3HashModeEnabled = false; - gtSysInfo->IsDynamicallyPopulated = false; - - if (setupFeatureTableAndWorkaroundTable) { - setupFeatureAndWorkaroundTable(hwInfo); - } -} - const HardwareInfo TGLLP_1x6x16::hwInfo = { &TGLLP::platform, &TGLLP::featureTable, @@ -152,9 +135,8 @@ const HardwareInfo TGLLP_1x6x16::hwInfo = { GT_SYSTEM_INFO TGLLP_1x6x16::gtSystemInfo = {0}; void TGLLP_1x6x16::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { - TGLLP::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable); - GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; + gtSysInfo->ThreadCount = gtSysInfo->EUCount * TGLLP::threadsPerEu; gtSysInfo->SliceCount = 1; gtSysInfo->DualSubSliceCount = 6; gtSysInfo->L3CacheSizeInKb = 3840; @@ -164,10 +146,22 @@ void TGLLP_1x6x16::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTabl gtSysInfo->TotalHsThreads = 336; gtSysInfo->TotalDsThreads = 336; gtSysInfo->TotalGsThreads = 336; + gtSysInfo->TotalPsThreadsWindowerRange = 64; + gtSysInfo->CsrSizeInMb = 8; + gtSysInfo->MaxEuPerSubSlice = TGLLP::maxEuPerSubslice; + gtSysInfo->MaxSlicesSupported = TGLLP::maxSlicesSupported; + gtSysInfo->MaxSubSlicesSupported = TGLLP::maxSubslicesSupported; + gtSysInfo->MaxDualSubSlicesSupported = TGLLP::maxDualSubslicesSupported; + gtSysInfo->IsL3HashModeEnabled = false; + gtSysInfo->IsDynamicallyPopulated = false; gtSysInfo->CCSInfo.IsValid = true; gtSysInfo->CCSInfo.NumberOfCCSEnabled = 1; gtSysInfo->CCSInfo.Instances.CCSEnableMask = 0b1; + + if (setupFeatureTableAndWorkaroundTable) { + setupFeatureAndWorkaroundTable(hwInfo); + } }; const HardwareInfo TGLLP_1x2x16::hwInfo = { @@ -180,9 +174,8 @@ const HardwareInfo TGLLP_1x2x16::hwInfo = { GT_SYSTEM_INFO TGLLP_1x2x16::gtSystemInfo = {0}; void TGLLP_1x2x16::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { - TGLLP::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable); - GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; + gtSysInfo->ThreadCount = gtSysInfo->EUCount * TGLLP::threadsPerEu; gtSysInfo->SliceCount = 1; gtSysInfo->DualSubSliceCount = 2; gtSysInfo->L3CacheSizeInKb = 1920; @@ -192,10 +185,22 @@ void TGLLP_1x2x16::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTabl gtSysInfo->TotalHsThreads = 224; gtSysInfo->TotalDsThreads = 224; gtSysInfo->TotalGsThreads = 224; + gtSysInfo->TotalPsThreadsWindowerRange = 64; + gtSysInfo->CsrSizeInMb = 8; + gtSysInfo->MaxEuPerSubSlice = TGLLP::maxEuPerSubslice; + gtSysInfo->MaxSlicesSupported = TGLLP::maxSlicesSupported; + gtSysInfo->MaxSubSlicesSupported = TGLLP::maxSubslicesSupported; + gtSysInfo->MaxDualSubSlicesSupported = TGLLP::maxDualSubslicesSupported; + gtSysInfo->IsL3HashModeEnabled = false; + gtSysInfo->IsDynamicallyPopulated = false; gtSysInfo->CCSInfo.IsValid = true; gtSysInfo->CCSInfo.NumberOfCCSEnabled = 1; gtSysInfo->CCSInfo.Instances.CCSEnableMask = 0b1; + + if (setupFeatureTableAndWorkaroundTable) { + setupFeatureAndWorkaroundTable(hwInfo); + } }; const HardwareInfo TGLLP::hwInfo = TGLLP_1x6x16::hwInfo; diff --git a/shared/source/gen8/hw_cmds_bdw.h b/shared/source/gen8/hw_cmds_bdw.h index 055a14ba22..f83c311813 100644 --- a/shared/source/gen8/hw_cmds_bdw.h +++ b/shared/source/gen8/hw_cmds_bdw.h @@ -25,7 +25,6 @@ struct BDW : public BDWFamily { static const RuntimeCapabilityTable capabilityTable; static void (*setupHardwareInfo)(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, uint64_t hwInfoConfig); static void setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo); - static void setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable); }; class BDW_1x2x6 : public BDW { public: diff --git a/shared/source/gen8/hw_info_bdw.cpp b/shared/source/gen8/hw_info_bdw.cpp index 974fb143f6..f3ab2f4f69 100644 --- a/shared/source/gen8/hw_info_bdw.cpp +++ b/shared/source/gen8/hw_info_bdw.cpp @@ -115,9 +115,22 @@ void BDW::setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo) { workaroundTable->flags.waSamplerCacheFlushBetweenRedescribedSurfaceReads = true; } -void BDW::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { +const HardwareInfo BDW_1x2x6::hwInfo = { + &BDW::platform, + &BDW::featureTable, + &BDW::workaroundTable, + &BDW_1x2x6::gtSystemInfo, + BDW::capabilityTable, +}; + +GT_SYSTEM_INFO BDW_1x2x6::gtSystemInfo = {0}; +void BDW_1x2x6::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; gtSysInfo->ThreadCount = gtSysInfo->EUCount * BDW::threadsPerEu; + gtSysInfo->SliceCount = 1; + gtSysInfo->L3CacheSizeInKb = 384; + gtSysInfo->L3BankCount = 2; + gtSysInfo->MaxFillRate = 8; gtSysInfo->TotalVsThreads = 336; gtSysInfo->TotalHsThreads = 336; gtSysInfo->TotalDsThreads = 336; @@ -129,29 +142,9 @@ void BDW::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndW gtSysInfo->MaxSubSlicesSupported = BDW::maxSubslicesSupported; gtSysInfo->IsL3HashModeEnabled = false; gtSysInfo->IsDynamicallyPopulated = false; - if (setupFeatureTableAndWorkaroundTable) { setupFeatureAndWorkaroundTable(hwInfo); } -} - -const HardwareInfo BDW_1x2x6::hwInfo = { - &BDW::platform, - &BDW::featureTable, - &BDW::workaroundTable, - &BDW_1x2x6::gtSystemInfo, - BDW::capabilityTable, -}; - -GT_SYSTEM_INFO BDW_1x2x6::gtSystemInfo = {0}; -void BDW_1x2x6::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { - BDW::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable); - - GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; - gtSysInfo->SliceCount = 1; - gtSysInfo->L3CacheSizeInKb = 384; - gtSysInfo->L3BankCount = 2; - gtSysInfo->MaxFillRate = 8; }; const HardwareInfo BDW_1x3x6::hwInfo = { @@ -163,13 +156,26 @@ const HardwareInfo BDW_1x3x6::hwInfo = { }; GT_SYSTEM_INFO BDW_1x3x6::gtSystemInfo = {0}; void BDW_1x3x6::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { - BDW::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable); - GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; + gtSysInfo->ThreadCount = gtSysInfo->EUCount * BDW::threadsPerEu; gtSysInfo->SliceCount = 1; gtSysInfo->L3CacheSizeInKb = 768; gtSysInfo->L3BankCount = 4; gtSysInfo->MaxFillRate = 8; + gtSysInfo->TotalVsThreads = 336; + gtSysInfo->TotalHsThreads = 336; + gtSysInfo->TotalDsThreads = 336; + gtSysInfo->TotalGsThreads = 336; + gtSysInfo->TotalPsThreadsWindowerRange = 64; + gtSysInfo->CsrSizeInMb = 8; + gtSysInfo->MaxEuPerSubSlice = BDW::maxEuPerSubslice; + gtSysInfo->MaxSlicesSupported = BDW::maxSlicesSupported; + gtSysInfo->MaxSubSlicesSupported = BDW::maxSubslicesSupported; + gtSysInfo->IsL3HashModeEnabled = false; + gtSysInfo->IsDynamicallyPopulated = false; + if (setupFeatureTableAndWorkaroundTable) { + setupFeatureAndWorkaroundTable(hwInfo); + } }; const HardwareInfo BDW_1x3x8::hwInfo = { @@ -181,13 +187,26 @@ const HardwareInfo BDW_1x3x8::hwInfo = { }; GT_SYSTEM_INFO BDW_1x3x8::gtSystemInfo = {0}; void BDW_1x3x8::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { - BDW::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable); - GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; + gtSysInfo->ThreadCount = gtSysInfo->EUCount * BDW::threadsPerEu; gtSysInfo->SliceCount = 1; gtSysInfo->L3CacheSizeInKb = 384; gtSysInfo->L3BankCount = 2; gtSysInfo->MaxFillRate = 8; + gtSysInfo->TotalVsThreads = 336; + gtSysInfo->TotalHsThreads = 336; + gtSysInfo->TotalDsThreads = 336; + gtSysInfo->TotalGsThreads = 336; + gtSysInfo->TotalPsThreadsWindowerRange = 64; + gtSysInfo->CsrSizeInMb = 8; + gtSysInfo->MaxEuPerSubSlice = BDW::maxEuPerSubslice; + gtSysInfo->MaxSlicesSupported = BDW::maxSlicesSupported; + gtSysInfo->MaxSubSlicesSupported = BDW::maxSubslicesSupported; + gtSysInfo->IsL3HashModeEnabled = false; + gtSysInfo->IsDynamicallyPopulated = false; + if (setupFeatureTableAndWorkaroundTable) { + setupFeatureAndWorkaroundTable(hwInfo); + } }; const HardwareInfo BDW_2x3x8::hwInfo = { @@ -199,13 +218,26 @@ const HardwareInfo BDW_2x3x8::hwInfo = { }; GT_SYSTEM_INFO BDW_2x3x8::gtSystemInfo = {0}; void BDW_2x3x8::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { - BDW::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable); - GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; + gtSysInfo->ThreadCount = gtSysInfo->EUCount * BDW::threadsPerEu; gtSysInfo->SliceCount = 2; gtSysInfo->L3CacheSizeInKb = 1536; gtSysInfo->L3BankCount = 8; gtSysInfo->MaxFillRate = 16; + gtSysInfo->TotalVsThreads = 336; + gtSysInfo->TotalHsThreads = 336; + gtSysInfo->TotalDsThreads = 336; + gtSysInfo->TotalGsThreads = 336; + gtSysInfo->TotalPsThreadsWindowerRange = 64; + gtSysInfo->CsrSizeInMb = 8; + gtSysInfo->MaxEuPerSubSlice = BDW::maxEuPerSubslice; + gtSysInfo->MaxSlicesSupported = BDW::maxSlicesSupported; + gtSysInfo->MaxSubSlicesSupported = BDW::maxSubslicesSupported; + gtSysInfo->IsL3HashModeEnabled = false; + gtSysInfo->IsDynamicallyPopulated = false; + if (setupFeatureTableAndWorkaroundTable) { + setupFeatureAndWorkaroundTable(hwInfo); + } }; const HardwareInfo BDW::hwInfo = BDW_1x3x8::hwInfo; diff --git a/shared/source/gen9/hw_cmds_bxt.h b/shared/source/gen9/hw_cmds_bxt.h index caba958f19..f449af942c 100644 --- a/shared/source/gen9/hw_cmds_bxt.h +++ b/shared/source/gen9/hw_cmds_bxt.h @@ -24,7 +24,6 @@ struct BXT : public SKLFamily { static const RuntimeCapabilityTable capabilityTable; static void (*setupHardwareInfo)(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, uint64_t hwInfoConfig); static void setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo); - static void setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable); }; class BXT_1x2x6 : public BXT { diff --git a/shared/source/gen9/hw_cmds_cfl.h b/shared/source/gen9/hw_cmds_cfl.h index 954e8d8895..27368c30c6 100644 --- a/shared/source/gen9/hw_cmds_cfl.h +++ b/shared/source/gen9/hw_cmds_cfl.h @@ -24,7 +24,6 @@ struct CFL : public SKLFamily { static const RuntimeCapabilityTable capabilityTable; static void (*setupHardwareInfo)(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, uint64_t hwInfoConfig); static void setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo); - static void setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable); }; class CFL_1x2x6 : public CFL { diff --git a/shared/source/gen9/hw_cmds_glk.h b/shared/source/gen9/hw_cmds_glk.h index c8b73872d5..a13e6bc3ac 100644 --- a/shared/source/gen9/hw_cmds_glk.h +++ b/shared/source/gen9/hw_cmds_glk.h @@ -24,7 +24,6 @@ struct GLK : public SKLFamily { static const RuntimeCapabilityTable capabilityTable; static void (*setupHardwareInfo)(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, uint64_t hwInfoConfig); static void setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo); - static void setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable); }; class GLK_1x3x6 : public GLK { diff --git a/shared/source/gen9/hw_cmds_kbl.h b/shared/source/gen9/hw_cmds_kbl.h index cf59429f5b..dccdf4a041 100644 --- a/shared/source/gen9/hw_cmds_kbl.h +++ b/shared/source/gen9/hw_cmds_kbl.h @@ -24,7 +24,6 @@ struct KBL : public SKLFamily { static const RuntimeCapabilityTable capabilityTable; static void (*setupHardwareInfo)(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, uint64_t hwInfoConfig); static void setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo); - static void setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable); }; class KBL_1x2x6 : public KBL { diff --git a/shared/source/gen9/hw_cmds_skl.h b/shared/source/gen9/hw_cmds_skl.h index f49695ae5f..aa464d538b 100644 --- a/shared/source/gen9/hw_cmds_skl.h +++ b/shared/source/gen9/hw_cmds_skl.h @@ -24,7 +24,6 @@ struct SKL : public SKLFamily { static const RuntimeCapabilityTable capabilityTable; static void (*setupHardwareInfo)(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, uint64_t hwInfoConfig); static void setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo); - static void setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable); }; class SKL_1x2x6 : public SKL { diff --git a/shared/source/gen9/hw_info_bxt.cpp b/shared/source/gen9/hw_info_bxt.cpp index 399585c291..344cc6070a 100644 --- a/shared/source/gen9/hw_info_bxt.cpp +++ b/shared/source/gen9/hw_info_bxt.cpp @@ -132,9 +132,21 @@ void BXT::setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo) { workaroundTable->flags.waSamplerCacheFlushBetweenRedescribedSurfaceReads = true; } -void BXT::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { +const HardwareInfo BXT_1x2x6::hwInfo = { + &BXT::platform, + &BXT::featureTable, + &BXT::workaroundTable, + &BXT_1x2x6::gtSystemInfo, + BXT::capabilityTable, +}; +GT_SYSTEM_INFO BXT_1x2x6::gtSystemInfo = {0}; +void BXT_1x2x6::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; gtSysInfo->ThreadCount = gtSysInfo->EUCount * BXT::threadsPerEu; + gtSysInfo->SliceCount = 1; + gtSysInfo->L3CacheSizeInKb = 384; + gtSysInfo->L3BankCount = 1; + gtSysInfo->MaxFillRate = 8; gtSysInfo->TotalVsThreads = 112; gtSysInfo->TotalHsThreads = 112; gtSysInfo->TotalDsThreads = 112; @@ -146,28 +158,9 @@ void BXT::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndW gtSysInfo->MaxSubSlicesSupported = BXT::maxSubslicesSupported; gtSysInfo->IsL3HashModeEnabled = false; gtSysInfo->IsDynamicallyPopulated = false; - if (setupFeatureTableAndWorkaroundTable) { setupFeatureAndWorkaroundTable(hwInfo); } -} - -const HardwareInfo BXT_1x2x6::hwInfo = { - &BXT::platform, - &BXT::featureTable, - &BXT::workaroundTable, - &BXT_1x2x6::gtSystemInfo, - BXT::capabilityTable, -}; -GT_SYSTEM_INFO BXT_1x2x6::gtSystemInfo = {0}; -void BXT_1x2x6::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { - BXT::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable); - - GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; - gtSysInfo->SliceCount = 1; - gtSysInfo->L3CacheSizeInKb = 384; - gtSysInfo->L3BankCount = 1; - gtSysInfo->MaxFillRate = 8; }; const HardwareInfo BXT_1x3x6::hwInfo = { @@ -179,13 +172,26 @@ const HardwareInfo BXT_1x3x6::hwInfo = { }; GT_SYSTEM_INFO BXT_1x3x6::gtSystemInfo = {0}; void BXT_1x3x6::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { - BXT::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable); - GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; + gtSysInfo->ThreadCount = gtSysInfo->EUCount * BXT::threadsPerEu; gtSysInfo->SliceCount = 1; gtSysInfo->L3CacheSizeInKb = 384; gtSysInfo->L3BankCount = 1; gtSysInfo->MaxFillRate = 8; + gtSysInfo->TotalVsThreads = 112; + gtSysInfo->TotalHsThreads = 112; + gtSysInfo->TotalDsThreads = 112; + gtSysInfo->TotalGsThreads = 112; + gtSysInfo->TotalPsThreadsWindowerRange = 64; + gtSysInfo->CsrSizeInMb = 8; + gtSysInfo->MaxEuPerSubSlice = BXT::maxEuPerSubslice; + gtSysInfo->MaxSlicesSupported = BXT::maxSlicesSupported; + gtSysInfo->MaxSubSlicesSupported = BXT::maxSubslicesSupported; + gtSysInfo->IsL3HashModeEnabled = false; + gtSysInfo->IsDynamicallyPopulated = false; + if (setupFeatureTableAndWorkaroundTable) { + setupFeatureAndWorkaroundTable(hwInfo); + } }; const HardwareInfo BXT::hwInfo = BXT_1x3x6::hwInfo; diff --git a/shared/source/gen9/hw_info_cfl.cpp b/shared/source/gen9/hw_info_cfl.cpp index 85cd01b3f8..049059a1b6 100644 --- a/shared/source/gen9/hw_info_cfl.cpp +++ b/shared/source/gen9/hw_info_cfl.cpp @@ -120,9 +120,21 @@ void CFL::setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo) { workaroundTable->flags.waSamplerCacheFlushBetweenRedescribedSurfaceReads = true; } -void CFL::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { +const HardwareInfo CFL_1x2x6::hwInfo = { + &CFL::platform, + &CFL::featureTable, + &CFL::workaroundTable, + &CFL_1x2x6::gtSystemInfo, + CFL::capabilityTable, +}; +GT_SYSTEM_INFO CFL_1x2x6::gtSystemInfo = {0}; +void CFL_1x2x6::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; gtSysInfo->ThreadCount = gtSysInfo->EUCount * CFL::threadsPerEu; + gtSysInfo->SliceCount = 1; + gtSysInfo->L3CacheSizeInKb = 384; + gtSysInfo->L3BankCount = 2; + gtSysInfo->MaxFillRate = 8; gtSysInfo->TotalVsThreads = 336; gtSysInfo->TotalHsThreads = 336; gtSysInfo->TotalDsThreads = 336; @@ -134,28 +146,9 @@ void CFL::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndW gtSysInfo->MaxSubSlicesSupported = CFL::maxSubslicesSupported; gtSysInfo->IsL3HashModeEnabled = false; gtSysInfo->IsDynamicallyPopulated = false; - if (setupFeatureTableAndWorkaroundTable) { setupFeatureAndWorkaroundTable(hwInfo); } -} - -const HardwareInfo CFL_1x2x6::hwInfo = { - &CFL::platform, - &CFL::featureTable, - &CFL::workaroundTable, - &CFL_1x2x6::gtSystemInfo, - CFL::capabilityTable, -}; -GT_SYSTEM_INFO CFL_1x2x6::gtSystemInfo = {0}; -void CFL_1x2x6::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { - CFL::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable); - - GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; - gtSysInfo->SliceCount = 1; - gtSysInfo->L3CacheSizeInKb = 384; - gtSysInfo->L3BankCount = 2; - gtSysInfo->MaxFillRate = 8; }; const HardwareInfo CFL_1x3x6::hwInfo = { @@ -165,16 +158,28 @@ const HardwareInfo CFL_1x3x6::hwInfo = { &CFL_1x3x6::gtSystemInfo, CFL::capabilityTable, }; - GT_SYSTEM_INFO CFL_1x3x6::gtSystemInfo = {0}; void CFL_1x3x6::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { - CFL::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable); - GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; + gtSysInfo->ThreadCount = gtSysInfo->EUCount * CFL::threadsPerEu; gtSysInfo->SliceCount = 1; gtSysInfo->L3CacheSizeInKb = 768; gtSysInfo->L3BankCount = 4; gtSysInfo->MaxFillRate = 8; + gtSysInfo->TotalVsThreads = 336; + gtSysInfo->TotalHsThreads = 336; + gtSysInfo->TotalDsThreads = 336; + gtSysInfo->TotalGsThreads = 336; + gtSysInfo->TotalPsThreadsWindowerRange = 64; + gtSysInfo->CsrSizeInMb = 8; + gtSysInfo->MaxEuPerSubSlice = CFL::maxEuPerSubslice; + gtSysInfo->MaxSlicesSupported = CFL::maxSlicesSupported; + gtSysInfo->MaxSubSlicesSupported = CFL::maxSubslicesSupported; + gtSysInfo->IsL3HashModeEnabled = false; + gtSysInfo->IsDynamicallyPopulated = false; + if (setupFeatureTableAndWorkaroundTable) { + setupFeatureAndWorkaroundTable(hwInfo); + } }; const HardwareInfo CFL_1x3x8::hwInfo = { @@ -184,16 +189,28 @@ const HardwareInfo CFL_1x3x8::hwInfo = { &CFL_1x3x8::gtSystemInfo, CFL::capabilityTable, }; - GT_SYSTEM_INFO CFL_1x3x8::gtSystemInfo = {0}; void CFL_1x3x8::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { - CFL::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable); - GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; + gtSysInfo->ThreadCount = gtSysInfo->EUCount * CFL::threadsPerEu; gtSysInfo->SliceCount = 1; gtSysInfo->L3CacheSizeInKb = 768; gtSysInfo->L3BankCount = 4; gtSysInfo->MaxFillRate = 8; + gtSysInfo->TotalVsThreads = 336; + gtSysInfo->TotalHsThreads = 336; + gtSysInfo->TotalDsThreads = 336; + gtSysInfo->TotalGsThreads = 336; + gtSysInfo->TotalPsThreadsWindowerRange = 64; + gtSysInfo->CsrSizeInMb = 8; + gtSysInfo->MaxEuPerSubSlice = CFL::maxEuPerSubslice; + gtSysInfo->MaxSlicesSupported = CFL::maxSlicesSupported; + gtSysInfo->MaxSubSlicesSupported = CFL::maxSubslicesSupported; + gtSysInfo->IsL3HashModeEnabled = false; + gtSysInfo->IsDynamicallyPopulated = false; + if (setupFeatureTableAndWorkaroundTable) { + setupFeatureAndWorkaroundTable(hwInfo); + } }; const HardwareInfo CFL_2x3x8::hwInfo = { @@ -205,13 +222,26 @@ const HardwareInfo CFL_2x3x8::hwInfo = { }; GT_SYSTEM_INFO CFL_2x3x8::gtSystemInfo = {0}; void CFL_2x3x8::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { - CFL::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable); - GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; + gtSysInfo->ThreadCount = gtSysInfo->EUCount * CFL::threadsPerEu; gtSysInfo->SliceCount = 2; gtSysInfo->L3CacheSizeInKb = 1536; gtSysInfo->L3BankCount = 8; gtSysInfo->MaxFillRate = 16; + gtSysInfo->TotalVsThreads = 336; + gtSysInfo->TotalHsThreads = 336; + gtSysInfo->TotalDsThreads = 336; + gtSysInfo->TotalGsThreads = 336; + gtSysInfo->TotalPsThreadsWindowerRange = 64; + gtSysInfo->CsrSizeInMb = 8; + gtSysInfo->MaxEuPerSubSlice = CFL::maxEuPerSubslice; + gtSysInfo->MaxSlicesSupported = CFL::maxSlicesSupported; + gtSysInfo->MaxSubSlicesSupported = CFL::maxSubslicesSupported; + gtSysInfo->IsL3HashModeEnabled = false; + gtSysInfo->IsDynamicallyPopulated = false; + if (setupFeatureTableAndWorkaroundTable) { + setupFeatureAndWorkaroundTable(hwInfo); + } }; const HardwareInfo CFL_3x3x8::hwInfo = { @@ -223,13 +253,26 @@ const HardwareInfo CFL_3x3x8::hwInfo = { }; GT_SYSTEM_INFO CFL_3x3x8::gtSystemInfo = {0}; void CFL_3x3x8::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { - CFL::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable); - GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; + gtSysInfo->ThreadCount = gtSysInfo->EUCount * CFL::threadsPerEu; gtSysInfo->SliceCount = 3; gtSysInfo->L3CacheSizeInKb = 2304; gtSysInfo->L3BankCount = 12; gtSysInfo->MaxFillRate = 24; + gtSysInfo->TotalVsThreads = 336; + gtSysInfo->TotalHsThreads = 336; + gtSysInfo->TotalDsThreads = 336; + gtSysInfo->TotalGsThreads = 336; + gtSysInfo->TotalPsThreadsWindowerRange = 64; + gtSysInfo->CsrSizeInMb = 8; + gtSysInfo->MaxEuPerSubSlice = CFL::maxEuPerSubslice; + gtSysInfo->MaxSlicesSupported = CFL::maxSlicesSupported; + gtSysInfo->MaxSubSlicesSupported = CFL::maxSubslicesSupported; + gtSysInfo->IsL3HashModeEnabled = false; + gtSysInfo->IsDynamicallyPopulated = false; + if (setupFeatureTableAndWorkaroundTable) { + setupFeatureAndWorkaroundTable(hwInfo); + } }; const HardwareInfo CFL::hwInfo = CFL_1x3x6::hwInfo; diff --git a/shared/source/gen9/hw_info_glk.cpp b/shared/source/gen9/hw_info_glk.cpp index 430478559b..8fa7929e26 100644 --- a/shared/source/gen9/hw_info_glk.cpp +++ b/shared/source/gen9/hw_info_glk.cpp @@ -120,9 +120,22 @@ void GLK::setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo) { workaroundTable->flags.waSamplerCacheFlushBetweenRedescribedSurfaceReads = true; } -void GLK::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { +const HardwareInfo GLK_1x3x6::hwInfo = { + &GLK::platform, + &GLK::featureTable, + &GLK::workaroundTable, + &GLK_1x3x6::gtSystemInfo, + GLK::capabilityTable, +}; + +GT_SYSTEM_INFO GLK_1x3x6::gtSystemInfo = {0}; +void GLK_1x3x6::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; gtSysInfo->ThreadCount = gtSysInfo->EUCount * GLK::threadsPerEu; + gtSysInfo->SliceCount = 1; + gtSysInfo->L3CacheSizeInKb = 384; + gtSysInfo->L3BankCount = 2; + gtSysInfo->MaxFillRate = 8; gtSysInfo->TotalVsThreads = 112; gtSysInfo->TotalHsThreads = 112; gtSysInfo->TotalDsThreads = 112; @@ -134,29 +147,9 @@ void GLK::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndW gtSysInfo->MaxSubSlicesSupported = GLK::maxSubslicesSupported; gtSysInfo->IsL3HashModeEnabled = false; gtSysInfo->IsDynamicallyPopulated = false; - if (setupFeatureTableAndWorkaroundTable) { setupFeatureAndWorkaroundTable(hwInfo); } -} - -const HardwareInfo GLK_1x3x6::hwInfo = { - &GLK::platform, - &GLK::featureTable, - &GLK::workaroundTable, - &GLK_1x3x6::gtSystemInfo, - GLK::capabilityTable, -}; - -GT_SYSTEM_INFO GLK_1x3x6::gtSystemInfo = {0}; -void GLK_1x3x6::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { - GLK::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable); - - GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; - gtSysInfo->SliceCount = 1; - gtSysInfo->L3CacheSizeInKb = 384; - gtSysInfo->L3BankCount = 2; - gtSysInfo->MaxFillRate = 8; }; const HardwareInfo GLK_1x2x6::hwInfo = { @@ -166,16 +159,28 @@ const HardwareInfo GLK_1x2x6::hwInfo = { &GLK_1x2x6::gtSystemInfo, GLK::capabilityTable, }; - GT_SYSTEM_INFO GLK_1x2x6::gtSystemInfo = {0}; void GLK_1x2x6::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { - GLK::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable); - GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; + gtSysInfo->ThreadCount = gtSysInfo->EUCount * GLK::threadsPerEu; gtSysInfo->SliceCount = 1; gtSysInfo->L3CacheSizeInKb = 384; gtSysInfo->L3BankCount = 2; gtSysInfo->MaxFillRate = 8; + gtSysInfo->TotalVsThreads = 112; + gtSysInfo->TotalHsThreads = 112; + gtSysInfo->TotalDsThreads = 112; + gtSysInfo->TotalGsThreads = 112; + gtSysInfo->TotalPsThreadsWindowerRange = 64; + gtSysInfo->CsrSizeInMb = 8; + gtSysInfo->MaxEuPerSubSlice = GLK::maxEuPerSubslice; + gtSysInfo->MaxSlicesSupported = GLK::maxSlicesSupported; + gtSysInfo->MaxSubSlicesSupported = GLK::maxSubslicesSupported; + gtSysInfo->IsL3HashModeEnabled = false; + gtSysInfo->IsDynamicallyPopulated = false; + if (setupFeatureTableAndWorkaroundTable) { + setupFeatureAndWorkaroundTable(hwInfo); + } }; const HardwareInfo GLK::hwInfo = GLK_1x3x6::hwInfo; diff --git a/shared/source/gen9/hw_info_kbl.cpp b/shared/source/gen9/hw_info_kbl.cpp index 4ae7818f74..14dcd69f20 100644 --- a/shared/source/gen9/hw_info_kbl.cpp +++ b/shared/source/gen9/hw_info_kbl.cpp @@ -129,9 +129,21 @@ void KBL::setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo) { } } -void KBL::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { +const HardwareInfo KBL_1x2x6::hwInfo = { + &KBL::platform, + &KBL::featureTable, + &KBL::workaroundTable, + &KBL_1x2x6::gtSystemInfo, + KBL::capabilityTable, +}; +GT_SYSTEM_INFO KBL_1x2x6::gtSystemInfo = {0}; +void KBL_1x2x6::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; gtSysInfo->ThreadCount = gtSysInfo->EUCount * KBL::threadsPerEu; + gtSysInfo->SliceCount = 1; + gtSysInfo->L3CacheSizeInKb = 384; + gtSysInfo->L3BankCount = 2; + gtSysInfo->MaxFillRate = 8; gtSysInfo->TotalVsThreads = 336; gtSysInfo->TotalHsThreads = 336; gtSysInfo->TotalDsThreads = 336; @@ -143,28 +155,9 @@ void KBL::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndW gtSysInfo->MaxSubSlicesSupported = KBL::maxSubslicesSupported; gtSysInfo->IsL3HashModeEnabled = false; gtSysInfo->IsDynamicallyPopulated = false; - if (setupFeatureTableAndWorkaroundTable) { setupFeatureAndWorkaroundTable(hwInfo); } -} - -const HardwareInfo KBL_1x2x6::hwInfo = { - &KBL::platform, - &KBL::featureTable, - &KBL::workaroundTable, - &KBL_1x2x6::gtSystemInfo, - KBL::capabilityTable, -}; -GT_SYSTEM_INFO KBL_1x2x6::gtSystemInfo = {0}; -void KBL_1x2x6::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { - KBL::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable); - - GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; - gtSysInfo->SliceCount = 1; - gtSysInfo->L3CacheSizeInKb = 384; - gtSysInfo->L3BankCount = 2; - gtSysInfo->MaxFillRate = 8; }; const HardwareInfo KBL_1x3x6::hwInfo = { @@ -177,13 +170,26 @@ const HardwareInfo KBL_1x3x6::hwInfo = { GT_SYSTEM_INFO KBL_1x3x6::gtSystemInfo = {0}; void KBL_1x3x6::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { - KBL::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable); - GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; + gtSysInfo->ThreadCount = gtSysInfo->EUCount * KBL::threadsPerEu; gtSysInfo->SliceCount = 1; gtSysInfo->L3CacheSizeInKb = 768; gtSysInfo->L3BankCount = 4; gtSysInfo->MaxFillRate = 8; + gtSysInfo->TotalVsThreads = 336; + gtSysInfo->TotalHsThreads = 336; + gtSysInfo->TotalDsThreads = 336; + gtSysInfo->TotalGsThreads = 336; + gtSysInfo->TotalPsThreadsWindowerRange = 64; + gtSysInfo->CsrSizeInMb = 8; + gtSysInfo->MaxEuPerSubSlice = KBL::maxEuPerSubslice; + gtSysInfo->MaxSlicesSupported = KBL::maxSlicesSupported; + gtSysInfo->MaxSubSlicesSupported = KBL::maxSubslicesSupported; + gtSysInfo->IsL3HashModeEnabled = false; + gtSysInfo->IsDynamicallyPopulated = false; + if (setupFeatureTableAndWorkaroundTable) { + setupFeatureAndWorkaroundTable(hwInfo); + } }; const HardwareInfo KBL_1x3x8::hwInfo = { @@ -195,13 +201,26 @@ const HardwareInfo KBL_1x3x8::hwInfo = { }; GT_SYSTEM_INFO KBL_1x3x8::gtSystemInfo = {0}; void KBL_1x3x8::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { - KBL::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable); - GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; + gtSysInfo->ThreadCount = gtSysInfo->EUCount * KBL::threadsPerEu; gtSysInfo->SliceCount = 1; gtSysInfo->L3CacheSizeInKb = 768; gtSysInfo->L3BankCount = 4; gtSysInfo->MaxFillRate = 8; + gtSysInfo->TotalVsThreads = 336; + gtSysInfo->TotalHsThreads = 336; + gtSysInfo->TotalDsThreads = 336; + gtSysInfo->TotalGsThreads = 336; + gtSysInfo->TotalPsThreadsWindowerRange = 64; + gtSysInfo->CsrSizeInMb = 8; + gtSysInfo->MaxEuPerSubSlice = KBL::maxEuPerSubslice; + gtSysInfo->MaxSlicesSupported = KBL::maxSlicesSupported; + gtSysInfo->MaxSubSlicesSupported = KBL::maxSubslicesSupported; + gtSysInfo->IsL3HashModeEnabled = false; + gtSysInfo->IsDynamicallyPopulated = false; + if (setupFeatureTableAndWorkaroundTable) { + setupFeatureAndWorkaroundTable(hwInfo); + } }; const HardwareInfo KBL_2x3x8::hwInfo = { @@ -213,13 +232,26 @@ const HardwareInfo KBL_2x3x8::hwInfo = { }; GT_SYSTEM_INFO KBL_2x3x8::gtSystemInfo = {0}; void KBL_2x3x8::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { - KBL::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable); - GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; + gtSysInfo->ThreadCount = gtSysInfo->EUCount * KBL::threadsPerEu; gtSysInfo->SliceCount = 2; gtSysInfo->L3CacheSizeInKb = 1536; gtSysInfo->L3BankCount = 8; gtSysInfo->MaxFillRate = 16; + gtSysInfo->TotalVsThreads = 336; + gtSysInfo->TotalHsThreads = 336; + gtSysInfo->TotalDsThreads = 336; + gtSysInfo->TotalGsThreads = 336; + gtSysInfo->TotalPsThreadsWindowerRange = 64; + gtSysInfo->CsrSizeInMb = 8; + gtSysInfo->MaxEuPerSubSlice = KBL::maxEuPerSubslice; + gtSysInfo->MaxSlicesSupported = KBL::maxSlicesSupported; + gtSysInfo->MaxSubSlicesSupported = KBL::maxSubslicesSupported; + gtSysInfo->IsL3HashModeEnabled = false; + gtSysInfo->IsDynamicallyPopulated = false; + if (setupFeatureTableAndWorkaroundTable) { + setupFeatureAndWorkaroundTable(hwInfo); + } }; const HardwareInfo KBL_3x3x8::hwInfo = { @@ -231,13 +263,26 @@ const HardwareInfo KBL_3x3x8::hwInfo = { }; GT_SYSTEM_INFO KBL_3x3x8::gtSystemInfo = {0}; void KBL_3x3x8::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { - KBL::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable); - GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; + gtSysInfo->ThreadCount = gtSysInfo->EUCount * KBL::threadsPerEu; gtSysInfo->SliceCount = 3; gtSysInfo->L3CacheSizeInKb = 2304; gtSysInfo->L3BankCount = 12; gtSysInfo->MaxFillRate = 23; + gtSysInfo->TotalVsThreads = 336; + gtSysInfo->TotalHsThreads = 336; + gtSysInfo->TotalDsThreads = 336; + gtSysInfo->TotalGsThreads = 336; + gtSysInfo->TotalPsThreadsWindowerRange = 64; + gtSysInfo->CsrSizeInMb = 8; + gtSysInfo->MaxEuPerSubSlice = KBL::maxEuPerSubslice; + gtSysInfo->MaxSlicesSupported = KBL::maxSlicesSupported; + gtSysInfo->MaxSubSlicesSupported = KBL::maxSubslicesSupported; + gtSysInfo->IsL3HashModeEnabled = false; + gtSysInfo->IsDynamicallyPopulated = false; + if (setupFeatureTableAndWorkaroundTable) { + setupFeatureAndWorkaroundTable(hwInfo); + } }; const HardwareInfo KBL::hwInfo = KBL_1x3x6::hwInfo; diff --git a/shared/source/gen9/hw_info_skl.cpp b/shared/source/gen9/hw_info_skl.cpp index 1b89613ca8..880998e0ab 100644 --- a/shared/source/gen9/hw_info_skl.cpp +++ b/shared/source/gen9/hw_info_skl.cpp @@ -141,10 +141,21 @@ void SKL::setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo) { workaroundTable->flags.waCSRUncachable = true; } } - -void SKL::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { +const HardwareInfo SKL_1x2x6::hwInfo = { + &SKL::platform, + &SKL::featureTable, + &SKL::workaroundTable, + &SKL_1x2x6::gtSystemInfo, + SKL::capabilityTable, +}; +GT_SYSTEM_INFO SKL_1x2x6::gtSystemInfo = {0}; +void SKL_1x2x6::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; gtSysInfo->ThreadCount = gtSysInfo->EUCount * SKL::threadsPerEu; + gtSysInfo->SliceCount = 1; + gtSysInfo->L3CacheSizeInKb = 384; + gtSysInfo->L3BankCount = 2; + gtSysInfo->MaxFillRate = 8; gtSysInfo->TotalVsThreads = 336; gtSysInfo->TotalHsThreads = 336; gtSysInfo->TotalDsThreads = 336; @@ -156,28 +167,9 @@ void SKL::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndW gtSysInfo->MaxSubSlicesSupported = SKL::maxSubslicesSupported; gtSysInfo->IsL3HashModeEnabled = false; gtSysInfo->IsDynamicallyPopulated = false; - if (setupFeatureTableAndWorkaroundTable) { setupFeatureAndWorkaroundTable(hwInfo); } -} - -const HardwareInfo SKL_1x2x6::hwInfo = { - &SKL::platform, - &SKL::featureTable, - &SKL::workaroundTable, - &SKL_1x2x6::gtSystemInfo, - SKL::capabilityTable, -}; -GT_SYSTEM_INFO SKL_1x2x6::gtSystemInfo = {0}; -void SKL_1x2x6::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { - setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable); - - GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; - gtSysInfo->SliceCount = 1; - gtSysInfo->L3CacheSizeInKb = 384; - gtSysInfo->L3BankCount = 2; - gtSysInfo->MaxFillRate = 8; }; const HardwareInfo SKL_1x3x6::hwInfo = { @@ -189,13 +181,26 @@ const HardwareInfo SKL_1x3x6::hwInfo = { }; GT_SYSTEM_INFO SKL_1x3x6::gtSystemInfo = {0}; void SKL_1x3x6::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { - setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable); - GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; + gtSysInfo->ThreadCount = gtSysInfo->EUCount * SKL::threadsPerEu; gtSysInfo->SliceCount = 1; gtSysInfo->L3CacheSizeInKb = 768; gtSysInfo->L3BankCount = 4; gtSysInfo->MaxFillRate = 8; + gtSysInfo->TotalVsThreads = 336; + gtSysInfo->TotalHsThreads = 336; + gtSysInfo->TotalDsThreads = 336; + gtSysInfo->TotalGsThreads = 336; + gtSysInfo->TotalPsThreadsWindowerRange = 64; + gtSysInfo->CsrSizeInMb = 8; + gtSysInfo->MaxEuPerSubSlice = SKL::maxEuPerSubslice; + gtSysInfo->MaxSlicesSupported = SKL::maxSlicesSupported; + gtSysInfo->MaxSubSlicesSupported = SKL::maxSubslicesSupported; + gtSysInfo->IsL3HashModeEnabled = false; + gtSysInfo->IsDynamicallyPopulated = false; + if (setupFeatureTableAndWorkaroundTable) { + setupFeatureAndWorkaroundTable(hwInfo); + } }; const HardwareInfo SKL_1x3x8::hwInfo = { @@ -207,13 +212,26 @@ const HardwareInfo SKL_1x3x8::hwInfo = { }; GT_SYSTEM_INFO SKL_1x3x8::gtSystemInfo = {0}; void SKL_1x3x8::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { - setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable); - GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; + gtSysInfo->ThreadCount = gtSysInfo->EUCount * SKL::threadsPerEu; gtSysInfo->SliceCount = 1; gtSysInfo->L3CacheSizeInKb = 768; gtSysInfo->L3BankCount = 4; gtSysInfo->MaxFillRate = 8; + gtSysInfo->TotalVsThreads = 336; + gtSysInfo->TotalHsThreads = 336; + gtSysInfo->TotalDsThreads = 336; + gtSysInfo->TotalGsThreads = 336; + gtSysInfo->TotalPsThreadsWindowerRange = 64; + gtSysInfo->CsrSizeInMb = 8; + gtSysInfo->MaxEuPerSubSlice = SKL::maxEuPerSubslice; + gtSysInfo->MaxSlicesSupported = SKL::maxSlicesSupported; + gtSysInfo->MaxSubSlicesSupported = SKL::maxSubslicesSupported; + gtSysInfo->IsL3HashModeEnabled = false; + gtSysInfo->IsDynamicallyPopulated = false; + if (setupFeatureTableAndWorkaroundTable) { + setupFeatureAndWorkaroundTable(hwInfo); + } }; const HardwareInfo SKL_2x3x8::hwInfo = { @@ -225,13 +243,26 @@ const HardwareInfo SKL_2x3x8::hwInfo = { }; GT_SYSTEM_INFO SKL_2x3x8::gtSystemInfo = {0}; void SKL_2x3x8::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { - setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable); - GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; + gtSysInfo->ThreadCount = gtSysInfo->EUCount * SKL::threadsPerEu; gtSysInfo->SliceCount = 2; gtSysInfo->L3CacheSizeInKb = 1536; gtSysInfo->L3BankCount = 8; gtSysInfo->MaxFillRate = 16; + gtSysInfo->TotalVsThreads = 336; + gtSysInfo->TotalHsThreads = 336; + gtSysInfo->TotalDsThreads = 336; + gtSysInfo->TotalGsThreads = 336; + gtSysInfo->TotalPsThreadsWindowerRange = 64; + gtSysInfo->CsrSizeInMb = 8; + gtSysInfo->MaxEuPerSubSlice = SKL::maxEuPerSubslice; + gtSysInfo->MaxSlicesSupported = SKL::maxSlicesSupported; + gtSysInfo->MaxSubSlicesSupported = SKL::maxSubslicesSupported; + gtSysInfo->IsL3HashModeEnabled = false; + gtSysInfo->IsDynamicallyPopulated = false; + if (setupFeatureTableAndWorkaroundTable) { + setupFeatureAndWorkaroundTable(hwInfo); + } }; const HardwareInfo SKL_3x3x8::hwInfo = { @@ -243,13 +274,26 @@ const HardwareInfo SKL_3x3x8::hwInfo = { }; GT_SYSTEM_INFO SKL_3x3x8::gtSystemInfo = {0}; void SKL_3x3x8::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { - setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable); - GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; + gtSysInfo->ThreadCount = gtSysInfo->EUCount * SKL::threadsPerEu; gtSysInfo->SliceCount = 3; gtSysInfo->L3CacheSizeInKb = 2304; gtSysInfo->L3BankCount = 12; gtSysInfo->MaxFillRate = 24; + gtSysInfo->TotalVsThreads = 336; + gtSysInfo->TotalHsThreads = 336; + gtSysInfo->TotalDsThreads = 336; + gtSysInfo->TotalGsThreads = 336; + gtSysInfo->TotalPsThreadsWindowerRange = 64; + gtSysInfo->CsrSizeInMb = 8; + gtSysInfo->MaxEuPerSubSlice = SKL::maxEuPerSubslice; + gtSysInfo->MaxSlicesSupported = SKL::maxSlicesSupported; + gtSysInfo->MaxSubSlicesSupported = SKL::maxSubslicesSupported; + gtSysInfo->IsL3HashModeEnabled = false; + gtSysInfo->IsDynamicallyPopulated = false; + if (setupFeatureTableAndWorkaroundTable) { + setupFeatureAndWorkaroundTable(hwInfo); + } }; const HardwareInfo SKL::hwInfo = SKL_1x3x8::hwInfo; diff --git a/shared/source/helpers/enable_product.inl b/shared/source/helpers/enable_product.inl index 8d3e3cf18e..4fa6cde0b2 100644 --- a/shared/source/helpers/enable_product.inl +++ b/shared/source/helpers/enable_product.inl @@ -20,7 +20,6 @@ struct EnableGfxProductHw { defaultHardwareInfoConfigTable[gfxProduct] = GfxProduct::defaultHardwareInfoConfig; hardwareInfoTable[gfxProduct] = &GfxProduct::hwInfo; hardwareInfoSetup[gfxProduct] = GfxProduct::setupHardwareInfo; - hardwareInfoBaseSetup[gfxProduct] = GfxProduct::setupHardwareInfoBase; } }; } // namespace NEO diff --git a/shared/source/helpers/hw_info.cpp b/shared/source/helpers/hw_info.cpp index 8de21c893b..545ed3c593 100644 --- a/shared/source/helpers/hw_info.cpp +++ b/shared/source/helpers/hw_info.cpp @@ -45,10 +45,6 @@ void (*hardwareInfoSetup[IGFX_MAX_PRODUCT])(HardwareInfo *, bool, uint64_t) = { 0x0, }; -void (*hardwareInfoBaseSetup[IGFX_MAX_PRODUCT])(HardwareInfo *, bool) = { - 0x0, -}; - bool getHwInfoForPlatformString(std::string &platform, const HardwareInfo *&hwInfoIn) { std::transform(platform.begin(), platform.end(), platform.begin(), ::tolower); diff --git a/shared/source/helpers/hw_info.h b/shared/source/helpers/hw_info.h index f80e09bff2..639a98dc49 100644 --- a/shared/source/helpers/hw_info.h +++ b/shared/source/helpers/hw_info.h @@ -165,7 +165,6 @@ extern const char *hardwarePrefix[IGFX_MAX_PRODUCT]; extern uint64_t defaultHardwareInfoConfigTable[IGFX_MAX_PRODUCT]; extern const HardwareInfo *hardwareInfoTable[IGFX_MAX_PRODUCT]; extern void (*hardwareInfoSetup[IGFX_MAX_PRODUCT])(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, uint64_t hwInfoConfig); -extern void (*hardwareInfoBaseSetup[IGFX_MAX_PRODUCT])(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable); template struct EnableGfxFamilyHw { diff --git a/shared/source/xe_hp_core/hw_cmds_xehp.h b/shared/source/xe_hp_core/hw_cmds_xehp.h index 60c49a88fa..dcbf8aa1a1 100644 --- a/shared/source/xe_hp_core/hw_cmds_xehp.h +++ b/shared/source/xe_hp_core/hw_cmds_xehp.h @@ -22,12 +22,12 @@ struct XE_HP_SDV : public XeHpFamily { static const RuntimeCapabilityTable capabilityTable; static void (*setupHardwareInfo)(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, uint64_t hwInfoConfig); static void setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo); - static void setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable); }; class XE_HP_SDV_CONFIG : public XE_HP_SDV { public: static void setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable); + static void setupHardwareInfoMultiTile(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, bool setupMultiTile); static const HardwareInfo hwInfo; private: diff --git a/shared/source/xe_hp_core/hw_info_xe_hp_sdv.cpp b/shared/source/xe_hp_core/hw_info_xe_hp_sdv.cpp index 943b0909df..666da61d82 100644 --- a/shared/source/xe_hp_core/hw_info_xe_hp_sdv.cpp +++ b/shared/source/xe_hp_core/hw_info_xe_hp_sdv.cpp @@ -129,27 +129,6 @@ void XE_HP_SDV::setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo) { workaroundTable->flags.waEnablePreemptionGranularityControlByUMD = true; }; -void XE_HP_SDV::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { - GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; - gtSysInfo->ThreadCount = gtSysInfo->EUCount * XE_HP_SDV::threadsPerEu; - gtSysInfo->TotalVsThreads = 336; - gtSysInfo->TotalHsThreads = 336; - gtSysInfo->TotalDsThreads = 336; - gtSysInfo->TotalGsThreads = 336; - gtSysInfo->TotalPsThreadsWindowerRange = 64; - gtSysInfo->CsrSizeInMb = 8; - gtSysInfo->MaxEuPerSubSlice = XE_HP_SDV::maxEuPerSubslice; - gtSysInfo->MaxSlicesSupported = XE_HP_SDV::maxSlicesSupported; - gtSysInfo->MaxSubSlicesSupported = XE_HP_SDV::maxSubslicesSupported; - gtSysInfo->MaxDualSubSlicesSupported = XE_HP_SDV::maxDualSubslicesSupported; - gtSysInfo->IsL3HashModeEnabled = false; - gtSysInfo->IsDynamicallyPopulated = false; - - if (setupFeatureTableAndWorkaroundTable) { - setupFeatureAndWorkaroundTable(hwInfo); - } -} - const HardwareInfo XE_HP_SDV_CONFIG::hwInfo = { &XE_HP_SDV::platform, &XE_HP_SDV::featureTable, @@ -159,19 +138,35 @@ const HardwareInfo XE_HP_SDV_CONFIG::hwInfo = { }; GT_SYSTEM_INFO XE_HP_SDV_CONFIG::gtSystemInfo = {0}; void XE_HP_SDV_CONFIG::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { - setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable); + XE_HP_SDV_CONFIG::setupHardwareInfoMultiTile(hwInfo, setupFeatureTableAndWorkaroundTable, false); +} +void XE_HP_SDV_CONFIG::setupHardwareInfoMultiTile(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, bool setupMultiTile) { GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; + gtSysInfo->CsrSizeInMb = 8; + gtSysInfo->IsL3HashModeEnabled = false; + gtSysInfo->IsDynamicallyPopulated = false; + + // non-zero values for unit tests if (gtSysInfo->SliceCount == 0) { gtSysInfo->SliceCount = 2; gtSysInfo->SubSliceCount = 8; gtSysInfo->EUCount = 40; + gtSysInfo->MaxEuPerSubSlice = gtSysInfo->EUCount / gtSysInfo->SubSliceCount; + gtSysInfo->MaxSlicesSupported = gtSysInfo->SliceCount; + gtSysInfo->MaxSubSlicesSupported = gtSysInfo->SubSliceCount; + gtSysInfo->L3BankCount = 1; + gtSysInfo->CCSInfo.IsValid = true; gtSysInfo->CCSInfo.NumberOfCCSEnabled = 1; + hwInfo->featureTable.ftrBcsInfo = 1; } -} + if (setupFeatureTableAndWorkaroundTable) { + XE_HP_SDV::setupFeatureAndWorkaroundTable(hwInfo); + } +}; #include "hw_info_setup_xehp.inl" } // namespace NEO diff --git a/shared/source/xe_hpc_core/hw_cmds_pvc.h b/shared/source/xe_hpc_core/hw_cmds_pvc.h index d68fd378cb..76c4e0a327 100644 --- a/shared/source/xe_hpc_core/hw_cmds_pvc.h +++ b/shared/source/xe_hpc_core/hw_cmds_pvc.h @@ -27,8 +27,7 @@ struct PVC : public XE_HPC_COREFamily { static const RuntimeCapabilityTable capabilityTable; static void (*setupHardwareInfo)(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, uint64_t hwInfoConfig); static void setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo); - static void setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable); - static void setupHardwareInfoMultiTileBase(HardwareInfo *hwInfo, bool setupMultiTile); + static void setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, bool setupMultiTile); static void adjustHardwareInfo(HardwareInfo *hwInfo); static bool isXlA0(const HardwareInfo &hwInfo); static bool isAtMostXtA0(const HardwareInfo &hwInfo); @@ -49,6 +48,7 @@ struct PVC : public XE_HPC_COREFamily { class PVC_CONFIG : public PVC { public: static void setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable); + static void setupHardwareInfoMultiTile(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, bool setupMultiTile); static const HardwareInfo hwInfo; private: diff --git a/shared/source/xe_hpc_core/hw_info_pvc.cpp b/shared/source/xe_hpc_core/hw_info_pvc.cpp index c1efe0c0f6..b6fa893beb 100644 --- a/shared/source/xe_hpc_core/hw_info_pvc.cpp +++ b/shared/source/xe_hpc_core/hw_info_pvc.cpp @@ -141,7 +141,7 @@ void PVC::adjustHardwareInfo(HardwareInfo *hwInfo) { hwInfo->capabilityTable.sharedSystemMemCapabilities = (UNIFIED_SHARED_MEMORY_ACCESS | UNIFIED_SHARED_MEMORY_CONCURRENT_ACCESS | UNIFIED_SHARED_MEMORY_CONCURRENT_ATOMIC_ACCESS); } -void PVC::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { +void PVC::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, bool setupMultiTile) { GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; gtSysInfo->ThreadCount = gtSysInfo->EUCount * PVC::threadsPerEu; gtSysInfo->MaxFillRate = 128; @@ -158,21 +158,14 @@ void PVC::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndW gtSysInfo->IsL3HashModeEnabled = false; gtSysInfo->IsDynamicallyPopulated = false; - PVC::adjustHardwareInfo(hwInfo); - - if (setupFeatureTableAndWorkaroundTable) { - setupFeatureAndWorkaroundTable(hwInfo); - } -} - -void PVC::setupHardwareInfoMultiTileBase(HardwareInfo *hwInfo, bool setupMultiTile) { - GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; gtSysInfo->MultiTileArchInfo.IsValid = setupMultiTile; gtSysInfo->MultiTileArchInfo.TileCount = 1; if (DebugManager.flags.CreateMultipleSubDevices.get() > 0) { gtSysInfo->MultiTileArchInfo.TileCount = DebugManager.flags.CreateMultipleSubDevices.get(); } gtSysInfo->MultiTileArchInfo.TileMask = static_cast(maxNBitValue(gtSysInfo->MultiTileArchInfo.TileCount)); + + PVC::adjustHardwareInfo(hwInfo); } FeatureTable PVC::featureTable; @@ -188,26 +181,41 @@ const HardwareInfo PVC_CONFIG::hwInfo = { GT_SYSTEM_INFO PVC_CONFIG::gtSystemInfo = {0}; void PVC_CONFIG::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { - PVC::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable); - + PVC_CONFIG::setupHardwareInfoMultiTile(hwInfo, setupFeatureTableAndWorkaroundTable, false); +} +void PVC_CONFIG::setupHardwareInfoMultiTile(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, bool setupMultiTile) { GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; + gtSysInfo->CsrSizeInMb = 8; + gtSysInfo->IsL3HashModeEnabled = false; + gtSysInfo->IsDynamicallyPopulated = false; + // non-zero values for unit tests if (gtSysInfo->SliceCount == 0) { gtSysInfo->SliceCount = 2; gtSysInfo->SubSliceCount = 8; gtSysInfo->DualSubSliceCount = gtSysInfo->SubSliceCount; gtSysInfo->EUCount = 40; + gtSysInfo->MaxEuPerSubSlice = gtSysInfo->EUCount / gtSysInfo->SubSliceCount; + gtSysInfo->MaxSlicesSupported = gtSysInfo->SliceCount; + gtSysInfo->MaxSubSlicesSupported = gtSysInfo->SubSliceCount; + gtSysInfo->L3BankCount = 1; + gtSysInfo->CCSInfo.IsValid = true; gtSysInfo->CCSInfo.NumberOfCCSEnabled = 2; gtSysInfo->CCSInfo.Instances.CCSEnableMask = 0b11; + hwInfo->featureTable.ftrBcsInfo = 1; for (uint32_t slice = 0; slice < gtSysInfo->SliceCount; slice++) { gtSysInfo->SliceInfo[slice].Enabled = true; } } -} + + if (setupFeatureTableAndWorkaroundTable) { + PVC::setupFeatureAndWorkaroundTable(hwInfo); + } +}; #include "hw_info_setup_pvc.inl" } // namespace NEO diff --git a/shared/source/xe_hpg_core/hw_cmds_dg2.h b/shared/source/xe_hpg_core/hw_cmds_dg2.h index 14f9e38acd..eb85011134 100644 --- a/shared/source/xe_hpg_core/hw_cmds_dg2.h +++ b/shared/source/xe_hpg_core/hw_cmds_dg2.h @@ -27,7 +27,6 @@ struct DG2 : public XE_HPG_COREFamily { static const RuntimeCapabilityTable capabilityTable; static void (*setupHardwareInfo)(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, uint64_t hwInfoConfig); static void setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo); - static void setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable); static bool isG10(const HardwareInfo &hwInfo) { auto it = std::find(DG2_G10_IDS.begin(), DG2_G10_IDS.end(), hwInfo.platform.usDeviceID); @@ -43,6 +42,7 @@ struct DG2 : public XE_HPG_COREFamily { class DG2_CONFIG : public DG2 { public: static void setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable); + static void setupHardwareInfoMultiTile(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, bool setupMultiTile); static const HardwareInfo hwInfo; private: diff --git a/shared/source/xe_hpg_core/hw_info_dg2.cpp b/shared/source/xe_hpg_core/hw_info_dg2.cpp index 88b274b60e..394bda9bce 100644 --- a/shared/source/xe_hpg_core/hw_info_dg2.cpp +++ b/shared/source/xe_hpg_core/hw_info_dg2.cpp @@ -130,27 +130,6 @@ void DG2::setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo) { workaroundTable->flags.waEnablePreemptionGranularityControlByUMD = true; }; -void DG2::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { - GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; - gtSysInfo->ThreadCount = gtSysInfo->EUCount * DG2::threadsPerEu; - gtSysInfo->TotalVsThreads = 336; - gtSysInfo->TotalHsThreads = 336; - gtSysInfo->TotalDsThreads = 336; - gtSysInfo->TotalGsThreads = 336; - gtSysInfo->TotalPsThreadsWindowerRange = 64; - gtSysInfo->CsrSizeInMb = 8; - gtSysInfo->MaxEuPerSubSlice = DG2::maxEuPerSubslice; - gtSysInfo->MaxSlicesSupported = DG2::maxSlicesSupported; - gtSysInfo->MaxSubSlicesSupported = DG2::maxSubslicesSupported; - gtSysInfo->MaxDualSubSlicesSupported = DG2::maxDualSubslicesSupported; - gtSysInfo->IsL3HashModeEnabled = false; - gtSysInfo->IsDynamicallyPopulated = false; - - if (setupFeatureTableAndWorkaroundTable) { - setupFeatureAndWorkaroundTable(hwInfo); - } -} - const HardwareInfo DG2_CONFIG::hwInfo = { &DG2::platform, &DG2::featureTable, @@ -160,9 +139,15 @@ const HardwareInfo DG2_CONFIG::hwInfo = { }; GT_SYSTEM_INFO DG2_CONFIG::gtSystemInfo = {0}; void DG2_CONFIG::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) { - DG2::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable); + DG2_CONFIG::setupHardwareInfoMultiTile(hwInfo, setupFeatureTableAndWorkaroundTable, false); +} +void DG2_CONFIG::setupHardwareInfoMultiTile(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, bool setupMultiTile) { GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; + gtSysInfo->CsrSizeInMb = 8; + gtSysInfo->IsL3HashModeEnabled = false; + gtSysInfo->IsDynamicallyPopulated = false; + // non-zero values for unit tests if (gtSysInfo->SliceCount == 0) { gtSysInfo->SliceCount = 2; @@ -184,7 +169,11 @@ void DG2_CONFIG::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableA gtSysInfo->SliceInfo[slice].Enabled = true; } } -} + + if (setupFeatureTableAndWorkaroundTable) { + DG2::setupFeatureAndWorkaroundTable(hwInfo); + } +}; #include "hw_info_setup_dg2.inl" } // namespace NEO 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 b8150725b7..c45a46c575 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 @@ -26,11 +26,11 @@ DG2TEST_F(HwInfoConfigTestDg2, whenConvertingTimestampsToCsDomainThenGpuTicksAre EXPECT_EQ(expectedGpuTicks, gpuTicks); } -DG2TEST_F(HwInfoConfigTestDg2, givenDg2ConfigWhenSetupHardwareInfoThenGtSystemInfoIsCorrect) { +DG2TEST_F(HwInfoConfigTestDg2, givenDg2ConfigWhenSetupHardwareInfoMultiTileThenGtSystemInfoIsSetCorrect) { HardwareInfo hwInfo = *defaultHwInfo; GT_SYSTEM_INFO >SystemInfo = hwInfo.gtSystemInfo; - DG2_CONFIG::setupHardwareInfo(&hwInfo, false); + DG2_CONFIG::setupHardwareInfoMultiTile(&hwInfo, false, false); EXPECT_EQ(8u, gtSystemInfo.CsrSizeInMb); EXPECT_FALSE(gtSystemInfo.IsL3HashModeEnabled); EXPECT_FALSE(gtSystemInfo.IsDynamicallyPopulated);