diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/texture_cache/image_view_base.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/video_core/texture_cache/image_view_base.cpp b/src/video_core/texture_cache/image_view_base.cpp index 000eec869..0c5f4450d 100644 --- a/src/video_core/texture_cache/image_view_base.cpp +++ b/src/video_core/texture_cache/image_view_base.cpp | |||
| @@ -46,6 +46,12 @@ ImageViewBase::ImageViewBase(const ImageInfo& info, const ImageViewInfo& view_in | |||
| 46 | ImageViewBase::ImageViewBase(const NullImageViewParams&) : image_id{NULL_IMAGE_ID} {} | 46 | ImageViewBase::ImageViewBase(const NullImageViewParams&) : image_id{NULL_IMAGE_ID} {} |
| 47 | 47 | ||
| 48 | bool ImageViewBase::SupportsAnisotropy() const noexcept { | 48 | bool ImageViewBase::SupportsAnisotropy() const noexcept { |
| 49 | const bool has_mips = range.extent.levels > 1; | ||
| 50 | const bool is_2d = type == ImageViewType::e2D || type == ImageViewType::e2DArray; | ||
| 51 | if (!has_mips || !is_2d) { | ||
| 52 | return false; | ||
| 53 | } | ||
| 54 | |||
| 49 | switch (format) { | 55 | switch (format) { |
| 50 | case PixelFormat::R8_UNORM: | 56 | case PixelFormat::R8_UNORM: |
| 51 | case PixelFormat::R8_SNORM: | 57 | case PixelFormat::R8_SNORM: |
| @@ -87,9 +93,8 @@ bool ImageViewBase::SupportsAnisotropy() const noexcept { | |||
| 87 | case PixelFormat::D32_FLOAT_S8_UINT: | 93 | case PixelFormat::D32_FLOAT_S8_UINT: |
| 88 | return false; | 94 | return false; |
| 89 | default: | 95 | default: |
| 90 | break; | 96 | return true; |
| 91 | } | 97 | } |
| 92 | return range.extent.levels > 1; | ||
| 93 | } | 98 | } |
| 94 | 99 | ||
| 95 | } // namespace VideoCommon | 100 | } // namespace VideoCommon |