[Mesa-dev] [PATCH 048/140] amdgpu/addrlib: Add a new output flag to notify client that the returned tile index is for PRT on SI
Marek Olšák
maraeo at gmail.com
Mon Mar 20 22:42:58 UTC 2017
From: Nicolai Hähnle <nicolai.haehnle at 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
More information about the mesa-dev
mailing list