Use Fast Texture Sampling by default
This commit changes the default value of Fast Texture Sampling to true, and also moves the setting that controls it to the experimental section of the advanced tab. This is its own commit so that it can be easily reverted when we want to default to Manual Texture Sampling. Co-authored-by: JosJuice <josjuice@gmail.com>
This commit is contained in:
parent
1adff1c467
commit
95b9941044
|
@ -199,7 +199,7 @@ public enum BooleanSetting implements AbstractBooleanSetting
|
|||
"EFBEmulateFormatChanges", false),
|
||||
GFX_HACK_VERTEX_ROUDING(Settings.FILE_GFX, Settings.SECTION_GFX_HACKS, "VertexRounding", false),
|
||||
GFX_HACK_FAST_TEXTURE_SAMPLING(Settings.FILE_GFX, Settings.SECTION_GFX_HACKS,
|
||||
"FastTextureSampling", false),
|
||||
"FastTextureSampling", true),
|
||||
|
||||
LOGGER_WRITE_TO_FILE(Settings.FILE_LOGGER, Settings.SECTION_LOGGER_OPTIONS, "WriteToFile", false),
|
||||
|
||||
|
|
|
@ -719,8 +719,6 @@ public final class SettingsFragmentPresenter
|
|||
R.string.vertex_rounding, R.string.vertex_rounding_description));
|
||||
sl.add(new CheckBoxSetting(mContext, BooleanSetting.GFX_SAVE_TEXTURE_CACHE_TO_STATE,
|
||||
R.string.texture_cache_to_state, R.string.texture_cache_to_state_description));
|
||||
sl.add(new CheckBoxSetting(mContext, BooleanSetting.GFX_HACK_FAST_TEXTURE_SAMPLING,
|
||||
R.string.fast_texture_sampling, R.string.fast_texture_sampling_description));
|
||||
}
|
||||
|
||||
private void addAdvancedGraphicsSettings(ArrayList<SettingsItem> sl)
|
||||
|
@ -746,6 +744,8 @@ public final class SettingsFragmentPresenter
|
|||
R.string.backend_multithreading, R.string.backend_multithreading_description));
|
||||
sl.add(new CheckBoxSetting(mContext, BooleanSetting.GFX_HACK_EFB_DEFER_INVALIDATION,
|
||||
R.string.defer_efb_invalidation, R.string.defer_efb_invalidation_description));
|
||||
sl.add(new InvertedCheckBoxSetting(mContext, BooleanSetting.GFX_HACK_FAST_TEXTURE_SAMPLING,
|
||||
R.string.manual_texture_sampling, R.string.manual_texture_sampling_description));
|
||||
sl.add(new CheckBoxSetting(mContext, BooleanSetting.GFX_INTERNAL_RESOLUTION_FRAME_DUMPS,
|
||||
R.string.internal_resolution_dumps, R.string.internal_resolution_dumps_description));
|
||||
|
||||
|
|
|
@ -277,8 +277,6 @@
|
|||
<string name="vertex_rounding_description">Rounds 2D vertices to whole pixels. Fixes graphical problems in some games at higher internal resolutions. This setting has no effect when native internal resolution is used. If unsure, leave this unchecked.</string>
|
||||
<string name="texture_cache_to_state">Save Texture Cache to State</string>
|
||||
<string name="texture_cache_to_state_description">Includes the contents of the embedded frame buffer (EFB) and upscaled EFB copies in save states. Fixes missing and/or non-upscaled textures/objects when loading states at the cost of additional save/load time.</string>
|
||||
<string name="fast_texture_sampling">Fast Texture Sampling</string>
|
||||
<string name="fast_texture_sampling_description">Use the video backend\'s built-in texture sampling functionality instead of a manual implementation.</string>
|
||||
<string name="aspect_ratio">Aspect Ratio</string>
|
||||
<string name="aspect_ratio_description">Select what aspect ratio to use when rendering</string>
|
||||
<string name="shader_compilation_mode">Shader Compilation Mode</string>
|
||||
|
@ -305,6 +303,8 @@
|
|||
<string name="backend_multithreading_description">Enables graphics backend multithreading (Vulkan only). May affect performance. If unsure, leave this unchecked.</string>
|
||||
<string name="defer_efb_invalidation">Defer EFB Cache Invalidation</string>
|
||||
<string name="defer_efb_invalidation_description">Defers invalidation of the EFB access cache until a GPU synchronization command is executed. May improve performance in some games at the cost of stability. If unsure, leave this unchecked.</string>
|
||||
<string name="manual_texture_sampling">Manual Texture Sampling</string>
|
||||
<string name="manual_texture_sampling_description">Use a manual implementation of texture sampling instead of the graphics backend\'s built-in functionality.</string>
|
||||
<string name="internal_resolution_dumps">Dump Frames at Internal Resolution</string>
|
||||
<string name="internal_resolution_dumps_description">Creates frame dumps and screenshots at the internal resolution of the renderer, rather than the size of the window it is displayed within. If the aspect ratio is widescreen, the output image will be scaled horizontally to preserve the vertical resolution.</string>
|
||||
<string name="debugging">Debugging</string>
|
||||
|
|
|
@ -151,7 +151,7 @@ const Info<bool> GFX_HACK_VERTEX_ROUDING{{System::GFX, "Hacks", "VertexRounding"
|
|||
const Info<u32> GFX_HACK_MISSING_COLOR_VALUE{{System::GFX, "Hacks", "MissingColorValue"},
|
||||
0xFFFFFFFF};
|
||||
const Info<bool> GFX_HACK_FAST_TEXTURE_SAMPLING{{System::GFX, "Hacks", "FastTextureSampling"},
|
||||
false};
|
||||
true};
|
||||
|
||||
// Graphics.GameSpecific
|
||||
|
||||
|
|
|
@ -138,8 +138,11 @@ void AdvancedWidget::CreateWidgets()
|
|||
|
||||
m_defer_efb_access_invalidation =
|
||||
new GraphicsBool(tr("Defer EFB Cache Invalidation"), Config::GFX_HACK_EFB_DEFER_INVALIDATION);
|
||||
m_manual_texture_sampling =
|
||||
new GraphicsBool(tr("Manual Texture Sampling"), Config::GFX_HACK_FAST_TEXTURE_SAMPLING, true);
|
||||
|
||||
experimental_layout->addWidget(m_defer_efb_access_invalidation, 0, 0);
|
||||
experimental_layout->addWidget(m_manual_texture_sampling, 0, 1);
|
||||
|
||||
main_layout->addWidget(debugging_box);
|
||||
main_layout->addWidget(utility_box);
|
||||
|
@ -266,6 +269,17 @@ void AdvancedWidget::AddDescriptions()
|
|||
"<br><br>May improve performance in some games which rely on CPU EFB Access at the cost "
|
||||
"of stability.<br><br><dolphin_emphasis>If unsure, leave this "
|
||||
"unchecked.</dolphin_emphasis>");
|
||||
static const char TR_MANUAL_TEXTURE_SAMPLING_DESCRIPTION[] = QT_TR_NOOP(
|
||||
"Use a manual implementation of texture sampling instead of the graphics backend's built-in "
|
||||
"functionality.<br><br>"
|
||||
"This setting can fix graphical issues in some games on certain GPUs, most commonly vertical "
|
||||
"lines on FMVs. In addition to this, enabling Manual Texture Sampling will allow for correct "
|
||||
"emulation of texture wrapping special cases (at 1x IR or when scaled EFB is disabled, and "
|
||||
"with custom textures disabled) and better emulates Level of Detail calculation.<br><br>"
|
||||
"This comes at the cost of potentially worse performance, especially at higher internal "
|
||||
"resolutions; additionally, Anisotropic Filtering is currently incompatible with Manual "
|
||||
"Texture Sampling.<br><br>"
|
||||
"<dolphin_emphasis>If unsure, leave this unchecked.</dolphin_emphasis>");
|
||||
|
||||
#ifdef _WIN32
|
||||
static const char TR_BORDERLESS_FULLSCREEN_DESCRIPTION[] = QT_TR_NOOP(
|
||||
|
@ -299,4 +313,5 @@ void AdvancedWidget::AddDescriptions()
|
|||
m_borderless_fullscreen->SetDescription(tr(TR_BORDERLESS_FULLSCREEN_DESCRIPTION));
|
||||
#endif
|
||||
m_defer_efb_access_invalidation->SetDescription(tr(TR_DEFER_EFB_ACCESS_INVALIDATION_DESCRIPTION));
|
||||
m_manual_texture_sampling->SetDescription(tr(TR_MANUAL_TEXTURE_SAMPLING_DESCRIPTION));
|
||||
}
|
||||
|
|
|
@ -61,4 +61,5 @@ private:
|
|||
|
||||
// Experimental
|
||||
GraphicsBool* m_defer_efb_access_invalidation;
|
||||
GraphicsBool* m_manual_texture_sampling;
|
||||
};
|
||||
|
|
|
@ -106,14 +106,11 @@ void HacksWidget::CreateWidgets()
|
|||
m_vertex_rounding = new GraphicsBool(tr("Vertex Rounding"), Config::GFX_HACK_VERTEX_ROUDING);
|
||||
m_save_texture_cache_state =
|
||||
new GraphicsBool(tr("Save Texture Cache to State"), Config::GFX_SAVE_TEXTURE_CACHE_TO_STATE);
|
||||
m_fast_texture_sampling =
|
||||
new GraphicsBool(tr("Fast Texture Sampling"), Config::GFX_HACK_FAST_TEXTURE_SAMPLING);
|
||||
|
||||
other_layout->addWidget(m_fast_depth_calculation, 0, 0);
|
||||
other_layout->addWidget(m_disable_bounding_box, 0, 1);
|
||||
other_layout->addWidget(m_vertex_rounding, 1, 0);
|
||||
other_layout->addWidget(m_save_texture_cache_state, 1, 1);
|
||||
other_layout->addWidget(m_fast_texture_sampling, 2, 0);
|
||||
|
||||
main_layout->addWidget(efb_box);
|
||||
main_layout->addWidget(texture_cache_box);
|
||||
|
@ -279,17 +276,6 @@ void HacksWidget::AddDescriptions()
|
|||
"higher internal resolutions. This setting has no effect when native internal "
|
||||
"resolution is used.<br><br><dolphin_emphasis>If unsure, leave this "
|
||||
"unchecked.</dolphin_emphasis>");
|
||||
static const char TR_FAST_TEXTURE_SAMPLING_DESCRIPTION[] = QT_TR_NOOP(
|
||||
"Use the video backend's built-in texture sampling functionality instead of a manual "
|
||||
"implementation.<br><br>"
|
||||
"This setting can cause potentially improve performance, especially at higher internal "
|
||||
"resolutions; additionally, Anisotropic Filtering currently only works with Fast Texture "
|
||||
"Sampling.<br><br>"
|
||||
"This comes at the cost of graphical issues in some games on certain GPUs, most commonly "
|
||||
"vertical lines on FMVs, as well as lack of emulation of texture wrapping special cases "
|
||||
"(though this also only works at 1x IR or when scaled EFB is disabled, and with custom "
|
||||
"textures disabled) and worse emulation of Level of Detail calculation.<br><br>"
|
||||
"<dolphin_emphasis>If unsure, leave this unchecked.</dolphin_emphasis>");
|
||||
|
||||
m_skip_efb_cpu->SetDescription(tr(TR_SKIP_EFB_CPU_ACCESS_DESCRIPTION));
|
||||
m_ignore_format_changes->SetDescription(tr(TR_IGNORE_FORMAT_CHANGE_DESCRIPTION));
|
||||
|
@ -305,7 +291,6 @@ void HacksWidget::AddDescriptions()
|
|||
m_disable_bounding_box->SetDescription(tr(TR_DISABLE_BOUNDINGBOX_DESCRIPTION));
|
||||
m_save_texture_cache_state->SetDescription(tr(TR_SAVE_TEXTURE_CACHE_TO_STATE_DESCRIPTION));
|
||||
m_vertex_rounding->SetDescription(tr(TR_VERTEX_ROUNDING_DESCRIPTION));
|
||||
m_fast_texture_sampling->SetDescription(tr(TR_FAST_TEXTURE_SAMPLING_DESCRIPTION));
|
||||
}
|
||||
|
||||
void HacksWidget::UpdateDeferEFBCopiesEnabled()
|
||||
|
|
|
@ -43,7 +43,6 @@ private:
|
|||
GraphicsBool* m_disable_bounding_box;
|
||||
GraphicsBool* m_vertex_rounding;
|
||||
GraphicsBool* m_save_texture_cache_state;
|
||||
GraphicsBool* m_fast_texture_sampling;
|
||||
|
||||
void CreateWidgets();
|
||||
void ConnectWidgets();
|
||||
|
|
Loading…
Reference in New Issue