GUI: disable late render clear on Metal

fixes a crash
This commit is contained in:
tildearrow 2024-04-22 14:11:01 -05:00
parent 7672a40f19
commit 9edbd57947
2 changed files with 11 additions and 9 deletions

View file

@ -6455,7 +6455,7 @@ bool FurnaceGUI::loop() {
}
}
if (!settings.renderClearPos) {
if (!settings.renderClearPos || renderBackend==GUI_BACKEND_METAL) {
rend->clear(uiColors[GUI_COLOR_BACKGROUND]);
}
renderTimeBegin=SDL_GetPerformanceCounter();
@ -6496,7 +6496,7 @@ bool FurnaceGUI::loop() {
}
}
rend->present();
if (settings.renderClearPos) {
if (settings.renderClearPos && renderBackend!=GUI_BACKEND_METAL) {
rend->clear(uiColors[GUI_COLOR_BACKGROUND]);
}
swapTimeEnd=SDL_GetPerformanceCounter();

View file

@ -488,13 +488,15 @@ void FurnaceGUI::drawSettings() {
settingsChanged=true;
}
bool renderClearPosB=settings.renderClearPos;
if (ImGui::Checkbox("Late render clear",&renderClearPosB)) {
settings.renderClearPos=renderClearPosB;
settingsChanged=true;
}
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("calls rend->clear() after rend->present(). might reduce UI latency by one frame in some drivers.");
if (settings.renderBackend!=GUI_BACKEND_METAL) {
bool renderClearPosB=settings.renderClearPos;
if (ImGui::Checkbox("Late render clear",&renderClearPosB)) {
settings.renderClearPos=renderClearPosB;
settingsChanged=true;
}
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("calls rend->clear() after rend->present(). might reduce UI latency by one frame in some drivers.");
}
}
bool powerSaveB=settings.powerSave;