diff options
author | Matías Locatti <42481638+goldenx86@users.noreply.github.com> | 2024-02-21 03:19:27 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-21 03:19:27 +0100 |
commit | e0c17a21138ba4379a5c77b40a7d3fd7414ca605 (patch) | |
tree | 798f8678677cabd7c9048ed06022997a804a1aa5 /src/video_core/surface.cpp | |
parent | Merge pull request #13091 from t895/device-renaming (diff) | |
parent | texture_cache: tweak iteration tracking change (diff) | |
download | yuzu-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 '')
-rw-r--r-- | src/video_core/surface.cpp | 14 |
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 |