diff --git a/plugins/GSdx/GSLinuxDialog.cpp b/plugins/GSdx/GSLinuxDialog.cpp index f5d67a1f08..a547e1539c 100644 --- a/plugins/GSdx/GSLinuxDialog.cpp +++ b/plugins/GSdx/GSLinuxDialog.cpp @@ -352,6 +352,7 @@ void populate_hack_table(GtkWidget* hack_table) GtkWidget* align_sprite_check = CreateCheckBox("Align sprite hack", "UserHacks_align_sprite_X"); GtkWidget* preload_gs_check = CreateCheckBox("Preload Frame", "preload_frame_with_gs_data"); GtkWidget* hack_safe_fbmask = CreateCheckBox("Safe Accurate Blending", "UserHacks_safe_fbmask"); + GtkWidget* hack_fast_inv = CreateCheckBox("Fast Texture Invalidation", "UserHacks_DisablePartialInvalidation"); GtkWidget* hack_sprite_box = CreateComboBoxFromVector(theApp.m_gs_hack, "UserHacks_SpriteHack"); GtkWidget* hack_sprite_label = left_label("Alpha-Sprite Hack:"); @@ -370,13 +371,15 @@ void populate_hack_table(GtkWidget* hack_table) AddTooltip(align_sprite_check, IDC_ALIGN_SPRITE); AddTooltip(stretch_hack_label, stretch_hack_box, IDC_ROUND_SPRITE); AddTooltip(preload_gs_check, IDC_PRELOAD_GS); + AddTooltip(hack_safe_fbmask, IDC_SAFE_FBMASK); + AddTooltip(hack_fast_inv, IDC_FAST_TC_INV); s_table_line = 0; InsertWidgetInTable(hack_table , hack_enble_check); InsertWidgetInTable(hack_table , hack_wild_check , align_sprite_check); InsertWidgetInTable(hack_table , hack_offset_check , preload_gs_check); - InsertWidgetInTable(hack_table , hack_safe_fbmask); + InsertWidgetInTable(hack_table , hack_safe_fbmask , hack_fast_inv); InsertWidgetInTable(hack_table , hack_sprite_label , hack_sprite_box ); InsertWidgetInTable(hack_table , stretch_hack_label , stretch_hack_box ); InsertWidgetInTable(hack_table , hack_skipdraw_label , hack_skipdraw_spin); diff --git a/plugins/GSdx/GSSetting.cpp b/plugins/GSdx/GSSetting.cpp index 2c5fe63d77..74c54eb411 100644 --- a/plugins/GSdx/GSSetting.cpp +++ b/plugins/GSdx/GSSetting.cpp @@ -131,6 +131,11 @@ const char* dialog_message(int ID, bool* updateText) { return "Uploads GS data when rendering a new frame to reproduce some effects accurately. Fixes black screen issues in games like Armored Core: Last Raven."; case IDC_MIPMAP: return "Enables mipmapping, which some games require to render correctly. Turn off only for debug purposes."; +#ifdef __linux__ + 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 game."; +#endif default: if (updateText) *updateText = false; diff --git a/plugins/GSdx/GSSetting.h b/plugins/GSdx/GSSetting.h index 54e680485f..ba47d92810 100644 --- a/plugins/GSdx/GSSetting.h +++ b/plugins/GSdx/GSSetting.h @@ -72,6 +72,7 @@ enum { IDC_SHADER_FX, IDC_FXAA, IDC_MIPMAP, - IDC_PRELOAD_GS + IDC_PRELOAD_GS, + IDC_FAST_TC_INV, }; #endif