GameSettings: Add trait for sw-renderer-for-readbacks

This commit is contained in:
Connor McLaughlin 2021-05-19 14:22:19 +10:00
parent 5d877250e9
commit a6d76e787f
3 changed files with 9 additions and 1 deletions

View file

@ -133,7 +133,7 @@ private:
enum : u32 enum : u32
{ {
GAME_LIST_CACHE_SIGNATURE = 0x45434C47, GAME_LIST_CACHE_SIGNATURE = 0x45434C47,
GAME_LIST_CACHE_VERSION = 29 GAME_LIST_CACHE_VERSION = 30
}; };
using CacheMap = std::unordered_map<std::string, GameListEntry>; using CacheMap = std::unordered_map<std::string, GameListEntry>;

View file

@ -21,6 +21,7 @@ namespace GameSettings {
std::array<std::pair<const char*, const char*>, static_cast<u32>(Trait::Count)> s_trait_names = {{ std::array<std::pair<const char*, const char*>, static_cast<u32>(Trait::Count)> s_trait_names = {{
{"ForceInterpreter", TRANSLATABLE("GameSettingsTrait", "Force Interpreter")}, {"ForceInterpreter", TRANSLATABLE("GameSettingsTrait", "Force Interpreter")},
{"ForceSoftwareRenderer", TRANSLATABLE("GameSettingsTrait", "Force Software Renderer")}, {"ForceSoftwareRenderer", TRANSLATABLE("GameSettingsTrait", "Force Software Renderer")},
{"ForceSoftwareRendererForReadbacks", TRANSLATABLE("GameSettingsTrait", "Force Software Renderer For Readbacks")},
{"ForceInterlacing", TRANSLATABLE("GameSettingsTrait", "Force Interlacing")}, {"ForceInterlacing", TRANSLATABLE("GameSettingsTrait", "Force Interlacing")},
{"DisableTrueColor", TRANSLATABLE("GameSettingsTrait", "Disable True Color")}, {"DisableTrueColor", TRANSLATABLE("GameSettingsTrait", "Disable True Color")},
{"DisableUpscaling", TRANSLATABLE("GameSettingsTrait", "Disable Upscaling")}, {"DisableUpscaling", TRANSLATABLE("GameSettingsTrait", "Disable Upscaling")},
@ -1345,6 +1346,12 @@ void Entry::ApplySettings(bool display_osd_messages) const
g_settings.gpu_pgxp_depth_buffer = false; g_settings.gpu_pgxp_depth_buffer = false;
} }
if (HasTrait(Trait::ForceSoftwareRenderer))
{
Log_WarningPrint("Using software renderer for readbacks.");
g_settings.gpu_renderer = GPURenderer::Software;
}
if (HasTrait(Trait::ForceRecompilerMemoryExceptions)) if (HasTrait(Trait::ForceRecompilerMemoryExceptions))
{ {
Log_WarningPrint("Memory exceptions for recompiler forced by game settings."); Log_WarningPrint("Memory exceptions for recompiler forced by game settings.");

View file

@ -13,6 +13,7 @@ enum class Trait : u32
{ {
ForceInterpreter, ForceInterpreter,
ForceSoftwareRenderer, ForceSoftwareRenderer,
ForceSoftwareRendererForReadbacks,
ForceInterlacing, ForceInterlacing,
DisableTrueColor, DisableTrueColor,
DisableUpscaling, DisableUpscaling,