From 9c909aefc49034e6d596797b8e85e23af0684edf Mon Sep 17 00:00:00 2001 From: Pierre-Eric Pelloux-Prayer Date: Tue, 19 Mar 2024 14:30:32 +0100 Subject: [PATCH] amd: fix addrlib regression MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts only a small chunk of e01266335b2 because this change caused this piglit test to page fault: nv_copy_image-formats --samples=8 GL_RGB32UI Fixes: e01266335b2 ("amd: update addrlib") Reviewed-by: Marek Olšák Part-of: --- src/amd/addrlib/src/gfx11/gfx11addrlib.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/amd/addrlib/src/gfx11/gfx11addrlib.cpp b/src/amd/addrlib/src/gfx11/gfx11addrlib.cpp index 30f1be8b882..5a717fcb304 100644 --- a/src/amd/addrlib/src/gfx11/gfx11addrlib.cpp +++ b/src/amd/addrlib/src/gfx11/gfx11addrlib.cpp @@ -1024,6 +1024,17 @@ UINT_32 Gfx11Lib::GetMetaBlkSize( // For htile surfaces, pad meta block size to 2K * num_pipes metablkSizeLog2 = Max(metablkSizeLog2, 11 + numPipesLog2); } + + /* This chunk is not part of upstream addrlib. See !28268 */ + const INT_32 compFragLog2 = numSamplesLog2; + + if (IsRtOptSwizzle(swizzleMode) && (compFragLog2 > 1) && (pipeRotateLog2 >= 1)) + { + const INT_32 tmp = 8 + m_pipesLog2 + Max(pipeRotateLog2, compFragLog2 - 1); + + metablkSizeLog2 = Max(metablkSizeLog2, tmp); + } + /* End of the non-upstream chunk. */ } const INT_32 metablkBitsLog2 =