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

View file

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