From 569dbfe8c04e5f852ef4db17f5f219fe2da27228 Mon Sep 17 00:00:00 2001 From: MaranBr Date: Fri, 7 Nov 2025 01:42:52 +0100 Subject: [PATCH] [video_core] Increase MAX_MIP_LEVELS to 16 according to specs (#2965) This increases MAX_MIP_LEVELS from 14 to 16, according to specs. Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2965 Reviewed-by: Maufeat Co-authored-by: MaranBr Co-committed-by: MaranBr --- src/video_core/texture_cache/types.h | 5 ++++- src/video_core/texture_cache/util.cpp | 5 +++-- 2 files changed, 7 insertions(+), 3 deletions(-) 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;