@@ -708,7 +708,8 @@ TEST(IoctlHelperXeTest, givenGeomDssWhenGetTopologyDataAndMapThenResultsAreCorre
708
708
DrmQueryTopologyData topologyData{};
709
709
TopologyMap topologyMap{};
710
710
711
- hwInfo.gtSystemInfo .MaxSubSlicesSupported = 64 ;
711
+ hwInfo.gtSystemInfo .MaxSlicesSupported = 1 ;
712
+ hwInfo.gtSystemInfo .MaxSubSlicesSupported = 6 ;
712
713
auto result = xeIoctlHelper->getTopologyDataAndMap (hwInfo, topologyData, topologyMap);
713
714
ASSERT_TRUE (result);
714
715
@@ -760,7 +761,8 @@ TEST(IoctlHelperXeTest, givenUnknownTopologyTypeWhenGetTopologyDataAndMapThenNot
760
761
DrmQueryTopologyData topologyData{};
761
762
TopologyMap topologyMap{};
762
763
763
- hwInfo.gtSystemInfo .MaxSubSlicesSupported = 64 ;
764
+ hwInfo.gtSystemInfo .MaxSlicesSupported = 1 ;
765
+ hwInfo.gtSystemInfo .MaxSubSlicesSupported = 6 ;
764
766
auto result = xeIoctlHelper->getTopologyDataAndMap (hwInfo, topologyData, topologyMap);
765
767
ASSERT_TRUE (result);
766
768
@@ -803,48 +805,38 @@ TEST(IoctlHelperXeTest, givenComputeDssWhenGetTopologyDataAndMapThenResultsAreCo
803
805
uint16_t tileId = 0 ;
804
806
for (auto gtId = 0u ; gtId < 4u ; gtId++) {
805
807
drm->addMockedQueryTopologyData (gtId, DRM_XE_TOPO_DSS_GEOMETRY, 8 , {0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 });
806
- drm->addMockedQueryTopologyData (gtId, DRM_XE_TOPO_DSS_COMPUTE, 8 , {0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff });
808
+ drm->addMockedQueryTopologyData (gtId, DRM_XE_TOPO_DSS_COMPUTE, 8 , {0x0fu , 0xff , 0u , 0xff , 0u , 0u , 0xff , 0xff });
807
809
drm->addMockedQueryTopologyData (gtId, DRM_XE_TOPO_EU_PER_DSS, 8 , {0b1111'1111 , 0 , 0 , 0 , 0 , 0 , 0 , 0 });
808
810
}
809
811
810
812
DrmQueryTopologyData topologyData{};
811
813
TopologyMap topologyMap{};
812
814
815
+ hwInfo.gtSystemInfo .MaxSlicesSupported = 4u ;
813
816
hwInfo.gtSystemInfo .MaxSubSlicesSupported = 32u ;
814
817
auto result = xeIoctlHelper->getTopologyDataAndMap (hwInfo, topologyData, topologyMap);
815
818
ASSERT_TRUE (result);
816
819
817
820
// verify topology data
818
- EXPECT_EQ (1 , topologyData.sliceCount );
819
- EXPECT_EQ (1 , topologyData.maxSlices );
821
+ EXPECT_EQ (3 , topologyData.sliceCount );
822
+ EXPECT_EQ (4 , topologyData.maxSlices );
820
823
821
- EXPECT_EQ (32 , topologyData.subSliceCount );
822
- EXPECT_EQ (32 , topologyData.maxSubSlicesPerSlice );
824
+ EXPECT_EQ (20 , topologyData.subSliceCount );
825
+ EXPECT_EQ (8 , topologyData.maxSubSlicesPerSlice );
823
826
824
- EXPECT_EQ (256 , topologyData.euCount );
827
+ EXPECT_EQ (160 , topologyData.euCount );
825
828
EXPECT_EQ (8 , topologyData.maxEusPerSubSlice );
826
829
827
830
// verify topology map
828
- std::vector<int > expectedSliceIndices = {0 };
831
+ std::vector<int > expectedSliceIndices = {0 , 1 , 3 };
829
832
ASSERT_EQ (expectedSliceIndices.size (), topologyMap[tileId].sliceIndices .size ());
830
833
ASSERT_TRUE (topologyMap[tileId].sliceIndices .size () > 0 );
831
834
832
835
for (auto i = 0u ; i < expectedSliceIndices.size (); i++) {
833
836
EXPECT_EQ (expectedSliceIndices[i], topologyMap[tileId].sliceIndices [i]);
834
837
}
835
838
836
- std::vector<int > expectedSubSliceIndices;
837
- expectedSubSliceIndices.reserve (64u );
838
- for (auto i = 0u ; i < hwInfo.gtSystemInfo .MaxSubSlicesSupported ; i++) {
839
- expectedSubSliceIndices.emplace_back (i);
840
- }
841
-
842
- ASSERT_EQ (expectedSubSliceIndices.size (), topologyMap[tileId].subsliceIndices .size ());
843
- ASSERT_TRUE (topologyMap[tileId].subsliceIndices .size () > 0 );
844
-
845
- for (auto i = 0u ; i < expectedSubSliceIndices.size (); i++) {
846
- EXPECT_EQ (expectedSubSliceIndices[i], topologyMap[tileId].subsliceIndices [i]);
847
- }
839
+ EXPECT_EQ (0u , topologyMap[tileId].subsliceIndices .size ());
848
840
}
849
841
850
842
TEST (IoctlHelperXeTest, givenOnlyMediaTypeWhenGetTopologyDataAndMapThenSubsliceIndicesNotSet) {
@@ -881,10 +873,10 @@ TEST(IoctlHelperXeTest, givenOnlyMediaTypeWhenGetTopologyDataAndMapThenSubsliceI
881
873
882
874
// verify topology data
883
875
EXPECT_EQ (0 , topologyData.sliceCount );
884
- EXPECT_EQ (0 , topologyData.maxSlices );
876
+ EXPECT_EQ (static_cast < int >(hwInfo. gtSystemInfo . MaxSlicesSupported ) , topologyData.maxSlices );
885
877
886
878
EXPECT_EQ (0 , topologyData.subSliceCount );
887
- EXPECT_EQ (0 , topologyData.maxSubSlicesPerSlice );
879
+ EXPECT_EQ (static_cast < int >(hwInfo. gtSystemInfo . MaxSubSlicesSupported / topologyData. maxSlices ) , topologyData.maxSubSlicesPerSlice );
888
880
889
881
EXPECT_EQ (0 , topologyData.euCount );
890
882
EXPECT_EQ (0 , topologyData.maxEusPerSubSlice );
@@ -951,6 +943,7 @@ TEST(IoctlHelperXeTest, givenMainAndMediaTypesWhenGetTopologyDataAndMapThenResul
951
943
DrmQueryTopologyData topologyData{};
952
944
TopologyMap topologyMap{};
953
945
946
+ hwInfo.gtSystemInfo .MaxSlicesSupported = 1 ;
954
947
hwInfo.gtSystemInfo .MaxSubSlicesSupported = 64 ;
955
948
956
949
auto result = xeIoctlHelper->getTopologyDataAndMap (hwInfo, topologyData, topologyMap);
@@ -990,6 +983,7 @@ TEST(IoctlHelperXeTest, given2TileAndComputeDssWhenGetTopologyDataAndMapThenResu
990
983
DrmQueryTopologyData topologyData{};
991
984
TopologyMap topologyMap{};
992
985
986
+ hwInfo.gtSystemInfo .MaxSlicesSupported = 1 ;
993
987
hwInfo.gtSystemInfo .MaxSubSlicesSupported = 64 ;
994
988
auto result = xeIoctlHelper->getTopologyDataAndMap (hwInfo, topologyData, topologyMap);
995
989
ASSERT_TRUE (result);
@@ -1051,6 +1045,7 @@ TEST(IoctlHelperXeTest, given2TileWithDisabledDssOn1TileAndComputeDssWhenGetTopo
1051
1045
DrmQueryTopologyData topologyData{};
1052
1046
TopologyMap topologyMap{};
1053
1047
1048
+ hwInfo.gtSystemInfo .MaxSlicesSupported = 1 ;
1054
1049
hwInfo.gtSystemInfo .MaxSubSlicesSupported = 64 ;
1055
1050
auto result = xeIoctlHelper->getTopologyDataAndMap (hwInfo, topologyData, topologyMap);
1056
1051
ASSERT_TRUE (result);
@@ -1117,6 +1112,7 @@ TEST(IoctlHelperXeTest, given2TileWithDisabledEvenDssAndComputeDssWhenGetTopolog
1117
1112
DrmQueryTopologyData topologyData{};
1118
1113
TopologyMap topologyMap{};
1119
1114
1115
+ hwInfo.gtSystemInfo .MaxSlicesSupported = 1 ;
1120
1116
hwInfo.gtSystemInfo .MaxSubSlicesSupported = 64 ;
1121
1117
auto result = xeIoctlHelper->getTopologyDataAndMap (hwInfo, topologyData, topologyMap);
1122
1118
ASSERT_TRUE (result);
@@ -1126,7 +1122,7 @@ TEST(IoctlHelperXeTest, given2TileWithDisabledEvenDssAndComputeDssWhenGetTopolog
1126
1122
EXPECT_EQ (1 , topologyData.maxSlices );
1127
1123
1128
1124
EXPECT_EQ (32 , topologyData.subSliceCount );
1129
- EXPECT_EQ (32 , topologyData.maxSubSlicesPerSlice );
1125
+ EXPECT_EQ (64 , topologyData.maxSubSlicesPerSlice );
1130
1126
1131
1127
EXPECT_EQ (256 , topologyData.euCount );
1132
1128
EXPECT_EQ (8 , topologyData.maxEusPerSubSlice );
@@ -1207,7 +1203,8 @@ TEST(IoctlHelperXeTest, givenMissingEuPerDssInTopologyWhenGetTopologyDataAndMapT
1207
1203
drm->addMockedQueryTopologyData (tileIdToGtId[tileId], DRM_XE_TOPO_DSS_GEOMETRY, 8 , {0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 });
1208
1204
drm->addMockedQueryTopologyData (tileIdToGtId[tileId], DRM_XE_TOPO_DSS_COMPUTE, 8 , {0b1111'1111 , 0b1111'1111 , 0 , 0 , 0 , 0 , 0 , 0 });
1209
1205
}
1210
- hwInfo.gtSystemInfo .MaxSubSlicesSupported = 64 ;
1206
+ hwInfo.gtSystemInfo .MaxSlicesSupported = 1 ;
1207
+ hwInfo.gtSystemInfo .MaxSubSlicesSupported = 16 ;
1211
1208
auto result = xeIoctlHelper->getTopologyDataAndMap (hwInfo, topologyData, topologyMap);
1212
1209
EXPECT_TRUE (result);
1213
1210
0 commit comments