mirror of https://github.com/PCSX2/pcsx2.git
GSdx-GUI: Conservative Buffer Allocation + GPU Palette Conversion + Misc fixes
- Conservative Buffer Allocation will be enabled by default. - Unscaled has a lesser visual impact but will be moved to the middle so it is more consistent with the other options in the GUI. - Monitor will hence be named Statistics Monitor which makes it more obvious that it's similar to RivaTuner Statistics Server. - The monitor will print the stats of the emulated components EE (roughly CPU-usage) , GS (roughly GPU-usage). - Make room for the new checkboxes with revision of names and tooltips. - GPU (color) Palette Conversion instead of 8bit textures (the name didn't make much sense).
This commit is contained in:
parent
1f236cab75
commit
170d1cb94c
|
@ -244,8 +244,8 @@ void GSdxApp::Init()
|
|||
m_gs_max_anisotropy.push_back(GSSetting(16, "16x", ""));
|
||||
|
||||
m_gs_dithering.push_back(GSSetting(0, "Off", ""));
|
||||
m_gs_dithering.push_back(GSSetting(1, "Scaled", ""));
|
||||
m_gs_dithering.push_back(GSSetting(2, "Unscaled", "Default"));
|
||||
m_gs_dithering.push_back(GSSetting(1, "Scaled", ""));
|
||||
|
||||
m_gs_bifilter.push_back(GSSetting(static_cast<uint32>(BiFiltering::Nearest), "Nearest", ""));
|
||||
m_gs_bifilter.push_back(GSSetting(static_cast<uint32>(BiFiltering::Forced_But_Sprite), "Bilinear", "Forced excluding sprite"));
|
||||
|
@ -339,7 +339,7 @@ void GSdxApp::Init()
|
|||
m_default_configuration["force_texture_clear"] = "0";
|
||||
m_default_configuration["fxaa"] = "0";
|
||||
m_default_configuration["interlace"] = "7";
|
||||
m_default_configuration["large_framebuffer"] = "0";
|
||||
m_default_configuration["conservative_framebuffer"] = "1";
|
||||
m_default_configuration["linear_present"] = "1";
|
||||
m_default_configuration["MaxAnisotropy"] = "0";
|
||||
m_default_configuration["mipmap"] = "1";
|
||||
|
|
|
@ -203,7 +203,7 @@ CAPTION "OSD Configuration"
|
|||
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||
BEGIN
|
||||
// Enable/Disable
|
||||
CONTROL "Enable Monitor",IDC_OSD_MONITOR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,7,65,10
|
||||
CONTROL "Enable Statistics Monitor",IDC_OSD_MONITOR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,7,88,10
|
||||
CONTROL "Enable Log",IDC_OSD_LOG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,112,7,54,10
|
||||
// Font Settings
|
||||
GROUPBOX "Font",IDC_STATIC,7,20,196,100,0,WS_EX_TRANSPARENT
|
||||
|
@ -269,38 +269,38 @@ BEGIN
|
|||
COMBOBOX IDC_INTERLACE,70,85,166,118,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
LTEXT "Texture Filtering:",IDC_FILTER_TEXT,6,102,79,8
|
||||
COMBOBOX IDC_FILTER,70,100,166,63,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
PUSHBUTTON "OSD Configuration",IDC_OSDBUTTON,10,317,108,14
|
||||
PUSHBUTTON "Shader Configuration",IDC_SHADEBUTTON,124,317,108,14
|
||||
DEFPUSHBUTTON "OK",IDOK,68,337,50,14
|
||||
PUSHBUTTON "Cancel",IDCANCEL,124,337,50,14
|
||||
PUSHBUTTON "OSD Configuration",IDC_OSDBUTTON,10,321,108,14
|
||||
PUSHBUTTON "Shader Configuration",IDC_SHADEBUTTON,124,321,108,14
|
||||
DEFPUSHBUTTON "OK",IDOK,68,341,50,14
|
||||
PUSHBUTTON "Cancel",IDCANCEL,124,341,50,14
|
||||
// Hardware Renderer Settings:
|
||||
GROUPBOX "Hardware Renderer Settings",IDC_STATIC,6,121,230,140,BS_CENTER
|
||||
CONTROL "Accurate DATE",IDC_ACCURATE_DATE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,132,63,10
|
||||
CONTROL "Allow 8-Bit Textures",IDC_PALTEX,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,77,132,76,10
|
||||
CONTROL "Large Framebuffer",IDC_LARGE_FB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,132,75,10
|
||||
LTEXT "Internal Resolution:",IDC_UPSCALE_MULTIPLIER_TEXT,22,149,79,8
|
||||
COMBOBOX IDC_UPSCALE_MULTIPLIER,104,147,127,98,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
LTEXT "Anisotropic Filtering:",IDC_AFCOMBO_TEXT,22,165,79,8
|
||||
COMBOBOX IDC_AFCOMBO,104,163,127,118,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
LTEXT "Dithering (PgDn):",IDC_DITHERING_TEXT,22,181,79,8
|
||||
COMBOBOX IDC_DITHERING,104,179,127,118,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
LTEXT "Mipmapping (Ins):",IDC_MIPMAP_HW_TEXT,22,197,79,8
|
||||
COMBOBOX IDC_MIPMAP_HW,104,195,127,118,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
LTEXT "CRC Hack Level:",IDC_CRC_LEVEL_TEXT,22,213,79,8
|
||||
COMBOBOX IDC_CRC_LEVEL,104,211,127,118,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
LTEXT "Blending Accuracy:",IDC_ACCURATE_BLEND_UNIT_TEXT,22,229,79,8
|
||||
COMBOBOX IDC_ACCURATE_BLEND_UNIT,104,227,127,118,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
COMBOBOX IDC_ACCURATE_BLEND_UNIT_D3D11,104,227,127,118,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
CONTROL "Enable HW Hacks",IDC_HACKS_ENABLED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,245,71,10
|
||||
PUSHBUTTON "Advanced Settings and Hacks",IDC_HACKSBUTTON,104,243,127,14
|
||||
GROUPBOX "Hardware Renderer Settings",IDC_STATIC,6,114,230,154,BS_CENTER
|
||||
CONTROL "Accurate DATE",IDC_ACCURATE_DATE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,124,63,10
|
||||
CONTROL "GPU Palette Conversion",IDC_PALTEX,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,140,87,10
|
||||
CONTROL "Conservative Buffer Allocation",IDC_CONSERVATIVE_FB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,104,140,108,10
|
||||
LTEXT "Internal Resolution:",IDC_UPSCALE_MULTIPLIER_TEXT,22,156,79,8
|
||||
COMBOBOX IDC_UPSCALE_MULTIPLIER,104,154,127,98,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
LTEXT "Anisotropic Filtering:",IDC_AFCOMBO_TEXT,22,172,79,8
|
||||
COMBOBOX IDC_AFCOMBO,104,170,127,118,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
LTEXT "Dithering (PgDn):",IDC_DITHERING_TEXT,22,188,79,8
|
||||
COMBOBOX IDC_DITHERING,104,186,127,118,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
LTEXT "Mipmapping (Ins):",IDC_MIPMAP_HW_TEXT,22,204,79,8
|
||||
COMBOBOX IDC_MIPMAP_HW,104,202,127,118,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
LTEXT "CRC Hack Level:",IDC_CRC_LEVEL_TEXT,22,220,79,8
|
||||
COMBOBOX IDC_CRC_LEVEL,104,218,127,118,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
LTEXT "Blending Accuracy:",IDC_ACCURATE_BLEND_UNIT_TEXT,22,236,79,8
|
||||
COMBOBOX IDC_ACCURATE_BLEND_UNIT,104,234,127,118,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
COMBOBOX IDC_ACCURATE_BLEND_UNIT_D3D11,104,234,127,118,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
CONTROL "Enable HW Hacks",IDC_HACKS_ENABLED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,252,71,10
|
||||
PUSHBUTTON "Advanced Settings and Hacks",IDC_HACKSBUTTON,104,250,127,14
|
||||
// Software Renderer Settings:
|
||||
GROUPBOX "Software Renderer Settings",IDC_STATIC,6,267,230,44,BS_CENTER
|
||||
CONTROL "Auto Flush",IDC_AUTO_FLUSH_SW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,279,90,10
|
||||
CONTROL "Edge Anti-aliasing (Del)",IDC_AA1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,124,279,90,10
|
||||
LTEXT "Rendering threads:",IDC_SWTHREADS_TEXT,124,295,65,8
|
||||
EDITTEXT IDC_SWTHREADS_EDIT,197,293,34,13,ES_AUTOHSCROLL | ES_NUMBER
|
||||
GROUPBOX "Software Renderer Settings",IDC_STATIC,6,271,230,44,BS_CENTER
|
||||
CONTROL "Auto Flush",IDC_AUTO_FLUSH_SW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,283,90,10
|
||||
CONTROL "Edge Anti-aliasing (Del)",IDC_AA1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,124,283,90,10
|
||||
LTEXT "Rendering threads:",IDC_SWTHREADS_TEXT,124,299,65,8
|
||||
EDITTEXT IDC_SWTHREADS_EDIT,197,297,34,13,ES_AUTOHSCROLL | ES_NUMBER
|
||||
CONTROL "",IDC_SWTHREADS,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,0,0,11,14
|
||||
CONTROL "Mipmapping",IDC_MIPMAP_SW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,295,90,10
|
||||
CONTROL "Mipmapping",IDC_MIPMAP_SW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,297,90,10
|
||||
END
|
||||
|
||||
|
||||
|
|
|
@ -41,7 +41,7 @@ GSRendererHW::GSRendererHW(GSTextureCache* tc)
|
|||
{
|
||||
m_mipmap = theApp.GetConfigI("mipmap_hw");
|
||||
m_upscale_multiplier = theApp.GetConfigI("upscale_multiplier");
|
||||
m_large_framebuffer = theApp.GetConfigB("large_framebuffer");
|
||||
m_conservative_framebuffer = theApp.GetConfigB("conservative_framebuffer");
|
||||
m_accurate_date = theApp.GetConfigB("accurate_date");
|
||||
|
||||
if (theApp.GetConfigB("UserHacks")) {
|
||||
|
@ -125,8 +125,13 @@ void GSRendererHW::SetScaling()
|
|||
// int fb_height = (fb_width < 1024) ? 1280 : 1024;
|
||||
//
|
||||
// Until performance issue is properly fixed, let's keep an option to reduce the framebuffer size.
|
||||
int fb_height = m_large_framebuffer ? 1280 :
|
||||
(fb_width < 1024) ? std::max(512, crtc_size.y) : 1024;
|
||||
//
|
||||
// m_large_framebuffer has been inverted to m_conservative_framebuffer, it isn't an option that benefits being enabled all the time for everyone.
|
||||
int fb_height = 1280;
|
||||
if (m_conservative_framebuffer)
|
||||
{
|
||||
fb_height = fb_width < 1024 ? std::max(512, crtc_size.y) : 1024;
|
||||
}
|
||||
|
||||
int upscaled_fb_w = fb_width * m_upscale_multiplier;
|
||||
int upscaled_fb_h = fb_height * m_upscale_multiplier;
|
||||
|
|
|
@ -36,7 +36,7 @@ private:
|
|||
int m_upscale_multiplier;
|
||||
int m_userhacks_ts_half_bottom;
|
||||
|
||||
bool m_large_framebuffer;
|
||||
bool m_conservative_framebuffer;
|
||||
bool m_userhacks_align_sprite_X;
|
||||
bool m_userhacks_enabled_gs_mem_clear;
|
||||
bool m_userHacks_merge_sprite;
|
||||
|
|
|
@ -285,8 +285,8 @@ void populate_hw_table(GtkWidget* hw_table)
|
|||
{
|
||||
GtkWidget* hack_enable_check = CreateCheckBox("Enable User Hacks", "UserHacks");
|
||||
GtkWidget* acc_date_check = CreateCheckBox("Accurate DATE", "accurate_date");
|
||||
GtkWidget* paltex_check = CreateCheckBox("Allow 8 bits textures", "paltex");
|
||||
GtkWidget* large_fb_check = CreateCheckBox("Large Framebuffer", "large_framebuffer");
|
||||
GtkWidget* paltex_check = CreateCheckBox("GPU Palette Conversion", "paltex");
|
||||
GtkWidget* conservative_fb_check = CreateCheckBox("Conservative Buffer Allocation", "conservative_framebuffer");
|
||||
|
||||
GtkWidget* fsaa_label = left_label("Internal Resolution:");
|
||||
GtkWidget* fsaa_combo_box = CreateComboBoxFromVector(theApp.m_gs_upscale_multiplier, "upscale_multiplier");
|
||||
|
@ -310,7 +310,7 @@ void populate_hw_table(GtkWidget* hw_table)
|
|||
gtk_widget_set_tooltip_text(hack_enable_check, "Enable the HW hack option panel");
|
||||
AddTooltip(acc_date_check, IDC_ACCURATE_DATE);
|
||||
AddTooltip(paltex_check, IDC_PALTEX);
|
||||
AddTooltip(large_fb_check, IDC_LARGE_FB);
|
||||
AddTooltip(conservative_fb_check, IDC_CONSERVATIVE_FB);
|
||||
AddTooltip(crc_label, crc_combo_box, IDC_CRC_LEVEL);
|
||||
AddTooltip(af_label, af_combo_box, IDC_AFCOMBO);
|
||||
AddTooltip(mipmap_label, IDC_MIPMAP_HW);
|
||||
|
@ -319,7 +319,7 @@ void populate_hw_table(GtkWidget* hw_table)
|
|||
|
||||
s_table_line = 0;
|
||||
InsertWidgetInTable(hw_table, hack_enable_check, acc_date_check);
|
||||
InsertWidgetInTable(hw_table, paltex_check, large_fb_check);
|
||||
InsertWidgetInTable(hw_table, paltex_check, conservative_fb_check);
|
||||
InsertWidgetInTable(hw_table, fsaa_label, fsaa_combo_box);
|
||||
InsertWidgetInTable(hw_table, af_label, af_combo_box);
|
||||
InsertWidgetInTable(hw_table, dither_label, dither_combo_box);
|
||||
|
|
|
@ -90,11 +90,11 @@ const char* dialog_message(int ID, bool* updateText) {
|
|||
case IDC_OSD_LOG:
|
||||
return "Prints log messages from the Function keys onscreen.";
|
||||
case IDC_OSD_MONITOR:
|
||||
return "Continuously prints the FPS and the EE, GS and VU(if the MTVU speedhack is enabled) percentages onscreen.";
|
||||
return "Continuously prints/overlays the FPS counter and the EE ('CPU-usage') ,\nGS ('GPU-usage') and VU(if the MTVU speedhack is enabled) percentages onscreen.";
|
||||
case IDC_PALTEX:
|
||||
return "Enabled: GPU will handle 4/8 bits textures while CPU does the rest.\n"
|
||||
"Disabled: CPU will have full control and directly convert the textures to 32 bits.\n\n"
|
||||
"It is basically a trade-off between GPU/CPU vs CPU alone.";
|
||||
return "Enabled: GPU converts colormap-textures.\n"
|
||||
"Disabled: CPU converts colormap-textures.\n\n"
|
||||
"It is a trade-off between GPU and CPU.";
|
||||
case IDC_ACCURATE_DATE:
|
||||
return "Implement a more accurate algorithm to compute GS destination alpha testing.\n"
|
||||
"It improves shadow and transparency rendering.\n\n"
|
||||
|
@ -191,14 +191,14 @@ const char* dialog_message(int ID, bool* updateText) {
|
|||
"Full (Slow):\nCompletely emulates the mipmapping function of the GS, might significantly impact performance.";
|
||||
case IDC_FAST_TC_INV:
|
||||
return "By default, the texture cache handles partial invalidations. Unfortunately it is very costly to compute CPU wise."
|
||||
"\n\nThis hack replaces the partial invalidation with a complete deletion of the texture to reduce the CPU load.\n\nIt helps snowblind engine games.";
|
||||
case IDC_LARGE_FB:
|
||||
return "Reserves a larger framebuffer to prevent FMV flickers.\n"
|
||||
"Increases GPU/memory requirements.\n"
|
||||
"Enabling this can amplify stuttering due to low RAM/VRAM.\n\n"
|
||||
"Note: It should be disabled for Armored Core, Destroy All Humans, Gran Turismo and possibly others.\n"
|
||||
"This option does not improve the graphics or the FPS.";
|
||||
// Windows only options.
|
||||
"\n\nThis hack replaces the partial invalidation with a complete deletion of the texture to reduce the CPU load.\n\nIt helps snowblind engine games.";
|
||||
case IDC_CONSERVATIVE_FB:
|
||||
return "Disabled: Reserves a larger framebuffer to prevent FMV flickers.\n"
|
||||
"Increases GPU/memory requirements.\n"
|
||||
"Disabling this can amplify stuttering due to low RAM/VRAM.\n\n"
|
||||
"Note: It should be enabled for Armored Core, Destroy All Humans, Gran Turismo and possibly others.\n"
|
||||
"This option does not improve the graphics or the FPS.";
|
||||
// Windows only options.
|
||||
#ifdef _WIN32
|
||||
case IDC_ACCURATE_BLEND_UNIT_D3D11:
|
||||
return "Control the accuracy level of the GS blending unit emulation.\n\n"
|
||||
|
|
|
@ -74,7 +74,7 @@ enum {
|
|||
IDC_MIPMAP_HW,
|
||||
IDC_PRELOAD_GS,
|
||||
IDC_FAST_TC_INV,
|
||||
IDC_LARGE_FB,
|
||||
IDC_CONSERVATIVE_FB,
|
||||
IDC_LINEAR_PRESENT,
|
||||
IDC_AUTO_FLUSH_HW,
|
||||
IDC_AUTO_FLUSH_SW,
|
||||
|
|
|
@ -104,7 +104,7 @@ void GSSettingsDlg::OnInit()
|
|||
|
||||
CheckDlgButton(m_hWnd, IDC_ACCURATE_DATE, theApp.GetConfigB("accurate_date"));
|
||||
CheckDlgButton(m_hWnd, IDC_PALTEX, theApp.GetConfigB("paltex"));
|
||||
CheckDlgButton(m_hWnd, IDC_LARGE_FB, theApp.GetConfigB("large_framebuffer"));
|
||||
CheckDlgButton(m_hWnd, IDC_CONSERVATIVE_FB, theApp.GetConfigB("conservative_framebuffer"));
|
||||
CheckDlgButton(m_hWnd, IDC_MIPMAP_SW, theApp.GetConfigB("mipmap"));
|
||||
CheckDlgButton(m_hWnd, IDC_AA1, theApp.GetConfigB("aa1"));
|
||||
CheckDlgButton(m_hWnd, IDC_AUTO_FLUSH_SW, theApp.GetConfigB("autoflush_sw"));
|
||||
|
@ -128,7 +128,7 @@ void GSSettingsDlg::OnInit()
|
|||
AddTooltip(IDC_SWTHREADS);
|
||||
AddTooltip(IDC_SWTHREADS_EDIT);
|
||||
AddTooltip(IDC_AUTO_FLUSH_SW);
|
||||
AddTooltip(IDC_LARGE_FB);
|
||||
AddTooltip(IDC_CONSERVATIVE_FB);
|
||||
|
||||
UpdateControls();
|
||||
}
|
||||
|
@ -249,7 +249,7 @@ bool GSSettingsDlg::OnCommand(HWND hWnd, UINT id, UINT code)
|
|||
|
||||
theApp.SetConfig("accurate_date", (int)IsDlgButtonChecked(m_hWnd, IDC_ACCURATE_DATE));
|
||||
theApp.SetConfig("paltex", (int)IsDlgButtonChecked(m_hWnd, IDC_PALTEX));
|
||||
theApp.SetConfig("large_framebuffer", (int)IsDlgButtonChecked(m_hWnd, IDC_LARGE_FB));
|
||||
theApp.SetConfig("conservative_framebuffer", (int)IsDlgButtonChecked(m_hWnd, IDC_CONSERVATIVE_FB));
|
||||
theApp.SetConfig("UserHacks", (int)IsDlgButtonChecked(m_hWnd, IDC_HACKS_ENABLED));
|
||||
|
||||
theApp.SetConfig("aa1", (int)IsDlgButtonChecked(m_hWnd, IDC_AA1));
|
||||
|
@ -334,7 +334,7 @@ void GSSettingsDlg::UpdateControls()
|
|||
EnableWindow(GetDlgItem(m_hWnd, IDC_MIPMAP_HW), hw);
|
||||
EnableWindow(GetDlgItem(m_hWnd, IDC_MIPMAP_HW_TEXT), hw);
|
||||
EnableWindow(GetDlgItem(m_hWnd, IDC_CRC_LEVEL), hw);
|
||||
EnableWindow(GetDlgItem(m_hWnd, IDC_LARGE_FB), integer_scaling > 1 && hw);
|
||||
EnableWindow(GetDlgItem(m_hWnd, IDC_CONSERVATIVE_FB), integer_scaling > 1 && hw);
|
||||
EnableWindow(GetDlgItem(m_hWnd, IDC_CRC_LEVEL_TEXT), hw);
|
||||
EnableWindow(GetDlgItem(m_hWnd, IDC_UPSCALE_MULTIPLIER), hw);
|
||||
EnableWindow(GetDlgItem(m_hWnd, IDC_UPSCALE_MULTIPLIER_TEXT), hw);
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
#define IDC_SHADEBUTTON 2017
|
||||
// Hardware Renderer Settings:
|
||||
#define IDC_PALTEX 2030
|
||||
#define IDC_LARGE_FB 2031
|
||||
#define IDC_CONSERVATIVE_FB 2031
|
||||
#define IDC_UPSCALE_MULTIPLIER 2032
|
||||
#define IDC_UPSCALE_MULTIPLIER_TEXT 2033
|
||||
#define IDC_AFCOMBO_TEXT 2034
|
||||
|
|
Loading…
Reference in New Issue