From ee0b6597a9579342029e46bf2bc4a8dd887f7896 Mon Sep 17 00:00:00 2001 From: Ilia Mirkin Date: Thu, 17 Nov 2016 22:40:29 -0500 Subject: [PATCH] swr: [rasterizer memory] minify texture width before alignment The minification should happen before alignment, not after. See similar logic on ComputeLODOffsetY. The current logic requires unnecessarily large textures when there's an initial NPOT size. Signed-off-by: Ilia Mirkin Reviewed-by: Tim Rowley --- src/gallium/drivers/swr/rasterizer/memory/TilingFunctions.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/swr/rasterizer/memory/TilingFunctions.h b/src/gallium/drivers/swr/rasterizer/memory/TilingFunctions.h index 11ed4518f2e..350e44b37b5 100644 --- a/src/gallium/drivers/swr/rasterizer/memory/TilingFunctions.h +++ b/src/gallium/drivers/swr/rasterizer/memory/TilingFunctions.h @@ -284,8 +284,8 @@ INLINE void ComputeLODOffset1D( offset = GFX_ALIGN(curWidth, hAlign); for (uint32_t l = 1; l < lod; ++l) { - curWidth = GFX_ALIGN(std::max(curWidth >> 1, 1U), hAlign); - offset += curWidth; + curWidth = std::max(curWidth >> 1, 1U); + offset += GFX_ALIGN(curWidth, hAlign); } if (info.isSubsampled || info.isBC) -- 2.30.2