Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Gsdx-gui: Add option for Sparse Texture in Advanced options #2844

Merged
merged 4 commits into from Feb 7, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
18 changes: 9 additions & 9 deletions plugins/GSdx/GSdx.cpp
Expand Up @@ -266,14 +266,14 @@ void GSdxApp::Init()
m_gs_gl_ext.push_back(GSSetting(0, "Force-Disabled", ""));
m_gs_gl_ext.push_back(GSSetting(1, "Force-Enabled", ""));

m_gs_hack.push_back(GSSetting(0, "Off", "Default"));
m_gs_hack.push_back(GSSetting(1, "Half", ""));
m_gs_hack.push_back(GSSetting(2, "Full", ""));
m_gs_hack.push_back(GSSetting(0, "Off", "Default"));
m_gs_hack.push_back(GSSetting(1, "Half", ""));
m_gs_hack.push_back(GSSetting(2, "Full", ""));

m_gs_offset_hack.push_back(GSSetting(0, "Off", "Default"));
m_gs_offset_hack.push_back(GSSetting(1, "Normal", "Vertex"));
m_gs_offset_hack.push_back(GSSetting(2, "Special", "Texture"));
m_gs_offset_hack.push_back(GSSetting(3, "Special", "Texture - aggressive"));
m_gs_offset_hack.push_back(GSSetting(0, "Off", "Default"));
m_gs_offset_hack.push_back(GSSetting(1, "Normal", "Vertex"));
m_gs_offset_hack.push_back(GSSetting(2, "Special", "Texture"));
m_gs_offset_hack.push_back(GSSetting(3, "Special", "Texture - aggressive"));

m_gs_hw_mipmapping = {
GSSetting(HWMipmapLevel::Automatic, "Automatic", "Default"),
Expand All @@ -284,7 +284,7 @@ void GSdxApp::Init()

m_gs_crc_level = {
GSSetting(CRCHackLevel::Automatic, "Automatic", "Default"),
GSSetting(CRCHackLevel::None , "None", "Debug"),
GSSetting(CRCHackLevel::None, "None", "Debug"),
GSSetting(CRCHackLevel::Minimum, "Minimum", "Debug"),
GSSetting(CRCHackLevel::Partial, "Partial", "OpenGL"),
GSSetting(CRCHackLevel::Full, "Full", "Direct3D"),
Expand Down Expand Up @@ -407,7 +407,7 @@ void GSdxApp::Init()
m_default_configuration["override_GL_ARB_multi_bind"] = "-1";
m_default_configuration["override_GL_ARB_shader_image_load_store"] = "-1";
m_default_configuration["override_GL_ARB_shader_storage_buffer_object"] = "-1";
m_default_configuration["override_GL_ARB_sparse_texture"] = "-1";
m_default_configuration["override_GL_ARB_sparse_texture"] = "0";
m_default_configuration["override_GL_ARB_sparse_texture2"] = "-1";
m_default_configuration["override_GL_ARB_texture_view"] = "-1";
m_default_configuration["override_GL_ARB_vertex_attrib_binding"] = "-1";
Expand Down
46 changes: 24 additions & 22 deletions plugins/GSdx/GSdx.rc
Expand Up @@ -121,7 +121,7 @@ CAPTION "Advanced Settings & Hacks"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
// Hacks settings:
GROUPBOX "Hacks",IDC_STATIC,7,7,196,201,0,WS_EX_TRANSPARENT
GROUPBOX "Hacks",IDC_STATIC,7,7,196,186,0,WS_EX_TRANSPARENT
// Column one - HW Hacks
CONTROL "Align Sprite",IDC_ALIGN_SPRITE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,19,58,8
CONTROL "Alpha",IDC_ALPHAHACK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,32,34,8
Expand All @@ -138,32 +138,34 @@ BEGIN
CONTROL "Wild Arms Offset",IDC_WILDHACK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,108,84,70,8
// Columns end
//
RTEXT "Trilinear Filtering:",IDC_TRI_FILTER_TEXT,16,114,60,8
COMBOBOX IDC_TRI_FILTER,80,111,116,63,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
RTEXT "Half-pixel Offset:",IDC_OFFSETHACK_TEXT,14,129,62,8
COMBOBOX IDC_OFFSETHACK,80,126,116,63,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
RTEXT "Sprite:",IDC_SPRITEHACK_TEXT,54,144,22,8
COMBOBOX IDC_SPRITEHACK,80,141,116,63,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
RTEXT "Round Sprite:",IDC_ROUND_SPRITE_TEXT,30,159,46,8
COMBOBOX IDC_ROUND_SPRITE,80,156,116,63,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
RTEXT "Skipdraw Range:",IDC_STATIC,14,174,62,8
EDITTEXT IDC_SKIPDRAWOFFSETEDIT,80,171,58,14,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER
RTEXT "Trilinear Filtering:",IDC_TRI_FILTER_TEXT,16,99,60,8
COMBOBOX IDC_TRI_FILTER,80,96,116,63,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
RTEXT "Half-pixel Offset:",IDC_OFFSETHACK_TEXT,14,114,62,8
COMBOBOX IDC_OFFSETHACK,80,111,116,63,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
RTEXT "Sprite:",IDC_SPRITEHACK_TEXT,54,129,22,8
COMBOBOX IDC_SPRITEHACK,80,126,116,63,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
RTEXT "Round Sprite:",IDC_ROUND_SPRITE_TEXT,30,144,46,8
COMBOBOX IDC_ROUND_SPRITE,80,141,116,63,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
RTEXT "Skipdraw Range:",IDC_STATIC,14,159,62,8
EDITTEXT IDC_SKIPDRAWOFFSETEDIT,80,156,58,14,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER
CONTROL "",IDC_SKIPDRAWOFFSET,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,0,0,11,14
EDITTEXT IDC_SKIPDRAWHACKEDIT,138,171,58,14,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER
EDITTEXT IDC_SKIPDRAWHACKEDIT,138,156,58,14,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER
CONTROL "",IDC_SKIPDRAWHACK,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,0,0,11,14
RTEXT "Texture Offsets",IDC_STATIC,14,190,59,8
RTEXT "X:",IDC_STATIC,81,190,10,8
EDITTEXT IDC_TCOFFSETX2,94,187,44,14,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER
RTEXT "Texture Offsets",IDC_STATIC,14,175,59,8
RTEXT "X:",IDC_STATIC,81,175,10,8
EDITTEXT IDC_TCOFFSETX2,94,172,44,14,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER
CONTROL "",IDC_TCOFFSETX,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,0,0,11,14
RTEXT "Y:",IDC_STATIC,139,190,10,8
EDITTEXT IDC_TCOFFSETY2,152,187,44,14,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER
RTEXT "Y:",IDC_STATIC,139,175,10,8
EDITTEXT IDC_TCOFFSETY2,152,172,44,14,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER
CONTROL "",IDC_TCOFFSETY,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,0,0,11,14
// OpenGL Advanced Settings:
GROUPBOX "OpenGL Advanced Settings",IDC_STATIC,7,210,196,48,0,WS_EX_TRANSPARENT
RTEXT "Geometry Shader:",IDC_GEOMETRY_SHADER_TEXT,14,225,62,8
COMBOBOX IDC_GEOMETRY_SHADER_OVERRIDE,80,222,116,63,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
RTEXT "Image Load Store:",IDC_IMAGE_LOAD_STORE_TEXT,14,240,62,8
COMBOBOX IDC_IMAGE_LOAD_STORE,80,237,116,63,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
GROUPBOX "OpenGL Advanced Settings",IDC_STATIC,7,194,196,64,0,WS_EX_TRANSPARENT
RTEXT "Geometry Shader:",IDC_GEOMETRY_SHADER_TEXT,14,210,62,8
COMBOBOX IDC_GEOMETRY_SHADER_OVERRIDE,80,207,116,63,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
RTEXT "Image Load Store:",IDC_IMAGE_LOAD_STORE_TEXT,14,225,62,8
COMBOBOX IDC_IMAGE_LOAD_STORE,80,222,116,63,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
RTEXT "Sparse Texture:",IDC_SPARSE_TEXTURE_TEXT,14,240,62,8
COMBOBOX IDC_SPARSE_TEXTURE,80,237,116,63,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
// General Settings:
DEFPUSHBUTTON "OK",IDOK,52,263,50,14
DEFPUSHBUTTON "Cancel",IDCANCEL,108,263,50,14
Expand Down
2 changes: 1 addition & 1 deletion plugins/GSdx/Renderers/OpenGL/GLLoader.cpp
Expand Up @@ -192,7 +192,7 @@ namespace GLLoader {
if (theApp.GetConfigI(opt.c_str()) != -1) {
found = theApp.GetConfigB(opt.c_str());
fprintf(stderr, "Override %s detection (%s)\n", name.c_str(), found ? "Enabled" : "Disabled");
GLExtension::Set(name);
GLExtension::Set(name, found);
}

return found;
Expand Down
4 changes: 4 additions & 0 deletions plugins/GSdx/Window/GSLinuxDialog.cpp
Expand Up @@ -320,13 +320,17 @@ void populate_gl_table(GtkWidget* gl_table)
GtkWidget* gl_gs_combo = CreateComboBoxFromVector(theApp.m_gs_gl_ext, "override_geometry_shader");
GtkWidget* gl_ils_label = left_label("Image Load Store:");
GtkWidget* gl_ils_combo = CreateComboBoxFromVector(theApp.m_gs_gl_ext, "override_GL_ARB_shader_image_load_store");
GtkWidget* gl_sps_label = left_label("Sparse Texture:");
GtkWidget* gl_sps_combo = CreateComboBoxFromVector(theApp.m_gs_gl_ext, "override_GL_ARB_sparse_texture");

AddTooltip(gl_gs_label, gl_gs_combo, IDC_GEOMETRY_SHADER_OVERRIDE);
AddTooltip(gl_ils_label, gl_ils_combo, IDC_IMAGE_LOAD_STORE);
AddTooltip(gl_sps_label, gl_sps_combo, IDC_SPARSE_TEXTURE);

s_table_line = 0;
InsertWidgetInTable(gl_table , gl_gs_label , gl_gs_combo);
InsertWidgetInTable(gl_table , gl_ils_label , gl_ils_combo);
InsertWidgetInTable(gl_table , gl_sps_label , gl_sps_combo);
}

void populate_sw_table(GtkWidget* sw_table)
Expand Down
3 changes: 3 additions & 0 deletions plugins/GSdx/Window/GSSetting.cpp
Expand Up @@ -173,6 +173,9 @@ const char* dialog_message(int ID, bool* updateText) {
return "Allows advanced atomic operations to speed up Accurate Date.\n"
"Only disable this if using Accurate Date causes (GPU driver) issues.\n\n"
"Note: This option is only supported by GPUs which support at least Direct3D 11.";
case IDC_SPARSE_TEXTURE:
return "Allows to reduce memory usage on the GPU.\n\n"
"Note: Feature is not yet implemented so Force Disable by default.";
case IDC_OSD_MAX_LOG_EDIT:
case IDC_OSD_MAX_LOG:
return "Sets the maximum number of log messages on the screen or in the buffer at the same time.\n\n"
Expand Down
1 change: 1 addition & 0 deletions plugins/GSdx/Window/GSSetting.h
Expand Up @@ -84,6 +84,7 @@ enum {
IDC_MERGE_PP_SPRITE,
IDC_GEOMETRY_SHADER_OVERRIDE,
IDC_IMAGE_LOAD_STORE,
IDC_SPARSE_TEXTURE,
IDC_OSD_LOG,
IDC_OSD_MONITOR,
IDC_OSD_MAX_LOG,
Expand Down
8 changes: 8 additions & 0 deletions plugins/GSdx/Window/GSSettingsDlg.cpp
Expand Up @@ -632,6 +632,7 @@ void GSHacksDlg::OnInit()
ComboBoxInit(IDC_SPRITEHACK, theApp.m_gs_hack, theApp.GetConfigI("UserHacks_SpriteHack"));
ComboBoxInit(IDC_GEOMETRY_SHADER_OVERRIDE, theApp.m_gs_gl_ext, theApp.GetConfigI("override_geometry_shader"));
ComboBoxInit(IDC_IMAGE_LOAD_STORE, theApp.m_gs_gl_ext, theApp.GetConfigI("override_GL_ARB_shader_image_load_store"));
ComboBoxInit(IDC_SPARSE_TEXTURE, theApp.m_gs_gl_ext, theApp.GetConfigI("override_GL_ARB_sparse_texture"));

SendMessage(GetDlgItem(m_hWnd, IDC_SKIPDRAWOFFSET), UDM_SETRANGE, 0, MAKELPARAM(10000, 0));
SendMessage(GetDlgItem(m_hWnd, IDC_SKIPDRAWOFFSET), UDM_SETPOS, 0, MAKELPARAM(theApp.GetConfigI("UserHacks_SkipDraw_Offset"), 0));
Expand Down Expand Up @@ -668,6 +669,8 @@ void GSHacksDlg::OnInit()
EnableWindow(GetDlgItem(m_hWnd, IDC_GEOMETRY_SHADER_TEXT), ogl);
EnableWindow(GetDlgItem(m_hWnd, IDC_IMAGE_LOAD_STORE), ogl);
EnableWindow(GetDlgItem(m_hWnd, IDC_IMAGE_LOAD_STORE_TEXT), ogl);
EnableWindow(GetDlgItem(m_hWnd, IDC_SPARSE_TEXTURE), ogl);
EnableWindow(GetDlgItem(m_hWnd, IDC_SPARSE_TEXTURE_TEXT), ogl);

AddTooltip(IDC_SKIPDRAWHACKEDIT);
AddTooltip(IDC_SKIPDRAWHACK);
Expand Down Expand Up @@ -695,6 +698,7 @@ void GSHacksDlg::OnInit()
AddTooltip(IDC_MERGE_PP_SPRITE);
AddTooltip(IDC_GEOMETRY_SHADER_OVERRIDE);
AddTooltip(IDC_IMAGE_LOAD_STORE);
AddTooltip(IDC_SPARSE_TEXTURE);

UpdateControls();
}
Expand Down Expand Up @@ -770,6 +774,10 @@ bool GSHacksDlg::OnMessage(UINT message, WPARAM wParam, LPARAM lParam)
{
theApp.SetConfig("override_GL_ARB_shader_image_load_store", (int)data);
}
if (ComboBoxGetSelData(IDC_SPARSE_TEXTURE, data))
{
theApp.SetConfig("override_GL_ARB_sparse_texture", (int)data);
}

// It's more user friendly to lower the skipdraw offset value here - it prevents the skipdraw offset
// value from decreasing unnecessarily if the user types a skipdraw value that is temporarily lower
Expand Down
2 changes: 2 additions & 0 deletions plugins/GSdx/resource.h
Expand Up @@ -149,6 +149,8 @@
#define IDC_GEOMETRY_SHADER_TEXT 2201
#define IDC_IMAGE_LOAD_STORE 2202
#define IDC_IMAGE_LOAD_STORE_TEXT 2203
#define IDC_SPARSE_TEXTURE 2204
#define IDC_SPARSE_TEXTURE_TEXT 2205
#define IDR_CONVERT_FX 10000
#define IDR_TFX_FX 10001
#define IDR_MERGE_FX 10002
Expand Down