diff options
author | bunnei <bunneidev@gmail.com> | 2021-06-11 07:17:33 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-11 07:17:33 +0200 |
commit | 46ec0ee55b5820a517f251780c908cff5fcd1c13 (patch) | |
tree | b8639614c724fb83f959e50da8608236b0210ebf /src | |
parent | Merge pull request #6444 from bunnei/fix-sm-sessions (diff) | |
parent | Fix GCC undefined behavior sanitizer. (diff) | |
download | yuzu-46ec0ee55b5820a517f251780c908cff5fcd1c13.tar yuzu-46ec0ee55b5820a517f251780c908cff5fcd1c13.tar.gz yuzu-46ec0ee55b5820a517f251780c908cff5fcd1c13.tar.bz2 yuzu-46ec0ee55b5820a517f251780c908cff5fcd1c13.tar.lz yuzu-46ec0ee55b5820a517f251780c908cff5fcd1c13.tar.xz yuzu-46ec0ee55b5820a517f251780c908cff5fcd1c13.tar.zst yuzu-46ec0ee55b5820a517f251780c908cff5fcd1c13.zip |
Diffstat (limited to 'src')
-rw-r--r-- | src/core/file_sys/program_metadata.cpp | 4 | ||||
-rw-r--r-- | src/video_core/buffer_cache/buffer_base.h | 3 | ||||
-rw-r--r-- | src/video_core/texture_cache/util.cpp | 3 |
3 files changed, 9 insertions, 1 deletions
diff --git a/src/core/file_sys/program_metadata.cpp b/src/core/file_sys/program_metadata.cpp index 83b83a044..01ae1a567 100644 --- a/src/core/file_sys/program_metadata.cpp +++ b/src/core/file_sys/program_metadata.cpp @@ -150,7 +150,9 @@ void ProgramMetadata::Print() const { LOG_DEBUG(Service_FS, " > Is Retail: {}", acid_header.is_retail ? "YES" : "NO"); LOG_DEBUG(Service_FS, "Title ID Min: 0x{:016X}", acid_header.title_id_min); LOG_DEBUG(Service_FS, "Title ID Max: 0x{:016X}", acid_header.title_id_max); - LOG_DEBUG(Service_FS, "Filesystem Access: 0x{:016X}\n", acid_file_access.permissions); + u64_le permissions_l; // local copy to fix alignment error + std::memcpy(&permissions_l, &acid_file_access.permissions, sizeof(permissions_l)); + LOG_DEBUG(Service_FS, "Filesystem Access: 0x{:016X}\n", permissions_l); // Begin ACI0 printing (actual perms, unsigned) LOG_DEBUG(Service_FS, "Magic: {:.4}", aci_header.magic.data()); diff --git a/src/video_core/buffer_cache/buffer_base.h b/src/video_core/buffer_cache/buffer_base.h index 0c00ae280..a39505903 100644 --- a/src/video_core/buffer_cache/buffer_base.h +++ b/src/video_core/buffer_cache/buffer_base.h @@ -476,6 +476,9 @@ private: current_size = 0; on_going = false; } + if (empty_bits == PAGES_PER_WORD) { + break; + } page += empty_bits; const int continuous_bits = std::countr_one(word >> page); diff --git a/src/video_core/texture_cache/util.cpp b/src/video_core/texture_cache/util.cpp index 8c4a5523b..906604a39 100644 --- a/src/video_core/texture_cache/util.cpp +++ b/src/video_core/texture_cache/util.cpp @@ -647,6 +647,9 @@ u32 CalculateLayerSize(const ImageInfo& info) noexcept { } LevelArray CalculateMipLevelOffsets(const ImageInfo& info) noexcept { + if (info.type == ImageType::Linear) { + return {}; + } ASSERT(info.resources.levels <= static_cast<s32>(MAX_MIP_LEVELS)); const LevelInfo level_info = MakeLevelInfo(info); LevelArray offsets{}; |