@@ -936,8 +936,24 @@ void RefreshTopFreq(TGrid *grid, DATA_TYPE data)
936936 struct FLIP_FLOP *CFlop = &RO(Shm)->Cpu[top].FlipFlop[
937937 !RO(Shm)->Cpu[top].Toggle
938938 ];
939- RefreshItemFreq(grid, ratio,
940- ABS_FREQ_MHz(double, ratio, CFlop->Clock));
939+ RefreshItemFreq(grid, ratio, ABS_FREQ_MHz(double, ratio, CFlop->Clock));
940+ }
941+
942+ void RefreshHybridFreq(TGrid *grid, DATA_TYPE data)
943+ {
944+ enum RATIO_BOOST boost = data.uint[0];
945+ unsigned int ratio = RO(Shm)->Cpu[
946+ RO(Shm)->Proc.Service.Hybrid
947+ ].Boost[boost];
948+
949+ struct FLIP_FLOP *CFlop = &RO(Shm)->Cpu[
950+ RO(Shm)->Proc.Service.Hybrid
951+ ].FlipFlop[
952+ !RO(Shm)->Cpu[
953+ RO(Shm)->Proc.Service.Hybrid
954+ ].Toggle
955+ ];
956+ RefreshItemFreq(grid, ratio, ABS_FREQ_MHz(double, ratio, CFlop->Clock));
941957}
942958
943959void RefreshConfigTDP(TGrid *grid, DATA_TYPE data)
@@ -1183,7 +1199,7 @@ REASON_CODE SysInfoProc(Window *win, CUINT width, CELL_FUNC OutFunc)
11831199 }
11841200 PUT( SCANKEY_NULL, attrib[RO(Shm)->Proc.Features.Turbo_Unlock],
11851201 width, 2, "%s%.*s[%7.*s]", RSC(BOOST).CODE(),
1186- width - 23 , hSpace, 6,
1202+ width - 12 - RSZ(BOOST) , hSpace, 6,
11871203 RO(Shm)->Proc.Features.Turbo_Unlock ?
11881204 RSC(UNLOCK).CODE() : RSC(LOCK).CODE() );
11891205
@@ -1248,6 +1264,37 @@ REASON_CODE SysInfoProc(Window *win, CUINT width, CELL_FUNC OutFunc)
12481264 width, OutFunc, attrib[3] ),
12491265 RefreshTopFreq, boost );
12501266 }
1267+ if (RO(Shm)->Proc.Features.ExtFeature.EDX.Hybrid == 1)
1268+ {
1269+ PUT( SCANKEY_NULL, attrib[RO(Shm)->Proc.Features.Turbo_Unlock],
1270+ width, 2, "%s%.*s[%7.*s]", RSC(HYBRID).CODE(),
1271+ width - 12 - RSZ(HYBRID), hSpace, 6,
1272+ RO(Shm)->Proc.Features.Turbo_Unlock ?
1273+ RSC(UNLOCK).CODE() : RSC(LOCK).CODE() );
1274+
1275+ for(boost = BOOST(1C), activeCores = 1;
1276+ boost > BOOST(1C)-(enum RATIO_BOOST)RO(Shm)->Proc.Features.SpecTurboRatio;
1277+ boost--, activeCores++)
1278+ {
1279+ CLOCK_ARG clockMod={.NC=BOXKEY_TURBO_CLOCK_NC | activeCores,.Offset=0};
1280+ char pfx[10+1+1];
1281+ StrFormat(pfx, 10+1+1, "%2uC", activeCores);
1282+
1283+ CFlop = &RO(Shm)->Cpu[
1284+ RO(Shm)->Proc.Service.Hybrid
1285+ ].FlipFlop[
1286+ !RO(Shm)->Cpu[RO(Shm)->Proc.Service.Hybrid].Toggle
1287+ ];
1288+
1289+ GridCall( PrintRatioFreq(win, CFlop,
1290+ 0, pfx, &RO(Shm)->Cpu[
1291+ RO(Shm)->Proc.Service.Hybrid
1292+ ].Boost[boost],
1293+ 1, clockMod.ullong,
1294+ width, OutFunc, attrib[3] ),
1295+ RefreshHybridFreq, boost );
1296+ }
1297+ }
12511298
12521299 PUT( SCANKEY_NULL, attrib[RO(Shm)->Proc.Features.Uncore_Unlock],
12531300 width, 2, "%s%.*s[%7.*s]", RSC(UNCORE).CODE(),
0 commit comments