From 319b3dabdf67b1d1ee273ce4dcf79d60705a2ad3 Mon Sep 17 00:00:00 2001 From: Akash <ssj2akash@gmail.com> Date: Mon, 13 Feb 2017 17:22:51 +0530 Subject: [PATCH] GSdx-Windows: Automatic CRC hack level selection Default to "Partial" CRC hack level when the GPU's best renderer is determined as the OpenGL hardware renderer. --- plugins/GSdx/GS.cpp | 4 ++++ plugins/GSdx/GSSettingsDlg.cpp | 13 ++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/plugins/GSdx/GS.cpp b/plugins/GSdx/GS.cpp index 13d9104688..1dd7492efe 100644 --- a/plugins/GSdx/GS.cpp +++ b/plugins/GSdx/GS.cpp @@ -523,7 +523,11 @@ EXPORT_C_(int) GSopen2(void** dsp, uint32 flags) renderer = static_cast<GSRendererType>(theApp.GetConfigI("Renderer")); #ifdef _WIN32 if (renderer == GSRendererType::Default) + { renderer = GSUtil::GetBestRenderer(); + if (renderer == GSRendererType::OGL_HW) + theApp.SetConfig("crc_hack_level", static_cast<int>(CRCHackLevel::Partial)); + } #endif } else if (stored_toggle_state != toggle_state) diff --git a/plugins/GSdx/GSSettingsDlg.cpp b/plugins/GSdx/GSSettingsDlg.cpp index 848a25593f..73b2805029 100644 --- a/plugins/GSdx/GSSettingsDlg.cpp +++ b/plugins/GSdx/GSSettingsDlg.cpp @@ -360,7 +360,18 @@ void GSSettingsDlg::UpdateRenderers() else { GSRendererType ini_renderer = GSRendererType(theApp.GetConfigI("Renderer")); - renderer_setting = (ini_renderer == GSRendererType::Undefined) ? GSUtil::GetBestRenderer() : ini_renderer; + + if (ini_renderer == GSRendererType::Undefined) + { + renderer_setting = GSUtil::GetBestRenderer(); + + if(renderer_setting == GSRendererType::OGL_HW) + theApp.SetConfig("crc_hack_level", static_cast<int>(CRCHackLevel::Partial)); + } + else + { + renderer_setting = ini_renderer; + } } GSRendererType renderer_sel = GSRendererType::Default;