UINT_32 macroWidth; ///< Macro width in pixels, actually squared cache shape
UINT_32 macroHeight; ///< Macro height in pixels
UINT_64 sliceSize; ///< Slice size, in bytes.
+ BOOL_32 sliceInterleaved; ///< Flag to indicate if different slice's htile is interleaved
+ /// Compute engine clear can't be used if htile is interleaved
} ADDR_COMPUTE_HTILE_INFO_OUTPUT;
/**
&pOut->macroHeight,
&pOut->sliceSize,
&pOut->baseAlign);
+
+ if (pIn->flags.tcCompatible && (pIn->numSlices > 1))
+ {
+ pOut->sliceSize = pIn->pitch * pIn->height * 4 / (8 * 8);
+
+ const UINT_32 align = HwlGetPipes(pIn->pTileInfo) * pIn->pTileInfo->banks * m_pipeInterleaveBytes;
+
+ if ((pOut->sliceSize % align) == 0)
+ {
+ pOut->sliceInterleaved = FALSE;
+ }
+ else
+ {
+ pOut->sliceInterleaved = TRUE;
+ }
+ }
}
}