From f3e9fb7eb30d454c6b1916e620e5d90ffc6f2eb4 Mon Sep 17 00:00:00 2001 From: Swung0x48 Date: Fri, 4 Apr 2025 22:33:19 +0800 Subject: [PATCH] [Fix] (settings): better multidraw emulation mode check --- src/main/cpp/config/settings.cpp | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/main/cpp/config/settings.cpp b/src/main/cpp/config/settings.cpp index ab892f4..12db0f2 100644 --- a/src/main/cpp/config/settings.cpp +++ b/src/main/cpp/config/settings.cpp @@ -172,16 +172,19 @@ void init_settings_post() { if (indirect) { global_settings.multidraw_mode = multidraw_mode_t::PreferIndirect; LOG_V(" -> Indirect (OK)") + } else if (basevertex) { + global_settings.multidraw_mode = multidraw_mode_t::PreferBaseVertex; + LOG_V(" -> BaseVertex (Preferred not supported, falling back)") } else { global_settings.multidraw_mode = multidraw_mode_t::DrawElements; LOG_V(" -> DrawElements (Preferred not supported, falling back)") } break; case multidraw_mode_t::PreferBaseVertex: - LOG_V("multidrawMode = PreferUnroll") + LOG_V("multidrawMode = PreferBaseVertex") if (basevertex) { global_settings.multidraw_mode = multidraw_mode_t::PreferBaseVertex; - LOG_V(" -> Unroll (OK)") + LOG_V(" -> BaseVertex (OK)") } else if (multidraw) { global_settings.multidraw_mode = multidraw_mode_t::PreferMultidrawIndirect; LOG_V(" -> MultidrawIndirect (Preferred not supported, falling back)") @@ -202,13 +205,16 @@ void init_settings_post() { LOG_V("multidrawMode = Auto") if (multidraw) { global_settings.multidraw_mode = multidraw_mode_t::PreferMultidrawIndirect; - LOG_V(" -> MultidrawIndirect") + LOG_V(" -> MultidrawIndirect (Auto detected)") } else if (indirect) { global_settings.multidraw_mode = multidraw_mode_t::PreferIndirect; - LOG_V(" -> Indirect (Preferred not supported, falling back)") + LOG_V(" -> Indirect (Auto detected)") + } else if (basevertex) { + global_settings.multidraw_mode = multidraw_mode_t::PreferBaseVertex; + LOG_V(" -> BaseVertex (Auto detected)") } else { global_settings.multidraw_mode = multidraw_mode_t::DrawElements; - LOG_V(" -> DrawElements (Preferred not supported, falling back)") + LOG_V(" -> DrawElements (Auto detected)") } break; }