[Fix] (settings): better multidraw emulation mode check

This commit is contained in:
Swung0x48 2025-04-04 22:33:19 +08:00
parent 29349374ca
commit f3e9fb7eb3

View File

@ -172,16 +172,19 @@ void init_settings_post() {
if (indirect) { if (indirect) {
global_settings.multidraw_mode = multidraw_mode_t::PreferIndirect; global_settings.multidraw_mode = multidraw_mode_t::PreferIndirect;
LOG_V(" -> Indirect (OK)") LOG_V(" -> Indirect (OK)")
} else if (basevertex) {
global_settings.multidraw_mode = multidraw_mode_t::PreferBaseVertex;
LOG_V(" -> BaseVertex (Preferred not supported, falling back)")
} else { } else {
global_settings.multidraw_mode = multidraw_mode_t::DrawElements; global_settings.multidraw_mode = multidraw_mode_t::DrawElements;
LOG_V(" -> DrawElements (Preferred not supported, falling back)") LOG_V(" -> DrawElements (Preferred not supported, falling back)")
} }
break; break;
case multidraw_mode_t::PreferBaseVertex: case multidraw_mode_t::PreferBaseVertex:
LOG_V("multidrawMode = PreferUnroll") LOG_V("multidrawMode = PreferBaseVertex")
if (basevertex) { if (basevertex) {
global_settings.multidraw_mode = multidraw_mode_t::PreferBaseVertex; global_settings.multidraw_mode = multidraw_mode_t::PreferBaseVertex;
LOG_V(" -> Unroll (OK)") LOG_V(" -> BaseVertex (OK)")
} else if (multidraw) { } else if (multidraw) {
global_settings.multidraw_mode = multidraw_mode_t::PreferMultidrawIndirect; global_settings.multidraw_mode = multidraw_mode_t::PreferMultidrawIndirect;
LOG_V(" -> MultidrawIndirect (Preferred not supported, falling back)") LOG_V(" -> MultidrawIndirect (Preferred not supported, falling back)")
@ -202,13 +205,16 @@ void init_settings_post() {
LOG_V("multidrawMode = Auto") LOG_V("multidrawMode = Auto")
if (multidraw) { if (multidraw) {
global_settings.multidraw_mode = multidraw_mode_t::PreferMultidrawIndirect; global_settings.multidraw_mode = multidraw_mode_t::PreferMultidrawIndirect;
LOG_V(" -> MultidrawIndirect") LOG_V(" -> MultidrawIndirect (Auto detected)")
} else if (indirect) { } else if (indirect) {
global_settings.multidraw_mode = multidraw_mode_t::PreferIndirect; 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 { } else {
global_settings.multidraw_mode = multidraw_mode_t::DrawElements; global_settings.multidraw_mode = multidraw_mode_t::DrawElements;
LOG_V(" -> DrawElements (Preferred not supported, falling back)") LOG_V(" -> DrawElements (Auto detected)")
} }
break; break;
} }