Browse Source

textures: Fix anisotropy hack

Previous code could generate an anisotropy value way higher than x16.
nce_cpp
ReinUsesLisp 6 years ago
parent
commit
b8e43cb17c
  1. 16
      src/video_core/textures/texture.h

16
src/video_core/textures/texture.h

@ -337,20 +337,22 @@ struct TSCEntry {
}; };
float GetMaxAnisotropy() const { float GetMaxAnisotropy() const {
const u32 min_value = [] {
switch (static_cast<Anisotropy>(Settings::values.max_anisotropy)) { switch (static_cast<Anisotropy>(Settings::values.max_anisotropy)) {
default:
case Anisotropy::Default: case Anisotropy::Default:
return static_cast<float>(1U << max_anisotropy);
return 1U;
case Anisotropy::Filter2x: case Anisotropy::Filter2x:
return static_cast<float>(2U << max_anisotropy);
return 2U;
case Anisotropy::Filter4x: case Anisotropy::Filter4x:
return static_cast<float>(4U << max_anisotropy);
return 4U;
case Anisotropy::Filter8x: case Anisotropy::Filter8x:
return static_cast<float>(8U << max_anisotropy);
return 8U;
case Anisotropy::Filter16x: case Anisotropy::Filter16x:
return static_cast<float>(16U << max_anisotropy);
default:
return static_cast<float>(1U << max_anisotropy);
return 16U;
} }
}();
return static_cast<float>(std::max(1U << max_anisotropy, min_value));
} }
float GetMinLod() const { float GetMinLod() const {

Loading…
Cancel
Save