GUI: make multi-threading options visible

This commit is contained in:
tildearrow 2024-07-02 17:34:56 -05:00
parent 18a3a34427
commit 394a2b5442
3 changed files with 25 additions and 40 deletions

View file

@ -498,10 +498,6 @@ void FurnaceGUI::drawExport() {
e->song.linearPitch=1;
ImGui::CloseCurrentPopup();
}
if (ImGui::Button(_("Enable multi-threading settings"))) {
settings.showPool=1;
ImGui::CloseCurrentPopup();
}
if (ImGui::Button(_("Set fat to max"))) {
ImGuiStyle& sty=ImGui::GetStyle();
sty.FramePadding=ImVec2(20.0f*dpiScale,20.0f*dpiScale);

View file

@ -1916,7 +1916,6 @@ class FurnaceGUI {
int wasapiEx;
int chanOscThreads;
int renderPoolThreads;
int showPool;
int writeInsNames;
int readInsNames;
int fontBackend;
@ -2172,7 +2171,6 @@ class FurnaceGUI {
wasapiEx(0),
chanOscThreads(0),
renderPoolThreads(0),
showPool(0),
writeInsNames(0),
readInsNames(1),
fontBackend(1),

View file

@ -1403,38 +1403,36 @@ void FurnaceGUI::drawSettings() {
ImGui::EndTable();
}
if (settings.showPool) {
bool renderPoolThreadsB=(settings.renderPoolThreads>0);
if (ImGui::Checkbox(_("Multi-threaded (EXPERIMENTAL)"),&renderPoolThreadsB)) {
if (renderPoolThreadsB) {
settings.renderPoolThreads=2;
} else {
settings.renderPoolThreads=0;
}
bool renderPoolThreadsB=(settings.renderPoolThreads>0);
if (ImGui::Checkbox(_("Multi-threaded (EXPERIMENTAL)"),&renderPoolThreadsB)) {
if (renderPoolThreadsB) {
settings.renderPoolThreads=2;
} else {
settings.renderPoolThreads=0;
}
settingsChanged=true;
}
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip(_("runs chip emulation on separate threads.\nmay increase performance when using heavy emulation cores.\n\nwarnings:\n- experimental!\n- only useful on multi-chip songs."));
}
if (renderPoolThreadsB) {
pushWarningColor(settings.renderPoolThreads>cpuCores,settings.renderPoolThreads>cpuCores);
if (ImGui::InputInt(_("Number of threads"),&settings.renderPoolThreads)) {
if (settings.renderPoolThreads<2) settings.renderPoolThreads=2;
if (settings.renderPoolThreads>32) settings.renderPoolThreads=32;
settingsChanged=true;
}
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip(_("runs chip emulation on separate threads.\nmay increase performance when using heavy emulation cores.\n\nwarnings:\n- experimental!\n- only useful on multi-chip songs."));
}
if (renderPoolThreadsB) {
pushWarningColor(settings.renderPoolThreads>cpuCores,settings.renderPoolThreads>cpuCores);
if (ImGui::InputInt(_("Number of threads"),&settings.renderPoolThreads)) {
if (settings.renderPoolThreads<2) settings.renderPoolThreads=2;
if (settings.renderPoolThreads>32) settings.renderPoolThreads=32;
settingsChanged=true;
if (settings.renderPoolThreads>=DIV_MAX_CHIPS) {
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip(_("that's the limit!"));
}
if (settings.renderPoolThreads>=DIV_MAX_CHIPS) {
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip(_("that's the limit!"));
}
} else if (settings.renderPoolThreads>cpuCores) {
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip(_("it is a VERY bad idea to set this number higher than your CPU core count (%d)!"),cpuCores);
}
} else if (settings.renderPoolThreads>cpuCores) {
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip(_("it is a VERY bad idea to set this number higher than your CPU core count (%d)!"),cpuCores);
}
popWarningColor();
}
popWarningColor();
}
bool lowLatencyB=settings.lowLatency;
@ -4565,10 +4563,6 @@ void FurnaceGUI::drawSettings() {
mmlString[30]=_("OK, if I bring your Partial pitch linearity will you stop bothering me?");
settings.displayPartial=1;
}
if (checker==0x8537719f && checker1==0x17a1f34) {
mmlString[30]=_("unlocked audio multi-threading options!");
settings.showPool=1;
}
if (checker==0x94222d83 && checker1==0x6600) {
mmlString[30]=_("enabled \"comfortable\" mode");
ImGuiStyle& sty=ImGui::GetStyle();
@ -4689,7 +4683,6 @@ void FurnaceGUI::readConfig(DivConfig& conf, FurnaceGUISettingGroups groups) {
settings.chanOscThreads=conf.getInt("chanOscThreads",0);
settings.renderPoolThreads=conf.getInt("renderPoolThreads",0);
settings.shaderOsc=conf.getInt("shaderOsc",0);
settings.showPool=conf.getInt("showPool",0);
settings.writeInsNames=conf.getInt("writeInsNames",0);
settings.readInsNames=conf.getInt("readInsNames",1);
settings.defaultAuthorName=conf.getString("defaultAuthorName","");
@ -5203,7 +5196,6 @@ void FurnaceGUI::readConfig(DivConfig& conf, FurnaceGUISettingGroups groups) {
clampSetting(settings.wasapiEx,0,1);
clampSetting(settings.chanOscThreads,0,256);
clampSetting(settings.renderPoolThreads,0,DIV_MAX_CHIPS);
clampSetting(settings.showPool,0,1);
clampSetting(settings.writeInsNames,0,1);
clampSetting(settings.readInsNames,0,1);
clampSetting(settings.fontBackend,0,1);
@ -5273,7 +5265,6 @@ void FurnaceGUI::writeConfig(DivConfig& conf, FurnaceGUISettingGroups groups) {
conf.set("chanOscThreads",settings.chanOscThreads);
conf.set("renderPoolThreads",settings.renderPoolThreads);
conf.set("shaderOsc",settings.shaderOsc);
conf.set("showPool",settings.showPool);
conf.set("writeInsNames",settings.writeInsNames);
conf.set("readInsNames",settings.readInsNames);
conf.set("defaultAuthorName",settings.defaultAuthorName);