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::COMMAND_BUFFER;
2791    EXPECT_TRUE (productHelper->overrideAllocationCacheable (allocationData));
2892
2993    allocationData.type  = AllocationType::BUFFER;
3094    EXPECT_FALSE (productHelper->overrideAllocationCacheable (allocationData));
31- }
95+ }
0 commit comments