From: Nicolai Hähnle <nicolai.haeh...@amd.com> If this flag is set for mip0, client should set prt flag for sub mips, so that address lib can select the correct tile index for sub mips. --- src/amd/addrlib/addrinterface.h | 5 ++++- src/amd/addrlib/r800/siaddrlib.cpp | 1 + 2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/amd/addrlib/addrinterface.h b/src/amd/addrlib/addrinterface.h index 2a61b2b..8506a45 100644 --- a/src/amd/addrlib/addrinterface.h +++ b/src/amd/addrlib/addrinterface.h @@ -612,21 +612,24 @@ typedef struct _ADDR_COMPUTE_SURFACE_INFO_OUTPUT INT_32 macroModeIndex; ///< Index in macro tile mode table if there is one (CI) /// Output flags struct { /// Special information to work around SI mipmap swizzle bug UBTS #317508 UINT_32 last2DLevel : 1; ///< TRUE if this is the last 2D(3D) tiled ///< Only meaningful when create flag checkLast2DLevel is set UINT_32 tcCompatible : 1; ///< If the surface can be shader compatible UINT_32 dccUnsupport : 1; ///< If the surface can support DCC compressed rendering - UINT_32 reserved :29; ///< Reserved bits + UINT_32 prtTileIndex : 1; ///< SI only, indicate the returned tile index is for PRT + ///< If address lib return true for mip 0, client should set prt flag + ///< for child mips in subsequent compute surface info calls + UINT_32 reserved :28; ///< Reserved bits }; UINT_32 equationIndex; ///< Equation index in the equation table; UINT_32 blockWidth; ///< Width in element inside one block(1D->Micro, 2D->Macro) UINT_32 blockHeight; ///< Height in element inside one block(1D->Micro, 2D->Macro) UINT_32 blockSlices; ///< Slice number inside one block(1D->Micro, 2D->Macro) /// Stereo info ADDR_QBSTEREOINFO* pStereoInfo;///< Stereo information, needed when .qbStereo flag is TRUE diff --git a/src/amd/addrlib/r800/siaddrlib.cpp b/src/amd/addrlib/r800/siaddrlib.cpp index d3e9486..d358f0d 100644 --- a/src/amd/addrlib/r800/siaddrlib.cpp +++ b/src/amd/addrlib/r800/siaddrlib.cpp @@ -2224,20 +2224,21 @@ VOID SiLib::HwlSetupTileInfo( { // Stencil always uses index 0 *pTileInfo = m_tileTable[0].info; } } // Pass through tile type pOut->tileType = inTileType; } pOut->tileIndex = index; + pOut->prtTileIndex = flags.prt; } /** **************************************************************************************************** * SiLib::DecodeGbRegs * * @brief * Decodes GB_ADDR_CONFIG and noOfBanks/noOfRanks * * @return -- 2.7.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev