diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/common/settings.cpp | 1 | ||||
| -rw-r--r-- | src/common/settings.h | 2 | ||||
| -rw-r--r-- | src/video_core/textures/texture.cpp | 3 | ||||
| -rw-r--r-- | src/yuzu/configuration/config.cpp | 2 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_graphics_advanced.cpp | 11 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_graphics_advanced.h | 1 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_graphics_advanced.ui | 13 | ||||
| -rw-r--r-- | src/yuzu_cmd/config.cpp | 1 | ||||
| -rw-r--r-- | src/yuzu_cmd/default_ini.h | 4 |
9 files changed, 37 insertions, 1 deletions
diff --git a/src/common/settings.cpp b/src/common/settings.cpp index 9ff3edabb..da5cca589 100644 --- a/src/common/settings.cpp +++ b/src/common/settings.cpp | |||
| @@ -236,6 +236,7 @@ void RestoreGlobalState(bool is_powered_on) { | |||
| 236 | values.bg_blue.SetGlobal(true); | 236 | values.bg_blue.SetGlobal(true); |
| 237 | values.enable_compute_pipelines.SetGlobal(true); | 237 | values.enable_compute_pipelines.SetGlobal(true); |
| 238 | values.use_video_framerate.SetGlobal(true); | 238 | values.use_video_framerate.SetGlobal(true); |
| 239 | values.use_aggressive_anisotropic_filtering.SetGlobal(true); | ||
| 239 | 240 | ||
| 240 | // System | 241 | // System |
| 241 | values.language_index.SetGlobal(true); | 242 | values.language_index.SetGlobal(true); |
diff --git a/src/common/settings.h b/src/common/settings.h index 9682281b0..78ca73e42 100644 --- a/src/common/settings.h +++ b/src/common/settings.h | |||
| @@ -483,6 +483,8 @@ struct Values { | |||
| 483 | AstcRecompression::Uncompressed, AstcRecompression::Uncompressed, AstcRecompression::Bc3, | 483 | AstcRecompression::Uncompressed, AstcRecompression::Uncompressed, AstcRecompression::Bc3, |
| 484 | "astc_recompression"}; | 484 | "astc_recompression"}; |
| 485 | SwitchableSetting<bool> use_video_framerate{false, "use_video_framerate"}; | 485 | SwitchableSetting<bool> use_video_framerate{false, "use_video_framerate"}; |
| 486 | SwitchableSetting<bool> use_aggressive_anisotropic_filtering{ | ||
| 487 | false, "use_aggressive_anisotropic_filtering"}; | ||
| 486 | 488 | ||
| 487 | SwitchableSetting<u8> bg_red{0, "bg_red"}; | 489 | SwitchableSetting<u8> bg_red{0, "bg_red"}; |
| 488 | SwitchableSetting<u8> bg_green{0, "bg_green"}; | 490 | SwitchableSetting<u8> bg_green{0, "bg_green"}; |
diff --git a/src/video_core/textures/texture.cpp b/src/video_core/textures/texture.cpp index 4a80a59f9..12372a004 100644 --- a/src/video_core/textures/texture.cpp +++ b/src/video_core/textures/texture.cpp | |||
| @@ -62,7 +62,8 @@ std::array<float, 4> TSCEntry::BorderColor() const noexcept { | |||
| 62 | } | 62 | } |
| 63 | 63 | ||
| 64 | float TSCEntry::MaxAnisotropy() const noexcept { | 64 | float TSCEntry::MaxAnisotropy() const noexcept { |
| 65 | if (max_anisotropy == 0 && mipmap_filter != TextureMipmapFilter::Linear) { | 65 | if (max_anisotropy == 0 && (mipmap_filter != TextureMipmapFilter::Linear && |
| 66 | !Settings::values.use_aggressive_anisotropic_filtering)) { | ||
| 66 | return 1.0f; | 67 | return 1.0f; |
| 67 | } | 68 | } |
| 68 | const auto anisotropic_settings = Settings::values.max_anisotropy.GetValue(); | 69 | const auto anisotropic_settings = Settings::values.max_anisotropy.GetValue(); |
diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp index bac9dff90..27839daaa 100644 --- a/src/yuzu/configuration/config.cpp +++ b/src/yuzu/configuration/config.cpp | |||
| @@ -761,6 +761,7 @@ void Config::ReadRendererValues() { | |||
| 761 | ReadGlobalSetting(Settings::values.use_vulkan_driver_pipeline_cache); | 761 | ReadGlobalSetting(Settings::values.use_vulkan_driver_pipeline_cache); |
| 762 | ReadGlobalSetting(Settings::values.enable_compute_pipelines); | 762 | ReadGlobalSetting(Settings::values.enable_compute_pipelines); |
| 763 | ReadGlobalSetting(Settings::values.use_video_framerate); | 763 | ReadGlobalSetting(Settings::values.use_video_framerate); |
| 764 | ReadGlobalSetting(Settings::values.use_aggressive_anisotropic_filtering); | ||
| 764 | ReadGlobalSetting(Settings::values.bg_red); | 765 | ReadGlobalSetting(Settings::values.bg_red); |
| 765 | ReadGlobalSetting(Settings::values.bg_green); | 766 | ReadGlobalSetting(Settings::values.bg_green); |
| 766 | ReadGlobalSetting(Settings::values.bg_blue); | 767 | ReadGlobalSetting(Settings::values.bg_blue); |
| @@ -1417,6 +1418,7 @@ void Config::SaveRendererValues() { | |||
| 1417 | WriteGlobalSetting(Settings::values.use_vulkan_driver_pipeline_cache); | 1418 | WriteGlobalSetting(Settings::values.use_vulkan_driver_pipeline_cache); |
| 1418 | WriteGlobalSetting(Settings::values.enable_compute_pipelines); | 1419 | WriteGlobalSetting(Settings::values.enable_compute_pipelines); |
| 1419 | WriteGlobalSetting(Settings::values.use_video_framerate); | 1420 | WriteGlobalSetting(Settings::values.use_video_framerate); |
| 1421 | WriteGlobalSetting(Settings::values.use_aggressive_anisotropic_filtering); | ||
| 1420 | WriteGlobalSetting(Settings::values.bg_red); | 1422 | WriteGlobalSetting(Settings::values.bg_red); |
| 1421 | WriteGlobalSetting(Settings::values.bg_green); | 1423 | WriteGlobalSetting(Settings::values.bg_green); |
| 1422 | WriteGlobalSetting(Settings::values.bg_blue); | 1424 | WriteGlobalSetting(Settings::values.bg_blue); |
diff --git a/src/yuzu/configuration/configure_graphics_advanced.cpp b/src/yuzu/configuration/configure_graphics_advanced.cpp index 0463ac8b9..3dce73968 100644 --- a/src/yuzu/configuration/configure_graphics_advanced.cpp +++ b/src/yuzu/configuration/configure_graphics_advanced.cpp | |||
| @@ -31,6 +31,7 @@ void ConfigureGraphicsAdvanced::SetConfiguration() { | |||
| 31 | ui->use_asynchronous_shaders->setEnabled(runtime_lock); | 31 | ui->use_asynchronous_shaders->setEnabled(runtime_lock); |
| 32 | ui->anisotropic_filtering_combobox->setEnabled(runtime_lock); | 32 | ui->anisotropic_filtering_combobox->setEnabled(runtime_lock); |
| 33 | ui->enable_compute_pipelines_checkbox->setEnabled(runtime_lock); | 33 | ui->enable_compute_pipelines_checkbox->setEnabled(runtime_lock); |
| 34 | ui->use_aggressive_anisotropic_filtering->setEnabled(runtime_lock); | ||
| 34 | 35 | ||
| 35 | ui->async_present->setChecked(Settings::values.async_presentation.GetValue()); | 36 | ui->async_present->setChecked(Settings::values.async_presentation.GetValue()); |
| 36 | ui->renderer_force_max_clock->setChecked(Settings::values.renderer_force_max_clock.GetValue()); | 37 | ui->renderer_force_max_clock->setChecked(Settings::values.renderer_force_max_clock.GetValue()); |
| @@ -43,6 +44,8 @@ void ConfigureGraphicsAdvanced::SetConfiguration() { | |||
| 43 | ui->enable_compute_pipelines_checkbox->setChecked( | 44 | ui->enable_compute_pipelines_checkbox->setChecked( |
| 44 | Settings::values.enable_compute_pipelines.GetValue()); | 45 | Settings::values.enable_compute_pipelines.GetValue()); |
| 45 | ui->use_video_framerate_checkbox->setChecked(Settings::values.use_video_framerate.GetValue()); | 46 | ui->use_video_framerate_checkbox->setChecked(Settings::values.use_video_framerate.GetValue()); |
| 47 | ui->use_aggressive_anisotropic_filtering->setChecked( | ||
| 48 | Settings::values.use_aggressive_anisotropic_filtering.GetValue()); | ||
| 46 | 49 | ||
| 47 | if (Settings::IsConfiguringGlobal()) { | 50 | if (Settings::IsConfiguringGlobal()) { |
| 48 | ui->gpu_accuracy->setCurrentIndex( | 51 | ui->gpu_accuracy->setCurrentIndex( |
| @@ -94,6 +97,9 @@ void ConfigureGraphicsAdvanced::ApplyConfiguration() { | |||
| 94 | enable_compute_pipelines); | 97 | enable_compute_pipelines); |
| 95 | ConfigurationShared::ApplyPerGameSetting(&Settings::values.use_video_framerate, | 98 | ConfigurationShared::ApplyPerGameSetting(&Settings::values.use_video_framerate, |
| 96 | ui->use_video_framerate_checkbox, use_video_framerate); | 99 | ui->use_video_framerate_checkbox, use_video_framerate); |
| 100 | ConfigurationShared::ApplyPerGameSetting(&Settings::values.use_aggressive_anisotropic_filtering, | ||
| 101 | ui->use_aggressive_anisotropic_filtering, | ||
| 102 | use_aggressive_anisotropic_filtering); | ||
| 97 | } | 103 | } |
| 98 | 104 | ||
| 99 | void ConfigureGraphicsAdvanced::changeEvent(QEvent* event) { | 105 | void ConfigureGraphicsAdvanced::changeEvent(QEvent* event) { |
| @@ -130,6 +136,8 @@ void ConfigureGraphicsAdvanced::SetupPerGameUI() { | |||
| 130 | Settings::values.enable_compute_pipelines.UsingGlobal()); | 136 | Settings::values.enable_compute_pipelines.UsingGlobal()); |
| 131 | ui->use_video_framerate_checkbox->setEnabled( | 137 | ui->use_video_framerate_checkbox->setEnabled( |
| 132 | Settings::values.use_video_framerate.UsingGlobal()); | 138 | Settings::values.use_video_framerate.UsingGlobal()); |
| 139 | ui->use_aggressive_anisotropic_filtering->setEnabled( | ||
| 140 | Settings::values.use_aggressive_anisotropic_filtering.UsingGlobal()); | ||
| 133 | 141 | ||
| 134 | return; | 142 | return; |
| 135 | } | 143 | } |
| @@ -157,6 +165,9 @@ void ConfigureGraphicsAdvanced::SetupPerGameUI() { | |||
| 157 | ConfigurationShared::SetColoredTristate(ui->use_video_framerate_checkbox, | 165 | ConfigurationShared::SetColoredTristate(ui->use_video_framerate_checkbox, |
| 158 | Settings::values.use_video_framerate, | 166 | Settings::values.use_video_framerate, |
| 159 | use_video_framerate); | 167 | use_video_framerate); |
| 168 | ConfigurationShared::SetColoredTristate(ui->use_aggressive_anisotropic_filtering, | ||
| 169 | Settings::values.use_aggressive_anisotropic_filtering, | ||
| 170 | use_aggressive_anisotropic_filtering); | ||
| 160 | ConfigurationShared::SetColoredComboBox( | 171 | ConfigurationShared::SetColoredComboBox( |
| 161 | ui->gpu_accuracy, ui->label_gpu_accuracy, | 172 | ui->gpu_accuracy, ui->label_gpu_accuracy, |
| 162 | static_cast<int>(Settings::values.gpu_accuracy.GetValue(true))); | 173 | static_cast<int>(Settings::values.gpu_accuracy.GetValue(true))); |
diff --git a/src/yuzu/configuration/configure_graphics_advanced.h b/src/yuzu/configuration/configure_graphics_advanced.h index a4dc8ceb0..4b52e5d61 100644 --- a/src/yuzu/configuration/configure_graphics_advanced.h +++ b/src/yuzu/configuration/configure_graphics_advanced.h | |||
| @@ -48,6 +48,7 @@ private: | |||
| 48 | ConfigurationShared::CheckState use_vulkan_driver_pipeline_cache; | 48 | ConfigurationShared::CheckState use_vulkan_driver_pipeline_cache; |
| 49 | ConfigurationShared::CheckState enable_compute_pipelines; | 49 | ConfigurationShared::CheckState enable_compute_pipelines; |
| 50 | ConfigurationShared::CheckState use_video_framerate; | 50 | ConfigurationShared::CheckState use_video_framerate; |
| 51 | ConfigurationShared::CheckState use_aggressive_anisotropic_filtering; | ||
| 51 | 52 | ||
| 52 | const Core::System& system; | 53 | const Core::System& system; |
| 53 | }; | 54 | }; |
diff --git a/src/yuzu/configuration/configure_graphics_advanced.ui b/src/yuzu/configuration/configure_graphics_advanced.ui index e7f0ef6be..06771c080 100644 --- a/src/yuzu/configuration/configure_graphics_advanced.ui +++ b/src/yuzu/configuration/configure_graphics_advanced.ui | |||
| @@ -260,6 +260,19 @@ Compute pipelines are always enabled on all other drivers.</string> | |||
| 260 | </layout> | 260 | </layout> |
| 261 | </widget> | 261 | </widget> |
| 262 | </item> | 262 | </item> |
| 263 | <item> | ||
| 264 | <widget class="QCheckBox" name="use_aggressive_anisotropic_filtering"> | ||
| 265 | <property name="toolTip"> | ||
| 266 | <string>Enable this option for a more aggressive approach to applying Anisotropic Filtering to textures. | ||
| 267 | By toggling this, Anisotropic Filtering is added to textures with both nearest and linear mipmapping modes. | ||
| 268 | This may result in improved visual quality for a wider range of textures, but can also introduce artifacts in | ||
| 269 | some titles.</string> | ||
| 270 | </property> | ||
| 271 | <property name="text"> | ||
| 272 | <string>Apply Anisotropic Filtering for all mipmap modes</string> | ||
| 273 | </property> | ||
| 274 | </widget> | ||
| 275 | </item> | ||
| 263 | </layout> | 276 | </layout> |
| 264 | </widget> | 277 | </widget> |
| 265 | </item> | 278 | </item> |
diff --git a/src/yuzu_cmd/config.cpp b/src/yuzu_cmd/config.cpp index c5bc472ca..f5a5364da 100644 --- a/src/yuzu_cmd/config.cpp +++ b/src/yuzu_cmd/config.cpp | |||
| @@ -321,6 +321,7 @@ void Config::ReadValues() { | |||
| 321 | ReadSetting("Renderer", Settings::values.astc_recompression); | 321 | ReadSetting("Renderer", Settings::values.astc_recompression); |
| 322 | ReadSetting("Renderer", Settings::values.use_fast_gpu_time); | 322 | ReadSetting("Renderer", Settings::values.use_fast_gpu_time); |
| 323 | ReadSetting("Renderer", Settings::values.use_vulkan_driver_pipeline_cache); | 323 | ReadSetting("Renderer", Settings::values.use_vulkan_driver_pipeline_cache); |
| 324 | ReadSetting("Renderer", Settings::values.use_aggressive_anisotropic_filtering); | ||
| 324 | 325 | ||
| 325 | ReadSetting("Renderer", Settings::values.bg_red); | 326 | ReadSetting("Renderer", Settings::values.bg_red); |
| 326 | ReadSetting("Renderer", Settings::values.bg_green); | 327 | ReadSetting("Renderer", Settings::values.bg_green); |
diff --git a/src/yuzu_cmd/default_ini.h b/src/yuzu_cmd/default_ini.h index 911d461e4..f12e2dfc9 100644 --- a/src/yuzu_cmd/default_ini.h +++ b/src/yuzu_cmd/default_ini.h | |||
| @@ -325,6 +325,10 @@ aspect_ratio = | |||
| 325 | # 0: Default, 1: 2x, 2: 4x, 3: 8x, 4: 16x | 325 | # 0: Default, 1: 2x, 2: 4x, 3: 8x, 4: 16x |
| 326 | max_anisotropy = | 326 | max_anisotropy = |
| 327 | 327 | ||
| 328 | # Apply Anisotropic Filtering to all mipmap modes. | ||
| 329 | # 0 (default): Off, 1: On | ||
| 330 | use_aggressive_anisotropic_filtering = | ||
| 331 | |||
| 328 | # Whether to enable VSync or not. | 332 | # Whether to enable VSync or not. |
| 329 | # OpenGL: Values other than 0 enable VSync | 333 | # OpenGL: Values other than 0 enable VSync |
| 330 | # Vulkan: FIFO is selected if the requested mode is not supported by the driver. | 334 | # Vulkan: FIFO is selected if the requested mode is not supported by the driver. |