diff options
| author | Morph <39850852+Morph1984@users.noreply.github.com> | 2021-01-06 15:39:51 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-01-06 15:39:51 +0800 |
| commit | e8d40559d50b952335f4899392944a9dca418b62 (patch) | |
| tree | 94cbbc1e616e12ecc6b9c167f630649b829368fe /src/video_core/compatible_formats.cpp | |
| parent | e112d0a52fc0660a5faded0f438c2cde325e608c (diff) | |
| parent | 7d904fef2e6ac9ce8a3df71e758a36d39b8f69e5 (diff) | |
Merge pull request #5288 from ReinUsesLisp/workaround-garbage
gl_texture_cache: Avoid format views on Intel and AMD
Diffstat (limited to 'src/video_core/compatible_formats.cpp')
| -rw-r--r-- | src/video_core/compatible_formats.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/video_core/compatible_formats.cpp b/src/video_core/compatible_formats.cpp index 1619d8664..acf2668dc 100644 --- a/src/video_core/compatible_formats.cpp +++ b/src/video_core/compatible_formats.cpp @@ -10,9 +10,7 @@ #include "video_core/surface.h" namespace VideoCore::Surface { - namespace { - using Table = std::array<std::array<u64, 2>, MaxPixelFormat>; // Compatibility table taken from Table 3.X.2 in: @@ -233,10 +231,13 @@ constexpr Table MakeCopyTable() { EnableRange(copy, COPY_CLASS_64_BITS); return copy; } - } // Anonymous namespace -bool IsViewCompatible(PixelFormat format_a, PixelFormat format_b) { +bool IsViewCompatible(PixelFormat format_a, PixelFormat format_b, bool broken_views) { + if (broken_views) { + // If format views are broken, only accept formats that are identical. + return format_a == format_b; + } static constexpr Table TABLE = MakeViewTable(); return IsSupported(TABLE, format_a, format_b); } |
