mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-19 15:32:24 +01:00
amdgpu/addrlib: Add new interface to support macro mode index query
This commit is contained in:
parent
c16e1e2041
commit
7293a020bd
4 changed files with 115 additions and 0 deletions
|
|
@ -909,6 +909,38 @@ ADDR_E_RETURNCODE ADDR_API AddrConvertTileIndex(
|
|||
return returnCode;
|
||||
}
|
||||
|
||||
/**
|
||||
***************************************************************************************************
|
||||
* AddrGetMacroModeIndex
|
||||
*
|
||||
* @brief
|
||||
* Get macro mode index based on input parameters
|
||||
*
|
||||
* @return
|
||||
* ADDR_OK if successful, otherwise an error code of ADDR_E_RETURNCODE
|
||||
***************************************************************************************************
|
||||
*/
|
||||
ADDR_E_RETURNCODE ADDR_API AddrGetMacroModeIndex(
|
||||
ADDR_HANDLE hLib, ///< address lib handle
|
||||
const ADDR_GET_MACROMODEINDEX_INPUT* pIn, ///< [in] input
|
||||
ADDR_GET_MACROMODEINDEX_OUTPUT* pOut) ///< [out] macro mode index
|
||||
{
|
||||
AddrLib1* pLib = AddrLib1::GetAddrLib1(hLib);
|
||||
|
||||
ADDR_E_RETURNCODE returnCode;
|
||||
|
||||
if (pLib != NULL)
|
||||
{
|
||||
returnCode = pLib->GetMacroModeIndex(pIn, pOut);
|
||||
}
|
||||
else
|
||||
{
|
||||
returnCode = ADDR_ERROR;
|
||||
}
|
||||
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
/**
|
||||
***************************************************************************************************
|
||||
* AddrConvertTileIndex1
|
||||
|
|
|
|||
|
|
@ -1964,7 +1964,49 @@ ADDR_E_RETURNCODE ADDR_API AddrConvertTileIndex(
|
|||
const ADDR_CONVERT_TILEINDEX_INPUT* pIn,
|
||||
ADDR_CONVERT_TILEINDEX_OUTPUT* pOut);
|
||||
|
||||
/**
|
||||
***************************************************************************************************
|
||||
* ADDR_GET_MACROMODEINDEX_INPUT
|
||||
*
|
||||
* @brief
|
||||
* Input structure for AddrGetMacroModeIndex
|
||||
***************************************************************************************************
|
||||
*/
|
||||
typedef struct _ADDR_GET_MACROMODEINDEX_INPUT
|
||||
{
|
||||
UINT_32 size; ///< Size of this structure in bytes
|
||||
ADDR_SURFACE_FLAGS flags; ///< Surface flag
|
||||
INT_32 tileIndex; ///< Tile index
|
||||
UINT_32 bpp; ///< Bits per pixel
|
||||
UINT_32 numFrags; ///< Number of color fragments
|
||||
} ADDR_GET_MACROMODEINDEX_INPUT;
|
||||
|
||||
/**
|
||||
***************************************************************************************************
|
||||
* ADDR_GET_MACROMODEINDEX_OUTPUT
|
||||
*
|
||||
* @brief
|
||||
* Output structure for AddrGetMacroModeIndex
|
||||
***************************************************************************************************
|
||||
*/
|
||||
typedef struct _ADDR_GET_MACROMODEINDEX_OUTPUT
|
||||
{
|
||||
UINT_32 size; ///< Size of this structure in bytes
|
||||
INT_32 macroModeIndex; ///< Index in macro tile mode table if there is one (CI)
|
||||
} ADDR_GET_MACROMODEINDEX_OUTPUT;
|
||||
|
||||
/**
|
||||
***************************************************************************************************
|
||||
* AddrGetMacroModeIndex
|
||||
*
|
||||
* @brief
|
||||
* Get macro mode index based on input parameters
|
||||
***************************************************************************************************
|
||||
*/
|
||||
ADDR_E_RETURNCODE ADDR_API AddrGetMacroModeIndex(
|
||||
ADDR_HANDLE hLib,
|
||||
const ADDR_GET_MACROMODEINDEX_INPUT* pIn,
|
||||
ADDR_GET_MACROMODEINDEX_OUTPUT* pOut);
|
||||
|
||||
/**
|
||||
***************************************************************************************************
|
||||
|
|
|
|||
|
|
@ -1079,6 +1079,43 @@ ADDR_E_RETURNCODE AddrLib1::ConvertTileIndex(
|
|||
return returnCode;
|
||||
}
|
||||
|
||||
/**
|
||||
***************************************************************************************************
|
||||
* AddrLib1::GetMacroModeIndex
|
||||
*
|
||||
* @brief
|
||||
* Get macro mode index based on input info
|
||||
*
|
||||
* @return
|
||||
* ADDR_E_RETURNCODE
|
||||
***************************************************************************************************
|
||||
*/
|
||||
ADDR_E_RETURNCODE AddrLib1::GetMacroModeIndex(
|
||||
const ADDR_GET_MACROMODEINDEX_INPUT* pIn, ///< [in] input structure
|
||||
ADDR_GET_MACROMODEINDEX_OUTPUT* pOut ///< [out] output structure
|
||||
) const
|
||||
{
|
||||
ADDR_E_RETURNCODE returnCode = ADDR_OK;
|
||||
|
||||
if (GetFillSizeFieldsFlags())
|
||||
{
|
||||
if ((pIn->size != sizeof(ADDR_GET_MACROMODEINDEX_INPUT)) ||
|
||||
(pOut->size != sizeof(ADDR_GET_MACROMODEINDEX_OUTPUT)))
|
||||
{
|
||||
returnCode = ADDR_PARAMSIZEMISMATCH;
|
||||
}
|
||||
}
|
||||
|
||||
if (returnCode == ADDR_OK)
|
||||
{
|
||||
ADDR_TILEINFO tileInfo = {0};
|
||||
pOut->macroModeIndex = HwlComputeMacroModeIndex(pIn->tileIndex, pIn->flags, pIn->bpp,
|
||||
pIn->numFrags, &tileInfo);
|
||||
}
|
||||
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
/**
|
||||
***************************************************************************************************
|
||||
* AddrLib1::ConvertTileIndex1
|
||||
|
|
|
|||
|
|
@ -143,6 +143,10 @@ public:
|
|||
const ADDR_CONVERT_TILEINDEX_INPUT* pIn,
|
||||
ADDR_CONVERT_TILEINDEX_OUTPUT* pOut) const;
|
||||
|
||||
ADDR_E_RETURNCODE GetMacroModeIndex(
|
||||
const ADDR_GET_MACROMODEINDEX_INPUT* pIn,
|
||||
ADDR_GET_MACROMODEINDEX_OUTPUT* pOut) const;
|
||||
|
||||
ADDR_E_RETURNCODE ConvertTileIndex1(
|
||||
const ADDR_CONVERT_TILEINDEX1_INPUT* pIn,
|
||||
ADDR_CONVERT_TILEINDEX_OUTPUT* pOut) const;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue