55 *
66 */
77
8+ #include " shared/source/helpers/compiler_product_helper.h"
89#include " shared/source/memory_manager/allocation_properties.h"
910#include " shared/source/memory_manager/allocation_type.h"
1011#include " shared/source/os_interface/product_helper.h"
1112#include " shared/source/xe_hpg_core/hw_cmds_mtl.h"
13+ #include " shared/test/common/helpers/default_hw_info.h"
1214#include " shared/test/common/test_macros/header/per_product_test_definitions.h"
1315#include " shared/test/common/test_macros/test.h"
1416#include " shared/test/unit_test/os_interface/product_helper_tests.h"
1517
18+ #include " platforms.h"
19+
1620using namespace NEO ;
1721
1822using MtlProductHelper = ProductHelperTest;
@@ -21,11 +25,71 @@ MTLTEST_F(MtlProductHelper, givenProductHelperWhenCheckDirectSubmissionSupported
2125 EXPECT_TRUE (productHelper->isDirectSubmissionSupported (releaseHelper));
2226}
2327
28+ MTLTEST_F (MtlProductHelper, givenMtlWithoutHwIpVersionInHwInfoWhenGettingIpVersionThenCorrectValueIsReturnedBasedOnDeviceIdAndRevId) {
29+ auto hwInfo = *defaultHwInfo;
30+ hwInfo.ipVersion = {};
31+
32+ auto mtlMDeviceIds = {0x7D40 , 0x7D45 };
33+ auto mtlPDeviceIds = {0x7D55 , 0X7DD5 };
34+
35+ hwInfo.platform .usDeviceID = 0x7D60 ;
36+ hwInfo.platform .usRevId = 0 ;
37+
38+ EXPECT_EQ (AOT::MTL_M_A0, compilerProductHelper->getHwIpVersion (hwInfo));
39+
40+ hwInfo.platform .usRevId = 2 ;
41+
42+ EXPECT_EQ (AOT::MTL_M_B0, compilerProductHelper->getHwIpVersion (hwInfo));
43+
44+ hwInfo.platform .usRevId = 0xdead ;
45+
46+ EXPECT_EQ (compilerProductHelper->getDefaultHwIpVersion (), compilerProductHelper->getHwIpVersion (hwInfo));
47+
48+ for (auto &deviceId : mtlMDeviceIds) {
49+ hwInfo.platform .usDeviceID = deviceId;
50+ for (auto &revision : {0 , 2 }) {
51+ hwInfo.platform .usRevId = revision;
52+
53+ EXPECT_EQ (AOT::MTL_M_A0, compilerProductHelper->getHwIpVersion (hwInfo));
54+ }
55+ for (auto &revision : {3 , 8 }) {
56+ hwInfo.platform .usRevId = revision;
57+
58+ EXPECT_EQ (AOT::MTL_M_B0, compilerProductHelper->getHwIpVersion (hwInfo));
59+ }
60+ hwInfo.platform .usRevId = 0xdead ;
61+
62+ EXPECT_EQ (compilerProductHelper->getDefaultHwIpVersion (), compilerProductHelper->getHwIpVersion (hwInfo));
63+ }
64+
65+ for (auto &deviceId : mtlPDeviceIds) {
66+ hwInfo.platform .usDeviceID = deviceId;
67+ for (auto &revision : {0 , 2 }) {
68+ hwInfo.platform .usRevId = revision;
69+
70+ EXPECT_EQ (AOT::MTL_P_A0, compilerProductHelper->getHwIpVersion (hwInfo));
71+ }
72+ for (auto &revision : {3 , 8 }) {
73+ hwInfo.platform .usRevId = revision;
74+
75+ EXPECT_EQ (AOT::MTL_P_B0, compilerProductHelper->getHwIpVersion (hwInfo));
76+ }
77+ hwInfo.platform .usRevId = 0xdead ;
78+
79+ EXPECT_EQ (compilerProductHelper->getDefaultHwIpVersion (), compilerProductHelper->getHwIpVersion (hwInfo));
80+ }
81+
82+ hwInfo.platform .usDeviceID = 0 ;
83+ hwInfo.platform .usRevId = 0xdead ;
84+
85+ EXPECT_EQ (compilerProductHelper->getDefaultHwIpVersion (), compilerProductHelper->getHwIpVersion (hwInfo));
86+ }
87+
2488MTLTEST_F (MtlProductHelper, givenProductHelperWhenCheckOverrideAllocationCacheableThenTrueIsReturnedForCommandBuffer) {
2589 AllocationData allocationData{};
2690 allocationData.type = AllocationType::commandBuffer;
2791 EXPECT_TRUE (productHelper->overrideAllocationCacheable (allocationData));
2892
2993 allocationData.type = AllocationType::buffer;
3094 EXPECT_FALSE (productHelper->overrideAllocationCacheable (allocationData));
31- }
95+ }
0 commit comments