mirror of https://github.com/PCSX2/pcsx2.git
gui-wx: Add FidelityFX CAS support.
Add FidelityFX CAS support to wxwidgets. Rename Texture Filtering of Display to Bilinear filtering. Remove Debug box. Misc cleanup.
This commit is contained in:
parent
0a585e00e5
commit
0466114f67
|
@ -1403,6 +1403,10 @@ void GSApp::Init()
|
||||||
m_gs_tv_shaders.push_back(GSSetting(4, "Wave filter", ""));
|
m_gs_tv_shaders.push_back(GSSetting(4, "Wave filter", ""));
|
||||||
m_gs_tv_shaders.push_back(GSSetting(5, "Lottes CRT filter", ""));
|
m_gs_tv_shaders.push_back(GSSetting(5, "Lottes CRT filter", ""));
|
||||||
|
|
||||||
|
m_gs_casmode.push_back(GSSetting(static_cast<u32>(GSCASMode::Disabled), "Disabled", ""));
|
||||||
|
m_gs_casmode.push_back(GSSetting(static_cast<u32>(GSCASMode::SharpenOnly), "Sharpen Only", "Internal Resolution"));
|
||||||
|
m_gs_casmode.push_back(GSSetting(static_cast<u32>(GSCASMode::SharpenAndResize), "Sharpen And Resize", "Display Resolution"));
|
||||||
|
|
||||||
m_gs_hw_download_mode.push_back(GSSetting(static_cast<u32>(GSHardwareDownloadMode::Enabled), "Accurate", "Recommended"));
|
m_gs_hw_download_mode.push_back(GSSetting(static_cast<u32>(GSHardwareDownloadMode::Enabled), "Accurate", "Recommended"));
|
||||||
m_gs_hw_download_mode.push_back(GSSetting(static_cast<u32>(GSHardwareDownloadMode::NoReadbacks), "Disable Readbacks", "Synchronize GS Thread"));
|
m_gs_hw_download_mode.push_back(GSSetting(static_cast<u32>(GSHardwareDownloadMode::NoReadbacks), "Disable Readbacks", "Synchronize GS Thread"));
|
||||||
m_gs_hw_download_mode.push_back(GSSetting(static_cast<u32>(GSHardwareDownloadMode::Unsynchronized), "Unsynchronized", "Non-Deterministic"));
|
m_gs_hw_download_mode.push_back(GSSetting(static_cast<u32>(GSHardwareDownloadMode::Unsynchronized), "Unsynchronized", "Non-Deterministic"));
|
||||||
|
@ -1508,6 +1512,8 @@ void GSApp::Init()
|
||||||
m_default_configuration["ThreadedPresentation"] = "0";
|
m_default_configuration["ThreadedPresentation"] = "0";
|
||||||
m_default_configuration["TriFilter"] = std::to_string(static_cast<s8>(TriFiltering::Automatic));
|
m_default_configuration["TriFilter"] = std::to_string(static_cast<s8>(TriFiltering::Automatic));
|
||||||
m_default_configuration["TVShader"] = "0";
|
m_default_configuration["TVShader"] = "0";
|
||||||
|
m_default_configuration["CASMode"] = std::to_string(static_cast<u8>(GSCASMode::Disabled));
|
||||||
|
m_default_configuration["CASSharpness"] = "50";
|
||||||
m_default_configuration["upscale_multiplier"] = "1";
|
m_default_configuration["upscale_multiplier"] = "1";
|
||||||
m_default_configuration["UseBlitSwapChain"] = "0";
|
m_default_configuration["UseBlitSwapChain"] = "0";
|
||||||
m_default_configuration["UseDebugDevice"] = "0";
|
m_default_configuration["UseDebugDevice"] = "0";
|
||||||
|
|
|
@ -143,6 +143,7 @@ public:
|
||||||
std::vector<GSSetting> m_gs_crc_level;
|
std::vector<GSSetting> m_gs_crc_level;
|
||||||
std::vector<GSSetting> m_gs_acc_blend_level;
|
std::vector<GSSetting> m_gs_acc_blend_level;
|
||||||
std::vector<GSSetting> m_gs_tv_shaders;
|
std::vector<GSSetting> m_gs_tv_shaders;
|
||||||
|
std::vector<GSSetting> m_gs_casmode;
|
||||||
std::vector<GSSetting> m_gs_hw_download_mode;
|
std::vector<GSSetting> m_gs_hw_download_mode;
|
||||||
std::vector<GSSetting> m_gs_dump_compression;
|
std::vector<GSSetting> m_gs_dump_compression;
|
||||||
};
|
};
|
||||||
|
|
|
@ -462,19 +462,43 @@ PostTab::PostTab(wxWindow* parent)
|
||||||
{
|
{
|
||||||
const int space = wxSizerFlags().Border().GetBorderInPixels();
|
const int space = wxSizerFlags().Border().GetBorderInPixels();
|
||||||
PaddedBoxSizer<wxBoxSizer> tab_box(wxVERTICAL);
|
PaddedBoxSizer<wxBoxSizer> tab_box(wxVERTICAL);
|
||||||
PaddedBoxSizer<wxStaticBoxSizer> shader_box(wxVERTICAL, this, "Custom Shader");
|
PaddedBoxSizer<wxStaticBoxSizer> shader_box(wxVERTICAL, this, "Shader Options");
|
||||||
|
|
||||||
auto not_vk_prereq = [this] { return !m_is_vk_hw; };
|
|
||||||
|
|
||||||
PaddedBoxSizer<wxStaticBoxSizer> tex_filter_box(wxVERTICAL, this, "Debug");
|
// Bilinear filtering
|
||||||
auto* tex_filter_grid_box = new wxFlexGridSizer(2, space, space);
|
auto* bil_filter_grid_box = new wxFlexGridSizer(2, space, space);
|
||||||
|
bil_filter_grid_box->AddGrowableCol(1);
|
||||||
|
|
||||||
m_ui.addComboBoxAndLabel(tex_filter_grid_box, "Texture Filtering of Display:", "linear_present_mode", &theApp.m_gs_tex_display_list, IDC_LINEAR_PRESENT);
|
m_ui.addComboBoxAndLabel(bil_filter_grid_box, "Bilinear Filtering:", "linear_present_mode", &theApp.m_gs_tex_display_list, IDC_LINEAR_PRESENT);
|
||||||
|
|
||||||
m_ui.addCheckBox(shader_box.inner, "FXAA Shader (PgUp)", "fxaa", IDC_FXAA);
|
shader_box->Add(bil_filter_grid_box, wxSizerFlags().Expand());
|
||||||
|
|
||||||
|
// Sharpening, fxaa
|
||||||
|
PaddedBoxSizer<wxStaticBoxSizer> sharpening_box(wxVERTICAL, this, "Sharpening/Anti-aliasing");
|
||||||
|
auto* casmode_grid = new wxFlexGridSizer(2, space, space);
|
||||||
|
casmode_grid->AddGrowableCol(1);
|
||||||
|
|
||||||
|
m_ui.addComboBoxAndLabel(casmode_grid, "Contrast Adaptive Sharpening:", "CASMode", &theApp.m_gs_casmode);
|
||||||
|
|
||||||
|
sharpening_box->Add(casmode_grid, wxSizerFlags().Expand());
|
||||||
|
|
||||||
|
auto* sharpness_grid = new wxFlexGridSizer(2, space, space);
|
||||||
|
sharpness_grid->AddGrowableCol(1);
|
||||||
|
|
||||||
|
m_ui.addSliderAndLabel(sharpness_grid, "Sharpness:", "CASSharpness", 0, 100, 50, -1);
|
||||||
|
|
||||||
|
sharpening_box->Add(sharpness_grid, wxSizerFlags().Expand());
|
||||||
|
|
||||||
|
auto* fxaa_grid = new wxFlexGridSizer(2, space, space);
|
||||||
|
fxaa_grid->AddGrowableCol(1);
|
||||||
|
|
||||||
|
m_ui.addCheckBox(fxaa_grid, "FXAA (PgUp)", "fxaa", IDC_FXAA);
|
||||||
|
|
||||||
|
sharpening_box->Add(fxaa_grid, wxSizerFlags().Expand());
|
||||||
|
|
||||||
|
shader_box->Add(sharpening_box.outer, wxSizerFlags().Expand());
|
||||||
|
|
||||||
|
// Shade boost
|
||||||
CheckboxPrereq shade_boost_check(m_ui.addCheckBox(shader_box.inner, "Enable Shade Boost", "ShadeBoost", IDC_SHADEBOOST));
|
CheckboxPrereq shade_boost_check(m_ui.addCheckBox(shader_box.inner, "Enable Shade Boost", "ShadeBoost", IDC_SHADEBOOST));
|
||||||
|
|
||||||
PaddedBoxSizer<wxStaticBoxSizer> shade_boost_box(wxVERTICAL, this, "Shade Boost");
|
PaddedBoxSizer<wxStaticBoxSizer> shade_boost_box(wxVERTICAL, this, "Shade Boost");
|
||||||
auto* shader_boost_grid = new wxFlexGridSizer(2, space, space);
|
auto* shader_boost_grid = new wxFlexGridSizer(2, space, space);
|
||||||
shader_boost_grid->AddGrowableCol(1);
|
shader_boost_grid->AddGrowableCol(1);
|
||||||
|
@ -484,16 +508,17 @@ PostTab::PostTab(wxWindow* parent)
|
||||||
m_ui.addSliderAndLabel(shader_boost_grid, "Saturation:", "ShadeBoost_Saturation", 0, 100, 50, -1, shade_boost_check);
|
m_ui.addSliderAndLabel(shader_boost_grid, "Saturation:", "ShadeBoost_Saturation", 0, 100, 50, -1, shade_boost_check);
|
||||||
|
|
||||||
shade_boost_box->Add(shader_boost_grid, wxSizerFlags().Expand());
|
shade_boost_box->Add(shader_boost_grid, wxSizerFlags().Expand());
|
||||||
shader_box->Add(tex_filter_grid_box, wxSizerFlags().Expand());
|
|
||||||
shader_box->Add(shade_boost_box.outer, wxSizerFlags().Expand());
|
shader_box->Add(shade_boost_box.outer, wxSizerFlags().Expand());
|
||||||
|
|
||||||
|
// External shader
|
||||||
|
auto not_vk_prereq = [this] { return !m_is_vk_hw; };
|
||||||
CheckboxPrereq ext_shader_check(m_ui.addCheckBox(shader_box.inner, "Enable External Shader", "shaderfx", IDC_SHADER_FX, not_vk_prereq));
|
CheckboxPrereq ext_shader_check(m_ui.addCheckBox(shader_box.inner, "Enable External Shader", "shaderfx", IDC_SHADER_FX, not_vk_prereq));
|
||||||
|
|
||||||
PaddedBoxSizer<wxStaticBoxSizer> ext_shader_box(wxVERTICAL, this, "External Shader (Home)");
|
PaddedBoxSizer<wxStaticBoxSizer> ext_shader_box(wxVERTICAL, this, "External Shader (Home)");
|
||||||
|
|
||||||
auto* ext_shader_grid = new wxFlexGridSizer(2, space, space);
|
auto* ext_shader_grid = new wxFlexGridSizer(2, space, space);
|
||||||
ext_shader_grid->AddGrowableCol(1);
|
ext_shader_grid->AddGrowableCol(1);
|
||||||
|
|
||||||
auto shaderext_prereq = [ext_shader_check, this] { return !m_is_vk_hw && ext_shader_check.box->GetValue(); };
|
auto shaderext_prereq = [ext_shader_check, this] { return !m_is_vk_hw && ext_shader_check.box->GetValue(); };
|
||||||
|
|
||||||
m_ui.addFilePickerAndLabel(ext_shader_grid, "GLSL fx File:", "shaderfx_glsl", -1, shaderext_prereq);
|
m_ui.addFilePickerAndLabel(ext_shader_grid, "GLSL fx File:", "shaderfx_glsl", -1, shaderext_prereq);
|
||||||
m_ui.addFilePickerAndLabel(ext_shader_grid, "Config File:", "shaderfx_conf", -1, shaderext_prereq);
|
m_ui.addFilePickerAndLabel(ext_shader_grid, "Config File:", "shaderfx_conf", -1, shaderext_prereq);
|
||||||
|
|
||||||
|
@ -503,9 +528,12 @@ PostTab::PostTab(wxWindow* parent)
|
||||||
// TV Shader
|
// TV Shader
|
||||||
auto* tv_box = new wxFlexGridSizer(2, space, space);
|
auto* tv_box = new wxFlexGridSizer(2, space, space);
|
||||||
tv_box->AddGrowableCol(1);
|
tv_box->AddGrowableCol(1);
|
||||||
|
|
||||||
m_ui.addComboBoxAndLabel(tv_box, "TV Shader:", "TVShader", &theApp.m_gs_tv_shaders);
|
m_ui.addComboBoxAndLabel(tv_box, "TV Shader:", "TVShader", &theApp.m_gs_tv_shaders);
|
||||||
|
|
||||||
shader_box->Add(tv_box, wxSizerFlags().Expand());
|
shader_box->Add(tv_box, wxSizerFlags().Expand());
|
||||||
tab_box->Add(shader_box.outer, wxSizerFlags().Expand());
|
tab_box->Add(shader_box.outer, wxSizerFlags().Expand());
|
||||||
|
|
||||||
SetSizerAndFit(tab_box.outer);
|
SetSizerAndFit(tab_box.outer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue