@@ -708,7 +708,8 @@ TEST(IoctlHelperXeTest, givenGeomDssWhenGetTopologyDataAndMapThenResultsAreCorre
708708 DrmQueryTopologyData topologyData{};
709709 TopologyMap topologyMap{};
710710
711- hwInfo.gtSystemInfo .MaxSubSlicesSupported = 64 ;
711+ hwInfo.gtSystemInfo .MaxSlicesSupported = 1 ;
712+ hwInfo.gtSystemInfo .MaxSubSlicesSupported = 6 ;
712713 auto result = xeIoctlHelper->getTopologyDataAndMap (hwInfo, topologyData, topologyMap);
713714 ASSERT_TRUE (result);
714715
@@ -760,7 +761,8 @@ TEST(IoctlHelperXeTest, givenUnknownTopologyTypeWhenGetTopologyDataAndMapThenNot
760761 DrmQueryTopologyData topologyData{};
761762 TopologyMap topologyMap{};
762763
763- hwInfo.gtSystemInfo .MaxSubSlicesSupported = 64 ;
764+ hwInfo.gtSystemInfo .MaxSlicesSupported = 1 ;
765+ hwInfo.gtSystemInfo .MaxSubSlicesSupported = 6 ;
764766 auto result = xeIoctlHelper->getTopologyDataAndMap (hwInfo, topologyData, topologyMap);
765767 ASSERT_TRUE (result);
766768
@@ -803,48 +805,38 @@ TEST(IoctlHelperXeTest, givenComputeDssWhenGetTopologyDataAndMapThenResultsAreCo
803805 uint16_t tileId = 0 ;
804806 for (auto gtId = 0u ; gtId < 4u ; gtId++) {
805807 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 });
807809 drm->addMockedQueryTopologyData (gtId, DRM_XE_TOPO_EU_PER_DSS, 8 , {0b1111'1111 , 0 , 0 , 0 , 0 , 0 , 0 , 0 });
808810 }
809811
810812 DrmQueryTopologyData topologyData{};
811813 TopologyMap topologyMap{};
812814
815+ hwInfo.gtSystemInfo .MaxSlicesSupported = 4u ;
813816 hwInfo.gtSystemInfo .MaxSubSlicesSupported = 32u ;
814817 auto result = xeIoctlHelper->getTopologyDataAndMap (hwInfo, topologyData, topologyMap);
815818 ASSERT_TRUE (result);
816819
817820 // 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 );
820823
821- EXPECT_EQ (32 , topologyData.subSliceCount );
822- EXPECT_EQ (32 , topologyData.maxSubSlicesPerSlice );
824+ EXPECT_EQ (20 , topologyData.subSliceCount );
825+ EXPECT_EQ (8 , topologyData.maxSubSlicesPerSlice );
823826
824- EXPECT_EQ (256 , topologyData.euCount );
827+ EXPECT_EQ (160 , topologyData.euCount );
825828 EXPECT_EQ (8 , topologyData.maxEusPerSubSlice );
826829
827830 // verify topology map
828- std::vector<int > expectedSliceIndices = {0 };
831+ std::vector<int > expectedSliceIndices = {0 , 1 , 3 };
829832 ASSERT_EQ (expectedSliceIndices.size (), topologyMap[tileId].sliceIndices .size ());
830833 ASSERT_TRUE (topologyMap[tileId].sliceIndices .size () > 0 );
831834
832835 for (auto i = 0u ; i < expectedSliceIndices.size (); i++) {
833836 EXPECT_EQ (expectedSliceIndices[i], topologyMap[tileId].sliceIndices [i]);
834837 }
835838
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 ());
848840}
849841
850842TEST (IoctlHelperXeTest, givenOnlyMediaTypeWhenGetTopologyDataAndMapThenSubsliceIndicesNotSet) {
@@ -881,10 +873,10 @@ TEST(IoctlHelperXeTest, givenOnlyMediaTypeWhenGetTopologyDataAndMapThenSubsliceI
881873
882874 // verify topology data
883875 EXPECT_EQ (0 , topologyData.sliceCount );
884- EXPECT_EQ (0 , topologyData.maxSlices );
876+ EXPECT_EQ (static_cast < int >(hwInfo. gtSystemInfo . MaxSlicesSupported ) , topologyData.maxSlices );
885877
886878 EXPECT_EQ (0 , topologyData.subSliceCount );
887- EXPECT_EQ (0 , topologyData.maxSubSlicesPerSlice );
879+ EXPECT_EQ (static_cast < int >(hwInfo. gtSystemInfo . MaxSubSlicesSupported / topologyData. maxSlices ) , topologyData.maxSubSlicesPerSlice );
888880
889881 EXPECT_EQ (0 , topologyData.euCount );
890882 EXPECT_EQ (0 , topologyData.maxEusPerSubSlice );
@@ -951,6 +943,7 @@ TEST(IoctlHelperXeTest, givenMainAndMediaTypesWhenGetTopologyDataAndMapThenResul
951943 DrmQueryTopologyData topologyData{};
952944 TopologyMap topologyMap{};
953945
946+ hwInfo.gtSystemInfo .MaxSlicesSupported = 1 ;
954947 hwInfo.gtSystemInfo .MaxSubSlicesSupported = 64 ;
955948
956949 auto result = xeIoctlHelper->getTopologyDataAndMap (hwInfo, topologyData, topologyMap);
@@ -990,6 +983,7 @@ TEST(IoctlHelperXeTest, given2TileAndComputeDssWhenGetTopologyDataAndMapThenResu
990983 DrmQueryTopologyData topologyData{};
991984 TopologyMap topologyMap{};
992985
986+ hwInfo.gtSystemInfo .MaxSlicesSupported = 1 ;
993987 hwInfo.gtSystemInfo .MaxSubSlicesSupported = 64 ;
994988 auto result = xeIoctlHelper->getTopologyDataAndMap (hwInfo, topologyData, topologyMap);
995989 ASSERT_TRUE (result);
@@ -1051,6 +1045,7 @@ TEST(IoctlHelperXeTest, given2TileWithDisabledDssOn1TileAndComputeDssWhenGetTopo
10511045 DrmQueryTopologyData topologyData{};
10521046 TopologyMap topologyMap{};
10531047
1048+ hwInfo.gtSystemInfo .MaxSlicesSupported = 1 ;
10541049 hwInfo.gtSystemInfo .MaxSubSlicesSupported = 64 ;
10551050 auto result = xeIoctlHelper->getTopologyDataAndMap (hwInfo, topologyData, topologyMap);
10561051 ASSERT_TRUE (result);
@@ -1117,6 +1112,7 @@ TEST(IoctlHelperXeTest, given2TileWithDisabledEvenDssAndComputeDssWhenGetTopolog
11171112 DrmQueryTopologyData topologyData{};
11181113 TopologyMap topologyMap{};
11191114
1115+ hwInfo.gtSystemInfo .MaxSlicesSupported = 1 ;
11201116 hwInfo.gtSystemInfo .MaxSubSlicesSupported = 64 ;
11211117 auto result = xeIoctlHelper->getTopologyDataAndMap (hwInfo, topologyData, topologyMap);
11221118 ASSERT_TRUE (result);
@@ -1126,7 +1122,7 @@ TEST(IoctlHelperXeTest, given2TileWithDisabledEvenDssAndComputeDssWhenGetTopolog
11261122 EXPECT_EQ (1 , topologyData.maxSlices );
11271123
11281124 EXPECT_EQ (32 , topologyData.subSliceCount );
1129- EXPECT_EQ (32 , topologyData.maxSubSlicesPerSlice );
1125+ EXPECT_EQ (64 , topologyData.maxSubSlicesPerSlice );
11301126
11311127 EXPECT_EQ (256 , topologyData.euCount );
11321128 EXPECT_EQ (8 , topologyData.maxEusPerSubSlice );
@@ -1207,7 +1203,8 @@ TEST(IoctlHelperXeTest, givenMissingEuPerDssInTopologyWhenGetTopologyDataAndMapT
12071203 drm->addMockedQueryTopologyData (tileIdToGtId[tileId], DRM_XE_TOPO_DSS_GEOMETRY, 8 , {0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 });
12081204 drm->addMockedQueryTopologyData (tileIdToGtId[tileId], DRM_XE_TOPO_DSS_COMPUTE, 8 , {0b1111'1111 , 0b1111'1111 , 0 , 0 , 0 , 0 , 0 , 0 });
12091205 }
1210- hwInfo.gtSystemInfo .MaxSubSlicesSupported = 64 ;
1206+ hwInfo.gtSystemInfo .MaxSlicesSupported = 1 ;
1207+ hwInfo.gtSystemInfo .MaxSubSlicesSupported = 16 ;
12111208 auto result = xeIoctlHelper->getTopologyDataAndMap (hwInfo, topologyData, topologyMap);
12121209 EXPECT_TRUE (result);
12131210
0 commit comments