diff --git a/docs/user/Graphics.md b/docs/user/Graphics.md
index ccbc6cea4c..7100030ade 100644
--- a/docs/user/Graphics.md
+++ b/docs/user/Graphics.md
@@ -43,6 +43,12 @@ Various graphical filters exist - each of them aimed at a specific target/image
- **Pros**: Offers decent pixel-art upscaling.
- **Cons**: Only works for pixel-art.
+### Anisotropy values
+
+The anisotropy value is (value game wants + the set value); **Default** will use the native anisotropy value as it would be on hardware. **Automatic** sets it according to screen resolution. Turning off anisotropy is not recommended as it can break a myriad of games, however it is provided in the name of flexibility.
+
+Values from x2, x4, x8, x16, x32 up to x64 values are provided. This should be enough to not need to revise those values in my lifetime ever again.
+
### External
While stock shaders offer a basic subset of options for most users, programs such as [ReShade](https://github.com/crosire/reshade) offer a more flexible experience. In addition to that users can also seek out modifications (mods) for enhancing visual experience (60 FPS mods, HDR, etc).
diff --git a/src/android/app/src/main/res/values-ar/strings.xml b/src/android/app/src/main/res/values-ar/strings.xml
index 42d579b265..deeff43fda 100644
--- a/src/android/app/src/main/res/values-ar/strings.xml
+++ b/src/android/app/src/main/res/values-ar/strings.xml
@@ -1016,10 +1016,13 @@
cubeb
- 2x
- 4x
- 8x
- 16x
+ x2
+ x4
+ x8
+ x16
+ x32
+ x64
+ None
خلفيات سوداء
diff --git a/src/android/app/src/main/res/values-ckb/strings.xml b/src/android/app/src/main/res/values-ckb/strings.xml
index 732e558a38..4c6bc8d2db 100644
--- a/src/android/app/src/main/res/values-ckb/strings.xml
+++ b/src/android/app/src/main/res/values-ckb/strings.xml
@@ -727,10 +727,13 @@
تاریک
- 2x
- 4x
- 8x
- 16x
+ x2
+ x4
+ x8
+ x16
+ x32
+ x64
+ None
پاشبنەمای ڕەش
diff --git a/src/android/app/src/main/res/values-cs/strings.xml b/src/android/app/src/main/res/values-cs/strings.xml
index 00c0c3fe15..9763895732 100644
--- a/src/android/app/src/main/res/values-cs/strings.xml
+++ b/src/android/app/src/main/res/values-cs/strings.xml
@@ -693,10 +693,13 @@
Tmavé
- 2x
- 4x
- 8x
- 16x
+ x2
+ x4
+ x8
+ x16
+ x32
+ x64
+ None
Černá pozadí
diff --git a/src/android/app/src/main/res/values-de/strings.xml b/src/android/app/src/main/res/values-de/strings.xml
index edafa86687..102e1a8566 100644
--- a/src/android/app/src/main/res/values-de/strings.xml
+++ b/src/android/app/src/main/res/values-de/strings.xml
@@ -912,10 +912,13 @@ Wirklich fortfahren?
cubeb
- 2x
- 4x
- 8x
- 16x
+ x2
+ x4
+ x8
+ x16
+ x32
+ x64
+ None
Schwarze Hintergründe
diff --git a/src/android/app/src/main/res/values-es/strings.xml b/src/android/app/src/main/res/values-es/strings.xml
index cfb881c1bd..ea77c8c4d6 100644
--- a/src/android/app/src/main/res/values-es/strings.xml
+++ b/src/android/app/src/main/res/values-es/strings.xml
@@ -975,10 +975,13 @@
cubeb
- x2
- x4
- x8
- x16
+ x2
+ x4
+ x8
+ x16
+ x32
+ x64
+ None
Fondos oscuros
diff --git a/src/android/app/src/main/res/values-fa/strings.xml b/src/android/app/src/main/res/values-fa/strings.xml
index 51c7871f66..345230bbe2 100644
--- a/src/android/app/src/main/res/values-fa/strings.xml
+++ b/src/android/app/src/main/res/values-fa/strings.xml
@@ -861,10 +861,13 @@
cubeb
- 2x
- 4x
- 8x
- 16x
+ x2
+ x4
+ x8
+ x16
+ x32
+ x64
+ None
پسزمینه مشکی
diff --git a/src/android/app/src/main/res/values-fr/strings.xml b/src/android/app/src/main/res/values-fr/strings.xml
index 817e135e49..7a421103b2 100644
--- a/src/android/app/src/main/res/values-fr/strings.xml
+++ b/src/android/app/src/main/res/values-fr/strings.xml
@@ -988,10 +988,13 @@
cubeb
- 2x
- 4x
- 8x
- 16x
+ x2
+ x4
+ x8
+ x16
+ x32
+ x64
+ None
Arrière-plan noir
diff --git a/src/android/app/src/main/res/values-he/strings.xml b/src/android/app/src/main/res/values-he/strings.xml
index 987c69b8e4..5119e47493 100644
--- a/src/android/app/src/main/res/values-he/strings.xml
+++ b/src/android/app/src/main/res/values-he/strings.xml
@@ -776,10 +776,13 @@
cubeb
- 2x
- 4x
- 8x
- 16x
+ x2
+ x4
+ x8
+ x16
+ x32
+ x64
+ None
רקעים שחורים
diff --git a/src/android/app/src/main/res/values-hu/strings.xml b/src/android/app/src/main/res/values-hu/strings.xml
index 6257b7819d..5db3416c62 100644
--- a/src/android/app/src/main/res/values-hu/strings.xml
+++ b/src/android/app/src/main/res/values-hu/strings.xml
@@ -875,10 +875,13 @@
cubeb
- 2x
- 4x
- 8x
- 16x
+ x2
+ x4
+ x8
+ x16
+ x32
+ x64
+ None
Fekete háttér
diff --git a/src/android/app/src/main/res/values-id/strings.xml b/src/android/app/src/main/res/values-id/strings.xml
index 5c05e6b01d..0240520a93 100644
--- a/src/android/app/src/main/res/values-id/strings.xml
+++ b/src/android/app/src/main/res/values-id/strings.xml
@@ -929,10 +929,13 @@
Cubeb
- 2x
- 4x
- 8x
- 16x
+ x2
+ x4
+ x8
+ x16
+ x32
+ x64
+ None
Gunakan Latar Belakang Hitam
diff --git a/src/android/app/src/main/res/values-it/strings.xml b/src/android/app/src/main/res/values-it/strings.xml
index ea599b8d57..3b6a0e23c8 100644
--- a/src/android/app/src/main/res/values-it/strings.xml
+++ b/src/android/app/src/main/res/values-it/strings.xml
@@ -988,10 +988,13 @@
cubeb
- 2x
- 4x
- 8x
- 16x
+ x2
+ x4
+ x8
+ x16
+ x32
+ x64
+ None
Sfondi neri
diff --git a/src/android/app/src/main/res/values-ja/strings.xml b/src/android/app/src/main/res/values-ja/strings.xml
index c250f2145b..01a2bd2cae 100644
--- a/src/android/app/src/main/res/values-ja/strings.xml
+++ b/src/android/app/src/main/res/values-ja/strings.xml
@@ -778,10 +778,13 @@
cubeb
- 2x
- 4x
- 8x
- 16x
+ x2
+ x4
+ x8
+ x16
+ x32
+ x64
+ None
完全な黒を使用
diff --git a/src/android/app/src/main/res/values-ko/strings.xml b/src/android/app/src/main/res/values-ko/strings.xml
index eec91a13f9..af02f19c3c 100644
--- a/src/android/app/src/main/res/values-ko/strings.xml
+++ b/src/android/app/src/main/res/values-ko/strings.xml
@@ -837,10 +837,13 @@
cubeb
- 2x
- 4x
- 8x
- 16x
+ x2
+ x4
+ x8
+ x16
+ x32
+ x64
+ None
검정 배경
diff --git a/src/android/app/src/main/res/values-nb/strings.xml b/src/android/app/src/main/res/values-nb/strings.xml
index 94a37994ae..e691f6b233 100644
--- a/src/android/app/src/main/res/values-nb/strings.xml
+++ b/src/android/app/src/main/res/values-nb/strings.xml
@@ -740,10 +740,13 @@
Mørk
- 2x
- 4x
- 8x
- 16x
+ x2
+ x4
+ x8
+ x16
+ x32
+ x64
+ None
Svart bakgrunn
diff --git a/src/android/app/src/main/res/values-pl/strings.xml b/src/android/app/src/main/res/values-pl/strings.xml
index 232142fe26..dca27f67f3 100644
--- a/src/android/app/src/main/res/values-pl/strings.xml
+++ b/src/android/app/src/main/res/values-pl/strings.xml
@@ -1012,10 +1012,13 @@
cubeb
- 2x
- 4x
- 8x
- 16x
+ x2
+ x4
+ x8
+ x16
+ x32
+ x64
+ None
Czarne tła
diff --git a/src/android/app/src/main/res/values-pt-rBR/strings.xml b/src/android/app/src/main/res/values-pt-rBR/strings.xml
index 531b4d515c..1d85e663b5 100644
--- a/src/android/app/src/main/res/values-pt-rBR/strings.xml
+++ b/src/android/app/src/main/res/values-pt-rBR/strings.xml
@@ -976,10 +976,13 @@ uma tentativa de mapeamento automático
cubeb
- 2x
- 4x
- 8x
- 16x
+ x2
+ x4
+ x8
+ x16
+ x32
+ x64
+ None
Planos de fundo pretos
diff --git a/src/android/app/src/main/res/values-pt-rPT/strings.xml b/src/android/app/src/main/res/values-pt-rPT/strings.xml
index 18c7d2292e..b45ec0f87e 100644
--- a/src/android/app/src/main/res/values-pt-rPT/strings.xml
+++ b/src/android/app/src/main/res/values-pt-rPT/strings.xml
@@ -890,10 +890,13 @@ uma tentativa de mapeamento automático
cubeb
- 2x
- 4x
- 8x
- 16x
+ x2
+ x4
+ x8
+ x16
+ x32
+ x64
+ None
Plano de fundo preto
diff --git a/src/android/app/src/main/res/values-ru/strings.xml b/src/android/app/src/main/res/values-ru/strings.xml
index 301f7a67a3..e73391f980 100644
--- a/src/android/app/src/main/res/values-ru/strings.xml
+++ b/src/android/app/src/main/res/values-ru/strings.xml
@@ -1010,10 +1010,13 @@
cubeb
- 2x
- 4x
- 8x
- 16x
+ x2
+ x4
+ x8
+ x16
+ x32
+ x64
+ None
Чёрный фон
diff --git a/src/android/app/src/main/res/values-sr/strings.xml b/src/android/app/src/main/res/values-sr/strings.xml
index a44f05bb9c..4c1ca2f024 100644
--- a/src/android/app/src/main/res/values-sr/strings.xml
+++ b/src/android/app/src/main/res/values-sr/strings.xml
@@ -888,10 +888,13 @@
Цубеб
- 2к
- 4к
- 8к
- 16к
+ x2
+ x4
+ x8
+ x16
+ x32
+ x64
+ None
Црна позадина
diff --git a/src/android/app/src/main/res/values-uk/strings.xml b/src/android/app/src/main/res/values-uk/strings.xml
index f9dcf2b4c6..aca7e399e6 100644
--- a/src/android/app/src/main/res/values-uk/strings.xml
+++ b/src/android/app/src/main/res/values-uk/strings.xml
@@ -1012,10 +1012,13 @@
cubeb
- 2x
- 4x
- 8x
- 16x
+ x2
+ x4
+ x8
+ x16
+ x32
+ x64
+ None
Чорний фон
diff --git a/src/android/app/src/main/res/values-vi/strings.xml b/src/android/app/src/main/res/values-vi/strings.xml
index 9dc13a2759..b54c416737 100644
--- a/src/android/app/src/main/res/values-vi/strings.xml
+++ b/src/android/app/src/main/res/values-vi/strings.xml
@@ -740,10 +740,13 @@
Tối
- 2x
- 4x
- 8x
- 16x
+ x2
+ x4
+ x8
+ x16
+ x32
+ x64
+ None
Nền tối
diff --git a/src/android/app/src/main/res/values-zh-rCN/strings.xml b/src/android/app/src/main/res/values-zh-rCN/strings.xml
index abb3c94d7f..b5240a2c74 100644
--- a/src/android/app/src/main/res/values-zh-rCN/strings.xml
+++ b/src/android/app/src/main/res/values-zh-rCN/strings.xml
@@ -984,10 +984,13 @@
cubeb
- 2x
- 4x
- 8x
- 16x
+ x2
+ x4
+ x8
+ x16
+ x32
+ x64
+ None
使用黑色背景
diff --git a/src/android/app/src/main/res/values-zh-rTW/strings.xml b/src/android/app/src/main/res/values-zh-rTW/strings.xml
index 59d0d5c366..d42a7f64c9 100644
--- a/src/android/app/src/main/res/values-zh-rTW/strings.xml
+++ b/src/android/app/src/main/res/values-zh-rTW/strings.xml
@@ -984,10 +984,13 @@
cubeb
- 2x
- 4x
- 8x
- 16x
+ x2
+ x4
+ x8
+ x16
+ x32
+ x64
+ None
黑色背景
diff --git a/src/android/app/src/main/res/values/arrays.xml b/src/android/app/src/main/res/values/arrays.xml
index 12dec24219..b1aab5351d 100644
--- a/src/android/app/src/main/res/values/arrays.xml
+++ b/src/android/app/src/main/res/values/arrays.xml
@@ -487,10 +487,13 @@
- @string/auto
- @string/slider_default
- - @string/multiplier_two
- - @string/multiplier_four
- - @string/multiplier_eight
- - @string/multiplier_sixteen
+ - @string/multiplier_x2
+ - @string/multiplier_x4
+ - @string/multiplier_x8
+ - @string/multiplier_x16
+ - @string/multiplier_x32
+ - @string/multiplier_x64
+ - @string/multiplier_none
- 0
diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml
index 2dcee90404..f0e012e6b7 100644
--- a/src/android/app/src/main/res/values/strings.xml
+++ b/src/android/app/src/main/res/values/strings.xml
@@ -1055,10 +1055,13 @@
cubeb
- 2x
- 4x
- 8x
- 16x
+ x2
+ x4
+ x8
+ x16
+ x32
+ x64
+ None
Black backgrounds
diff --git a/src/common/settings_enums.h b/src/common/settings_enums.h
index 3ba2144efc..c2d443ce1c 100644
--- a/src/common/settings_enums.h
+++ b/src/common/settings_enums.h
@@ -126,7 +126,7 @@ ENUM(TimeZone, Auto, Default, Cet, Cst6Cdt, Cuba, Eet, Egypt, Eire, Est, Est5Edt
GmtPlusZero, GmtMinusZero, GmtZero, Greenwich, Hongkong, Hst, Iceland, Iran, Israel, Jamaica,
Japan, Kwajalein, Libya, Met, Mst, Mst7Mdt, Navajo, Nz, NzChat, Poland, Portugal, Prc, Pst8Pdt,
Roc, Rok, Singapore, Turkey, Uct, Universal, Utc, WSu, Wet, Zulu);
-ENUM(AnisotropyMode, Automatic, Default, X2, X4, X8, X16);
+ENUM(AnisotropyMode, Automatic, Default, X2, X4, X8, X16, X32, X64, None);
ENUM(AstcDecodeMode, Cpu, Gpu, CpuAsynchronous);
ENUM(AstcRecompression, Uncompressed, Bc1, Bc3);
ENUM(VSyncMode, Immediate, Mailbox, Fifo, FifoRelaxed);
diff --git a/src/qt_common/config/shared_translation.cpp b/src/qt_common/config/shared_translation.cpp
index f8295e61c0..9fc254eed2 100644
--- a/src/qt_common/config/shared_translation.cpp
+++ b/src/qt_common/config/shared_translation.cpp
@@ -596,6 +596,9 @@ std::unique_ptr ComboboxEnumeration(QObject* parent)
PAIR(AnisotropyMode, X4, tr("4x")),
PAIR(AnisotropyMode, X8, tr("8x")),
PAIR(AnisotropyMode, X16, tr("16x")),
+ PAIR(AnisotropyMode, X32, tr("32x")),
+ PAIR(AnisotropyMode, X64, tr("64x")),
+ PAIR(AnisotropyMode, None, tr("None")),
}});
translations->insert(
{Settings::EnumMetadata::Index(),
diff --git a/src/video_core/textures/texture.cpp b/src/video_core/textures/texture.cpp
index b51441bdfe..d32872e35d 100644
--- a/src/video_core/textures/texture.cpp
+++ b/src/video_core/textures/texture.cpp
@@ -69,20 +69,29 @@ float TSCEntry::MaxAnisotropy() const noexcept {
const bool has_regular_lods = min_lod_clamp == 0 && max_lod_clamp >= 256;
const bool is_bilinear_filter = min_filter == TextureFilter::Linear &&
reduction_filter == SamplerReduction::WeightedAverage;
- if (max_anisotropy == 0 && (!is_suitable_mipmap_filter || !has_regular_lods ||
- !is_bilinear_filter || depth_compare_enabled)) {
+ if (max_anisotropy == 0 && (!is_suitable_mipmap_filter || !has_regular_lods || !is_bilinear_filter || depth_compare_enabled))
return 1.0f;
- }
- const auto anisotropic_settings = Settings::values.max_anisotropy.GetValue();
+
s32 added_anisotropic{};
- if (anisotropic_settings == Settings::AnisotropyMode::Automatic) {
- added_anisotropic = Settings::values.resolution_info.up_scale >>
- Settings::values.resolution_info.down_shift;
- added_anisotropic = (std::max)(added_anisotropic - 1, 0);
- } else {
- added_anisotropic = static_cast(Settings::values.max_anisotropy.GetValue()) - 1U;
+ auto const anisotropic_settings = Settings::values.max_anisotropy.GetValue();
+ switch (anisotropic_settings) {
+ case Settings::AnisotropyMode::Default:
+ case Settings::AnisotropyMode::X2:
+ case Settings::AnisotropyMode::X4:
+ case Settings::AnisotropyMode::X8:
+ case Settings::AnisotropyMode::X16:
+ case Settings::AnisotropyMode::X32:
+ case Settings::AnisotropyMode::X64:
+ added_anisotropic = u32(anisotropic_settings) - 1U;
+ break;
+ case Settings::AnisotropyMode::Automatic:
+ added_anisotropic = Settings::values.resolution_info.up_scale >> Settings::values.resolution_info.down_shift;
+ added_anisotropic = (std::max)(added_anisotropic - 1U, 0U);
+ break;
+ case Settings::AnisotropyMode::None:
+ return 1.0f; //No use of anisotropy
}
- return static_cast(1U << (max_anisotropy + added_anisotropic));
+ return float(1U << (max_anisotropy + added_anisotropic));
}
} // namespace Tegra::Texture