From 54dbf20480c338f0d3e3a4e3206afc94f422fe57 Mon Sep 17 00:00:00 2001 From: Lurs <2795933+Lurs@users.noreply.github.com> Date: Sun, 24 May 2026 21:36:38 +0200 Subject: [PATCH] Fix mipmapping of BC1 textures. Update aurora. --- extern/aurora | 2 +- src/dusk/tphd/HdAssetLayer.cpp | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/extern/aurora b/extern/aurora index a2889a0b0e..5c5873e53d 160000 --- a/extern/aurora +++ b/extern/aurora @@ -1 +1 @@ -Subproject commit a2889a0b0eb6dcb0c48b4cbe0de9c8238cdb759a +Subproject commit 5c5873e53ddec4cbfe5b992b472358fb5dab2631 diff --git a/src/dusk/tphd/HdAssetLayer.cpp b/src/dusk/tphd/HdAssetLayer.cpp index ccb56f2dc6..be1d87969a 100644 --- a/src/dusk/tphd/HdAssetLayer.cpp +++ b/src/dusk/tphd/HdAssetLayer.cpp @@ -243,9 +243,11 @@ MipLevelDesc mipLevelDesc(const GtxSurface& s, u32 level, bool isBcn, u32 bpp) { const bool is1D = (d.tileMode == addrlib::TileMode::Tiled1DThin1 || d.tileMode == addrlib::TileMode::Tiled1DThick); const u32 alignment = is1D ? 8u : 32u; - u32 levelPitch = std::max(1u, s.pitch >> level); - levelPitch = ((levelPitch + alignment - 1) / alignment) * alignment; - d.pitch = levelPitch; + + const u32 pixelsPerBlock = isBcn ? 4u : 1u; + const u32 widthInBlock = (d.width + pixelsPerBlock - 1) / pixelsPerBlock; + u32 levelPitch = ((widthInBlock + alignment - 1) / alignment) * alignment; + d.pitch = std::max(1u, levelPitch); return d; }