diff --git a/src/video_core/texture_cache/types.h b/src/video_core/texture_cache/types.h index 07c3043865..ecacd8c6bd 100644 --- a/src/video_core/texture_cache/types.h +++ b/src/video_core/texture_cache/types.h @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later + // SPDX-FileCopyrightText: Copyright 2019 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +13,7 @@ namespace VideoCommon { constexpr size_t NUM_RT = 8; -constexpr size_t MAX_MIP_LEVELS = 14; +constexpr size_t MAX_MIP_LEVELS = 16; constexpr Common::SlotId CORRUPT_ID{0xfffffffe}; diff --git a/src/video_core/texture_cache/util.cpp b/src/video_core/texture_cache/util.cpp index 30e9579b6b..e55d0752ec 100644 --- a/src/video_core/texture_cache/util.cpp +++ b/src/video_core/texture_cache/util.cpp @@ -646,9 +646,10 @@ LevelArray CalculateMipLevelOffsets(const ImageInfo& info) noexcept { if (info.type == ImageType::Linear) { return {}; } - ASSERT(info.resources.levels <= static_cast(MAX_MIP_LEVELS)); - if (info.resources.levels > static_cast(MAX_MIP_LEVELS)) + if (info.resources.levels > static_cast(MAX_MIP_LEVELS)) { + LOG_ERROR(HW_GPU, "Image has too many mip levels={}, maximum supported is={}", info.resources.levels, MAX_MIP_LEVELS); return {}; + } const LevelInfo level_info = MakeLevelInfo(info); LevelArray offsets{}; u32 offset = 0;