summaryrefslogtreecommitdiffstats
path: root/src/video_core/texture_cache/image_base.cpp
diff options
context:
space:
mode:
authorMatías Locatti <42481638+goldenx86@users.noreply.github.com>2023-05-26 22:36:09 +0200
committerGitHub <noreply@github.com>2023-05-26 22:36:09 +0200
commit919b54848b4043265ce67bd15ca25651a223b0a5 (patch)
tree4814606205d9b30164ee0961243d8c6d1eb27588 /src/video_core/texture_cache/image_base.cpp
parentMerge pull request #10459 from liamwhite/shf (diff)
parenttexture_cache: process aliases and overlaps in the correct order (diff)
downloadyuzu-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.cpp7
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