@@ -936,8 +936,24 @@ void RefreshTopFreq(TGrid *grid, DATA_TYPE data)
936
936
struct FLIP_FLOP *CFlop = &RO(Shm)->Cpu[top].FlipFlop[
937
937
!RO(Shm)->Cpu[top].Toggle
938
938
];
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));
941
957
}
942
958
943
959
void RefreshConfigTDP(TGrid *grid, DATA_TYPE data)
@@ -1183,7 +1199,7 @@ REASON_CODE SysInfoProc(Window *win, CUINT width, CELL_FUNC OutFunc)
1183
1199
}
1184
1200
PUT( SCANKEY_NULL, attrib[RO(Shm)->Proc.Features.Turbo_Unlock],
1185
1201
width, 2, "%s%.*s[%7.*s]", RSC(BOOST).CODE(),
1186
- width - 23 , hSpace, 6,
1202
+ width - 12 - RSZ(BOOST) , hSpace, 6,
1187
1203
RO(Shm)->Proc.Features.Turbo_Unlock ?
1188
1204
RSC(UNLOCK).CODE() : RSC(LOCK).CODE() );
1189
1205
@@ -1248,6 +1264,37 @@ REASON_CODE SysInfoProc(Window *win, CUINT width, CELL_FUNC OutFunc)
1248
1264
width, OutFunc, attrib[3] ),
1249
1265
RefreshTopFreq, boost );
1250
1266
}
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
+ }
1251
1298
1252
1299
PUT( SCANKEY_NULL, attrib[RO(Shm)->Proc.Features.Uncore_Unlock],
1253
1300
width, 2, "%s%.*s[%7.*s]", RSC(UNCORE).CODE(),
0 commit comments