@@ -662,7 +662,7 @@ TEST(DeviceGetCaps, givenDeviceThatDoesHaveFp64WhenDbgFlagDisablesFp64ThenDontRe
662662 EXPECT_NE (notExpectedSingleFp, actualSingleFp);
663663}
664664
665- TEST (Device_GetCaps , givenOclVersionLessThan21WhenCapsAreCreatedThenDeviceReportsNoSupportedIlVersions) {
665+ TEST (DeviceGetCaps , givenOclVersionLessThan21WhenCapsAreCreatedThenDeviceReportsNoSupportedIlVersions) {
666666 DebugManagerStateRestore dbgRestorer;
667667 {
668668 DebugManager.flags .ForceOCLVersion .set (12 );
@@ -673,7 +673,7 @@ TEST(Device_GetCaps, givenOclVersionLessThan21WhenCapsAreCreatedThenDeviceReport
673673 }
674674}
675675
676- TEST (Device_GetCaps , givenOclVersion21WhenCapsAreCreatedThenDeviceReportsSpirvAsSupportedIl) {
676+ TEST (DeviceGetCaps , givenOclVersion21WhenCapsAreCreatedThenDeviceReportsSpirvAsSupportedIl) {
677677 DebugManagerStateRestore dbgRestorer;
678678 {
679679 DebugManager.flags .ForceOCLVersion .set (21 );
@@ -684,7 +684,7 @@ TEST(Device_GetCaps, givenOclVersion21WhenCapsAreCreatedThenDeviceReportsSpirvAs
684684 }
685685}
686686
687- TEST (Device_GetCaps , givenDisabledFtrPooledEuWhenCalculatingMaxEuPerSSThenIgnoreEuCountPerPoolMin) {
687+ TEST (DeviceGetCaps , givenDisabledFtrPooledEuWhenCalculatingMaxEuPerSSThenIgnoreEuCountPerPoolMin) {
688688 GT_SYSTEM_INFO mySysInfo = *platformDevices[0 ]->pSysInfo ;
689689 FeatureTable mySkuTable = *platformDevices[0 ]->pSkuTable ;
690690 HardwareInfo myHwInfo = {platformDevices[0 ]->pPlatform , &mySkuTable, platformDevices[0 ]->pWaTable ,
@@ -698,12 +698,12 @@ TEST(Device_GetCaps, givenDisabledFtrPooledEuWhenCalculatingMaxEuPerSSThenIgnore
698698
699699 auto expectedMaxWGS = (mySysInfo.EUCount / mySysInfo.SubSliceCount ) *
700700 (mySysInfo.ThreadCount / mySysInfo.EUCount ) * 8 ;
701- expectedMaxWGS = std::min (Math::prevPowerOfTwo (expectedMaxWGS), 256u );
701+ expectedMaxWGS = std::min (Math::prevPowerOfTwo (expectedMaxWGS), 1024u );
702702
703703 EXPECT_EQ (expectedMaxWGS, device->getDeviceInfo ().maxWorkGroupSize );
704704}
705705
706- TEST (Device_GetCaps , givenEnabledFtrPooledEuWhenCalculatingMaxEuPerSSThenDontIgnoreEuCountPerPoolMin) {
706+ TEST (DeviceGetCaps , givenEnabledFtrPooledEuWhenCalculatingMaxEuPerSSThenDontIgnoreEuCountPerPoolMin) {
707707 GT_SYSTEM_INFO mySysInfo = *platformDevices[0 ]->pSysInfo ;
708708 FeatureTable mySkuTable = *platformDevices[0 ]->pSkuTable ;
709709 HardwareInfo myHwInfo = {platformDevices[0 ]->pPlatform , &mySkuTable, platformDevices[0 ]->pWaTable ,
@@ -716,12 +716,12 @@ TEST(Device_GetCaps, givenEnabledFtrPooledEuWhenCalculatingMaxEuPerSSThenDontIgn
716716 auto device = std::unique_ptr<Device>(MockDevice::createWithNewExecutionEnvironment<MockDevice>(&myHwInfo));
717717
718718 auto expectedMaxWGS = mySysInfo.EuCountPerPoolMin * (mySysInfo.ThreadCount / mySysInfo.EUCount ) * 8 ;
719- expectedMaxWGS = std::min (Math::prevPowerOfTwo (expectedMaxWGS), 256u );
719+ expectedMaxWGS = std::min (Math::prevPowerOfTwo (expectedMaxWGS), 1024u );
720720
721721 EXPECT_EQ (expectedMaxWGS, device->getDeviceInfo ().maxWorkGroupSize );
722722}
723723
724- TEST (Device_GetCaps , givenDebugFlagToUseMaxSimdSizeForWkgCalculationWhenDeviceCapsAreCreatedThen1024WorkgroupSizeIsReturned) {
724+ TEST (DeviceGetCaps , givenDebugFlagToUseMaxSimdSizeForWkgCalculationWhenDeviceCapsAreCreatedThen1024WorkgroupSizeIsReturned) {
725725 DebugManagerStateRestore dbgRestorer;
726726 DebugManager.flags .UseMaxSimdSizeToDeduceMaxWorkgroupSize .set (true );
727727
@@ -739,6 +739,21 @@ TEST(Device_GetCaps, givenDebugFlagToUseMaxSimdSizeForWkgCalculationWhenDeviceCa
739739 EXPECT_EQ (device->getDeviceInfo ().maxWorkGroupSize / 32 , device->getDeviceInfo ().maxNumOfSubGroups );
740740}
741741
742+ TEST (DeviceGetCaps, givenDeviceThatHasHighNumberOfExecutionUnitsWhenMaxWorkgroupSizeIsComputedItIsLimitedTo1024) {
743+ GT_SYSTEM_INFO mySysInfo = *platformDevices[0 ]->pSysInfo ;
744+ FeatureTable mySkuTable = *platformDevices[0 ]->pSkuTable ;
745+ HardwareInfo myHwInfo = {platformDevices[0 ]->pPlatform , &mySkuTable, platformDevices[0 ]->pWaTable ,
746+ &mySysInfo, platformDevices[0 ]->capabilityTable };
747+
748+ mySysInfo.EUCount = 32 ;
749+ mySysInfo.SubSliceCount = 2 ;
750+ mySysInfo.ThreadCount = 32 * 8 ; // 128 threads per subslice, in simd 8 gives 1024
751+ auto device = std::unique_ptr<Device>(MockDevice::createWithNewExecutionEnvironment<MockDevice>(&myHwInfo));
752+
753+ EXPECT_EQ (1024u , device->getDeviceInfo ().maxWorkGroupSize );
754+ EXPECT_EQ (device->getDeviceInfo ().maxWorkGroupSize / 8 , device->getDeviceInfo ().maxNumOfSubGroups );
755+ }
756+
742757class DriverInfoMock : public DriverInfo {
743758 public:
744759 DriverInfoMock (){};
0 commit comments