fix: add fallback in setting hw ip version for MTL
setup hw ip version based on device id and revision id Related-To: NEO-8231 Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
parent
d7aea3e745
commit
c7c7ba7159
|
@ -11,4 +11,49 @@ constexpr auto gfxProduct = IGFX_METEORLAKE;
|
||||||
|
|
||||||
#include "shared/source/xe_hpg_core/xe_lpg/compiler_product_helper_xe_lpg.inl"
|
#include "shared/source/xe_hpg_core/xe_lpg/compiler_product_helper_xe_lpg.inl"
|
||||||
|
|
||||||
|
namespace NEO {
|
||||||
|
template <>
|
||||||
|
uint32_t CompilerProductHelperHw<gfxProduct>::getProductConfigFromHwInfo(const HardwareInfo &hwInfo) const {
|
||||||
|
if (hwInfo.ipVersion.value) {
|
||||||
|
return hwInfo.ipVersion.value;
|
||||||
|
}
|
||||||
|
switch (hwInfo.platform.usDeviceID) {
|
||||||
|
case 0x7D40:
|
||||||
|
case 0x7D45: {
|
||||||
|
switch (hwInfo.platform.usRevId) {
|
||||||
|
case 0x0:
|
||||||
|
case 0x2:
|
||||||
|
return AOT::MTL_M_A0;
|
||||||
|
case 0x3:
|
||||||
|
case 0x8:
|
||||||
|
return AOT::MTL_M_B0;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 0x7D55:
|
||||||
|
case 0X7DD5: {
|
||||||
|
switch (hwInfo.platform.usRevId) {
|
||||||
|
case 0x0:
|
||||||
|
case 0x2:
|
||||||
|
return AOT::MTL_P_A0;
|
||||||
|
case 0x3:
|
||||||
|
case 0x8:
|
||||||
|
return AOT::MTL_P_B0;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 0x7D60: {
|
||||||
|
switch (hwInfo.platform.usRevId) {
|
||||||
|
case 0x0:
|
||||||
|
return AOT::MTL_M_A0;
|
||||||
|
case 0x2:
|
||||||
|
return AOT::MTL_M_B0;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return getDefaultHwIpVersion();
|
||||||
|
}
|
||||||
|
} // namespace NEO
|
||||||
|
|
||||||
static NEO::EnableCompilerProductHelper<gfxProduct> enableCompilerProductHelperMTL;
|
static NEO::EnableCompilerProductHelper<gfxProduct> enableCompilerProductHelperMTL;
|
||||||
|
|
|
@ -5,14 +5,18 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include "shared/source/helpers/compiler_product_helper.h"
|
||||||
#include "shared/source/memory_manager/allocation_properties.h"
|
#include "shared/source/memory_manager/allocation_properties.h"
|
||||||
#include "shared/source/memory_manager/allocation_type.h"
|
#include "shared/source/memory_manager/allocation_type.h"
|
||||||
#include "shared/source/os_interface/product_helper.h"
|
#include "shared/source/os_interface/product_helper.h"
|
||||||
#include "shared/source/xe_hpg_core/hw_cmds_mtl.h"
|
#include "shared/source/xe_hpg_core/hw_cmds_mtl.h"
|
||||||
|
#include "shared/test/common/helpers/default_hw_info.h"
|
||||||
#include "shared/test/common/test_macros/header/per_product_test_definitions.h"
|
#include "shared/test/common/test_macros/header/per_product_test_definitions.h"
|
||||||
#include "shared/test/common/test_macros/test.h"
|
#include "shared/test/common/test_macros/test.h"
|
||||||
#include "shared/test/unit_test/os_interface/product_helper_tests.h"
|
#include "shared/test/unit_test/os_interface/product_helper_tests.h"
|
||||||
|
|
||||||
|
#include "platforms.h"
|
||||||
|
|
||||||
using namespace NEO;
|
using namespace NEO;
|
||||||
|
|
||||||
using MtlProductHelper = ProductHelperTest;
|
using MtlProductHelper = ProductHelperTest;
|
||||||
|
@ -21,6 +25,66 @@ MTLTEST_F(MtlProductHelper, givenProductHelperWhenCheckDirectSubmissionSupported
|
||||||
EXPECT_TRUE(productHelper->isDirectSubmissionSupported(releaseHelper));
|
EXPECT_TRUE(productHelper->isDirectSubmissionSupported(releaseHelper));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MTLTEST_F(MtlProductHelper, givenMtlWithoutHwIpVersionInHwInfoWhenGettingIpVersionThenCorrectValueIsReturnedBasedOnDeviceIdAndRevId) {
|
||||||
|
auto hwInfo = *defaultHwInfo;
|
||||||
|
hwInfo.ipVersion = {};
|
||||||
|
|
||||||
|
auto mtlMDeviceIds = {0x7D40, 0x7D45};
|
||||||
|
auto mtlPDeviceIds = {0x7D55, 0X7DD5};
|
||||||
|
|
||||||
|
hwInfo.platform.usDeviceID = 0x7D60;
|
||||||
|
hwInfo.platform.usRevId = 0;
|
||||||
|
|
||||||
|
EXPECT_EQ(AOT::MTL_M_A0, compilerProductHelper->getHwIpVersion(hwInfo));
|
||||||
|
|
||||||
|
hwInfo.platform.usRevId = 2;
|
||||||
|
|
||||||
|
EXPECT_EQ(AOT::MTL_M_B0, compilerProductHelper->getHwIpVersion(hwInfo));
|
||||||
|
|
||||||
|
hwInfo.platform.usRevId = 0xdead;
|
||||||
|
|
||||||
|
EXPECT_EQ(compilerProductHelper->getDefaultHwIpVersion(), compilerProductHelper->getHwIpVersion(hwInfo));
|
||||||
|
|
||||||
|
for (auto &deviceId : mtlMDeviceIds) {
|
||||||
|
hwInfo.platform.usDeviceID = deviceId;
|
||||||
|
for (auto &revision : {0, 2}) {
|
||||||
|
hwInfo.platform.usRevId = revision;
|
||||||
|
|
||||||
|
EXPECT_EQ(AOT::MTL_M_A0, compilerProductHelper->getHwIpVersion(hwInfo));
|
||||||
|
}
|
||||||
|
for (auto &revision : {3, 8}) {
|
||||||
|
hwInfo.platform.usRevId = revision;
|
||||||
|
|
||||||
|
EXPECT_EQ(AOT::MTL_M_B0, compilerProductHelper->getHwIpVersion(hwInfo));
|
||||||
|
}
|
||||||
|
hwInfo.platform.usRevId = 0xdead;
|
||||||
|
|
||||||
|
EXPECT_EQ(compilerProductHelper->getDefaultHwIpVersion(), compilerProductHelper->getHwIpVersion(hwInfo));
|
||||||
|
}
|
||||||
|
|
||||||
|
for (auto &deviceId : mtlPDeviceIds) {
|
||||||
|
hwInfo.platform.usDeviceID = deviceId;
|
||||||
|
for (auto &revision : {0, 2}) {
|
||||||
|
hwInfo.platform.usRevId = revision;
|
||||||
|
|
||||||
|
EXPECT_EQ(AOT::MTL_P_A0, compilerProductHelper->getHwIpVersion(hwInfo));
|
||||||
|
}
|
||||||
|
for (auto &revision : {3, 8}) {
|
||||||
|
hwInfo.platform.usRevId = revision;
|
||||||
|
|
||||||
|
EXPECT_EQ(AOT::MTL_P_B0, compilerProductHelper->getHwIpVersion(hwInfo));
|
||||||
|
}
|
||||||
|
hwInfo.platform.usRevId = 0xdead;
|
||||||
|
|
||||||
|
EXPECT_EQ(compilerProductHelper->getDefaultHwIpVersion(), compilerProductHelper->getHwIpVersion(hwInfo));
|
||||||
|
}
|
||||||
|
|
||||||
|
hwInfo.platform.usDeviceID = 0;
|
||||||
|
hwInfo.platform.usRevId = 0xdead;
|
||||||
|
|
||||||
|
EXPECT_EQ(compilerProductHelper->getDefaultHwIpVersion(), compilerProductHelper->getHwIpVersion(hwInfo));
|
||||||
|
}
|
||||||
|
|
||||||
MTLTEST_F(MtlProductHelper, givenProductHelperWhenCheckOverrideAllocationCacheableThenTrueIsReturnedForCommandBuffer) {
|
MTLTEST_F(MtlProductHelper, givenProductHelperWhenCheckOverrideAllocationCacheableThenTrueIsReturnedForCommandBuffer) {
|
||||||
AllocationData allocationData{};
|
AllocationData allocationData{};
|
||||||
allocationData.type = AllocationType::COMMAND_BUFFER;
|
allocationData.type = AllocationType::COMMAND_BUFFER;
|
||||||
|
@ -28,4 +92,4 @@ MTLTEST_F(MtlProductHelper, givenProductHelperWhenCheckOverrideAllocationCacheab
|
||||||
|
|
||||||
allocationData.type = AllocationType::BUFFER;
|
allocationData.type = AllocationType::BUFFER;
|
||||||
EXPECT_FALSE(productHelper->overrideAllocationCacheable(allocationData));
|
EXPECT_FALSE(productHelper->overrideAllocationCacheable(allocationData));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue