diff --git a/Core/Config.cpp b/Core/Config.cpp index d30008545a..a80735f6f8 100644 --- a/Core/Config.cpp +++ b/Core/Config.cpp @@ -550,7 +550,7 @@ int Config::NextValidBackend() { SplitString(sFailedGPUBackends, ',', split); for (const auto &str : split) { if (!str.empty() && str != "ALL") { - failed.insert(atoi(str.c_str())); + failed.insert((int)GPUBackendFromString(str)); } } diff --git a/Core/ConfigValues.h b/Core/ConfigValues.h index 73e5063de3..e0145d909d 100644 --- a/Core/ConfigValues.h +++ b/Core/ConfigValues.h @@ -18,6 +18,7 @@ #pragma once #include +#include const int PSP_MODEL_FAT = 0; const int PSP_MODEL_SLIM = 1; @@ -53,6 +54,33 @@ enum class GPUBackend { VULKAN = 3, }; +inline std::string GPUBackendToString(GPUBackend backend) { + switch (backend) { + case GPUBackend::OPENGL: + return "OPENGL"; + case GPUBackend::DIRECT3D9: + return "DIRECT3D9"; + case GPUBackend::DIRECT3D11: + return "DIRECT3D11"; + case GPUBackend::VULKAN: + return "VULKAN"; + } + // Intentionally not a default so we get a warning. + return "INVALID"; +} + +inline GPUBackend GPUBackendFromString(const std::string &backend) { + if (backend == "OPENGL" || backend == "0") + return GPUBackend::OPENGL; + if (backend == "DIRECT3D9" || backend == "1") + return GPUBackend::DIRECT3D9; + if (backend == "DIRECT3D11" || backend == "2") + return GPUBackend::DIRECT3D11; + if (backend == "VULKAN" || backend == "3") + return GPUBackend::VULKAN; + return GPUBackend::OPENGL; +} + enum AudioBackendType { AUDIO_BACKEND_AUTO, AUDIO_BACKEND_DSOUND, diff --git a/GPU/Debugger/Record.cpp b/GPU/Debugger/Record.cpp index 0014d5eddf..fe25ad1ba6 100644 --- a/GPU/Debugger/Record.cpp +++ b/GPU/Debugger/Record.cpp @@ -822,7 +822,7 @@ void NotifyDisplay(u32 framebuf, int stride, int fmt) { int linesize, pixelFormat; }; - DisplayBufData disp{ framebuf, stride, fmt }; + DisplayBufData disp{ { framebuf }, stride, fmt }; FlushRegisters(); u32 ptr = (u32)pushbuf.size(); diff --git a/UI/NativeApp.cpp b/UI/NativeApp.cpp index d12e1f2b9e..65ed16b406 100644 --- a/UI/NativeApp.cpp +++ b/UI/NativeApp.cpp @@ -392,9 +392,9 @@ static void CheckFailedGPUBackends() { WARN_LOG(LOADER, "Failed graphics backend switched from %d to %d", lastBackend, g_Config.iGPUBackend); // And then let's - for now - add the current to the failed list. if (g_Config.sFailedGPUBackends.empty()) { - g_Config.sFailedGPUBackends = StringFromFormat("%d", g_Config.iGPUBackend); + g_Config.sFailedGPUBackends = GPUBackendToString((GPUBackend)g_Config.iGPUBackend); } else if (g_Config.sFailedGPUBackends.find("ALL") == std::string::npos) { - g_Config.sFailedGPUBackends += StringFromFormat(",%d", g_Config.iGPUBackend); + g_Config.sFailedGPUBackends += "," + GPUBackendToString((GPUBackend)g_Config.iGPUBackend); } if (System_GetPropertyBool(SYSPROP_SUPPORTS_PERMISSIONS)) {