2022-12-19 22:47:10 +01:00
|
|
|
using CommonHelpers;
|
|
|
|
|
using PowerControl.Helpers;
|
|
|
|
|
|
|
|
|
|
namespace PowerControl.Options
|
|
|
|
|
{
|
|
|
|
|
public static class SMT
|
|
|
|
|
{
|
|
|
|
|
public static Menu.MenuItemWithOptions Instance = new Menu.MenuItemWithOptions()
|
|
|
|
|
{
|
|
|
|
|
Name = "SMT",
|
2023-01-05 23:52:23 +01:00
|
|
|
PersistentKey = "SMT",
|
2022-12-19 22:47:10 +01:00
|
|
|
ApplyDelay = 500,
|
|
|
|
|
Options = { "No", "Yes" },
|
|
|
|
|
ResetValue = () => { return "Yes"; },
|
|
|
|
|
CurrentValue = delegate ()
|
|
|
|
|
{
|
|
|
|
|
if (!RTSS.IsOSDForeground(out var processId))
|
|
|
|
|
return null;
|
|
|
|
|
if (!ProcessorCores.HasSMTThreads())
|
|
|
|
|
return null;
|
|
|
|
|
|
2022-12-19 22:52:23 +01:00
|
|
|
return ProcessorCores.IsUsingSMT(processId) ? "Yes" : "No";
|
2022-12-19 22:47:10 +01:00
|
|
|
},
|
2022-12-19 23:36:22 +01:00
|
|
|
ApplyValue = (selected) =>
|
2022-12-19 22:47:10 +01:00
|
|
|
{
|
|
|
|
|
if (!RTSS.IsOSDForeground(out var processId))
|
|
|
|
|
return null;
|
|
|
|
|
if (!ProcessorCores.HasSMTThreads())
|
|
|
|
|
return null;
|
|
|
|
|
|
2022-12-19 22:52:23 +01:00
|
|
|
ProcessorCores.SetProcessSMT(processId, selected.ToString() == "Yes");
|
2022-12-19 22:47:10 +01:00
|
|
|
|
2022-12-19 22:52:23 +01:00
|
|
|
return ProcessorCores.IsUsingSMT(processId) ? "Yes" : "No";
|
2022-12-19 22:47:10 +01:00
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
}
|