summaryrefslogtreecommitdiffstats
path: root/src/video_core/surface.cpp
diff options
context:
space:
mode:
authorMatías Locatti <42481638+goldenx86@users.noreply.github.com>2024-02-21 03:19:27 +0100
committerGitHub <noreply@github.com>2024-02-21 03:19:27 +0100
commite0c17a21138ba4379a5c77b40a7d3fd7414ca605 (patch)
tree798f8678677cabd7c9048ed06022997a804a1aa5 /src/video_core/surface.cpp
parentMerge pull request #13091 from t895/device-renaming (diff)
parenttexture_cache: tweak iteration tracking change (diff)
downloadyuzu-e0c17a21138ba4379a5c77b40a7d3fd7414ca605.tar
yuzu-e0c17a21138ba4379a5c77b40a7d3fd7414ca605.tar.gz
yuzu-e0c17a21138ba4379a5c77b40a7d3fd7414ca605.tar.bz2
yuzu-e0c17a21138ba4379a5c77b40a7d3fd7414ca605.tar.lz
yuzu-e0c17a21138ba4379a5c77b40a7d3fd7414ca605.tar.xz
yuzu-e0c17a21138ba4379a5c77b40a7d3fd7414ca605.tar.zst
yuzu-e0c17a21138ba4379a5c77b40a7d3fd7414ca605.zip
Diffstat (limited to 'src/video_core/surface.cpp')
-rw-r--r--src/video_core/surface.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/video_core/surface.cpp b/src/video_core/surface.cpp
index 5b3c7aa5a..9055b1b92 100644
--- a/src/video_core/surface.cpp
+++ b/src/video_core/surface.cpp
@@ -3,6 +3,7 @@
#include "common/common_types.h"
#include "common/math_util.h"
+#include "common/settings.h"
#include "video_core/surface.h"
namespace VideoCore::Surface {
@@ -400,11 +401,20 @@ std::pair<u32, u32> GetASTCBlockSize(PixelFormat format) {
return {DefaultBlockWidth(format), DefaultBlockHeight(format)};
}
-u64 EstimatedDecompressedSize(u64 base_size, PixelFormat format) {
+u64 TranscodedAstcSize(u64 base_size, PixelFormat format) {
constexpr u64 RGBA8_PIXEL_SIZE = 4;
const u64 base_block_size = static_cast<u64>(DefaultBlockWidth(format)) *
static_cast<u64>(DefaultBlockHeight(format)) * RGBA8_PIXEL_SIZE;
- return (base_size * base_block_size) / BytesPerBlock(format);
+ const u64 uncompressed_size = (base_size * base_block_size) / BytesPerBlock(format);
+
+ switch (Settings::values.astc_recompression.GetValue()) {
+ case Settings::AstcRecompression::Bc1:
+ return uncompressed_size / 8;
+ case Settings::AstcRecompression::Bc3:
+ return uncompressed_size / 4;
+ default:
+ return uncompressed_size;
+ }
}
} // namespace VideoCore::Surface