diff options
author | Matías Locatti <42481638+goldenx86@users.noreply.github.com> | 2023-05-26 22:36:09 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-26 22:36:09 +0200 |
commit | 919b54848b4043265ce67bd15ca25651a223b0a5 (patch) | |
tree | 4814606205d9b30164ee0961243d8c6d1eb27588 /src/video_core/texture_cache/image_base.cpp | |
parent | Merge pull request #10459 from liamwhite/shf (diff) | |
parent | texture_cache: process aliases and overlaps in the correct order (diff) | |
download | yuzu-919b54848b4043265ce67bd15ca25651a223b0a5.tar yuzu-919b54848b4043265ce67bd15ca25651a223b0a5.tar.gz yuzu-919b54848b4043265ce67bd15ca25651a223b0a5.tar.bz2 yuzu-919b54848b4043265ce67bd15ca25651a223b0a5.tar.lz yuzu-919b54848b4043265ce67bd15ca25651a223b0a5.tar.xz yuzu-919b54848b4043265ce67bd15ca25651a223b0a5.tar.zst yuzu-919b54848b4043265ce67bd15ca25651a223b0a5.zip |
Diffstat (limited to 'src/video_core/texture_cache/image_base.cpp')
-rw-r--r-- | src/video_core/texture_cache/image_base.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/video_core/texture_cache/image_base.cpp b/src/video_core/texture_cache/image_base.cpp index 91512022f..d79594ce5 100644 --- a/src/video_core/texture_cache/image_base.cpp +++ b/src/video_core/texture_cache/image_base.cpp @@ -155,7 +155,7 @@ void ImageBase::CheckAliasState() { flags &= ~ImageFlagBits::Alias; } -void AddImageAlias(ImageBase& lhs, ImageBase& rhs, ImageId lhs_id, ImageId rhs_id) { +bool AddImageAlias(ImageBase& lhs, ImageBase& rhs, ImageId lhs_id, ImageId rhs_id) { static constexpr auto OPTIONS = RelaxedOptions::Size | RelaxedOptions::Format; ASSERT(lhs.info.type == rhs.info.type); std::optional<SubresourceBase> base; @@ -169,7 +169,7 @@ void AddImageAlias(ImageBase& lhs, ImageBase& rhs, ImageId lhs_id, ImageId rhs_i } if (!base) { LOG_ERROR(HW_GPU, "Image alias should have been flipped"); - return; + return false; } const PixelFormat lhs_format = lhs.info.format; const PixelFormat rhs_format = rhs.info.format; @@ -248,12 +248,13 @@ void AddImageAlias(ImageBase& lhs, ImageBase& rhs, ImageId lhs_id, ImageId rhs_i } ASSERT(lhs_alias.copies.empty() == rhs_alias.copies.empty()); if (lhs_alias.copies.empty()) { - return; + return false; } lhs.aliased_images.push_back(std::move(lhs_alias)); rhs.aliased_images.push_back(std::move(rhs_alias)); lhs.flags &= ~ImageFlagBits::IsRescalable; rhs.flags &= ~ImageFlagBits::IsRescalable; + return true; } } // namespace VideoCommon |