mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-04 00:30:11 +01:00
amdgpu/addrlib: Add a flag to skip calculate indices
This is useful for debugging and special cases for stencil surfaces do not require texture fetch compatible.
This commit is contained in:
parent
10f7d1cb03
commit
199912a9bc
3 changed files with 21 additions and 14 deletions
|
|
@ -513,7 +513,8 @@ typedef union _ADDR_SURFACE_FLAGS
|
|||
/// This flag indicates we need to override tile
|
||||
/// mode to PRT_* tile mode to disable slice rotation,
|
||||
/// which is needed by swizzle pattern equation.
|
||||
UINT_32 reserved : 8; ///< Reserved bits
|
||||
UINT_32 skipIndicesOutput : 1; ///< Skipping indices in output.
|
||||
UINT_32 reserved : 7; ///< Reserved bits
|
||||
};
|
||||
|
||||
UINT_32 value;
|
||||
|
|
|
|||
|
|
@ -4486,19 +4486,25 @@ ADDR_E_RETURNCODE EgBasedAddrLib::HwlComputeSurfaceInfo(
|
|||
retCode = ADDR_INVALIDPARAMS;
|
||||
}
|
||||
|
||||
// Returns an index
|
||||
pOut->tileIndex = HwlPostCheckTileIndex(pOut->pTileInfo,
|
||||
pOut->tileMode,
|
||||
pOut->tileType,
|
||||
pOut->tileIndex);
|
||||
|
||||
if (IsMacroTiled(pOut->tileMode) && (pOut->macroModeIndex == TileIndexInvalid))
|
||||
// In case client uses tile info as input and would like to calculate a correct size and
|
||||
// alignment together with tile info as output when the tile info is not suppose to have any
|
||||
// matching indices in tile mode tables.
|
||||
if (pIn->flags.skipIndicesOutput == FALSE)
|
||||
{
|
||||
pOut->macroModeIndex = HwlComputeMacroModeIndex(pOut->tileIndex,
|
||||
pIn->flags,
|
||||
pIn->bpp,
|
||||
pIn->numSamples,
|
||||
pOut->pTileInfo);
|
||||
// Returns an index
|
||||
pOut->tileIndex = HwlPostCheckTileIndex(pOut->pTileInfo,
|
||||
pOut->tileMode,
|
||||
pOut->tileType,
|
||||
pOut->tileIndex);
|
||||
|
||||
if (IsMacroTiled(pOut->tileMode) && (pOut->macroModeIndex == TileIndexInvalid))
|
||||
{
|
||||
pOut->macroModeIndex = HwlComputeMacroModeIndex(pOut->tileIndex,
|
||||
pIn->flags,
|
||||
pIn->bpp,
|
||||
pIn->numSamples,
|
||||
pOut->pTileInfo);
|
||||
}
|
||||
}
|
||||
|
||||
// Resets pTileInfo to NULL if the internal tile info is used
|
||||
|
|
|
|||
|
|
@ -3274,7 +3274,7 @@ VOID SiAddrLib::InitEquationTable()
|
|||
UINT_32 bpp = 1 << (log2ElementBytes + 3);
|
||||
|
||||
// Loop all possible tile index
|
||||
for (INT_32 tileIndex = 0; tileIndex < m_noOfEntries; tileIndex++)
|
||||
for (INT_32 tileIndex = 0; tileIndex < static_cast<INT_32>(m_noOfEntries); tileIndex++)
|
||||
{
|
||||
UINT_32 equationIndex = ADDR_INVALID_EQUATION_INDEX;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue