swr/rast: add SwrInit() to init backend/memory tables

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
This commit is contained in:
Tim Rowley 2017-04-21 10:21:19 -05:00
parent e8d58049f6
commit 5fde2ae533
5 changed files with 26 additions and 22 deletions

View File

@ -143,9 +143,6 @@ HANDLE SwrCreateContext(
// initialize hot tile manager
pContext->pHotTileMgr = new HotTileMgr();
// initialize function pointer tables
InitClearTilesTable();
// initialize callback functions
pContext->pfnLoadTile = pCreateInfo->pfnLoadTile;
pContext->pfnStoreTile = pCreateInfo->pfnStoreTile;
@ -1641,6 +1638,25 @@ void SWR_API SwrEndFrame(
pContext->frameCount++;
}
void InitSimLoadTilesTable();
void InitSimStoreTilesTable();
void InitSimClearTilesTable();
void InitClearTilesTable();
void InitBackendFuncTables();
//////////////////////////////////////////////////////////////////////////
/// @brief Initialize swr backend and memory internal tables
void SwrInit()
{
InitSimLoadTilesTable();
InitSimStoreTilesTable();
InitSimClearTilesTable();
InitClearTilesTable();
InitBackendFuncTables();
}
void SwrGetInterface(SWR_INTERFACE &out_funcs)
{
@ -1688,4 +1704,5 @@ void SwrGetInterface(SWR_INTERFACE &out_funcs)
out_funcs.pfnSwrEnableStatsFE = SwrEnableStatsFE;
out_funcs.pfnSwrEnableStatsBE = SwrEnableStatsBE;
out_funcs.pfnSwrEndFrame = SwrEndFrame;
out_funcs.pfnSwrInit = SwrInit;
}

View File

@ -655,6 +655,10 @@ SWR_FUNC(void, SwrEnableStatsBE,
SWR_FUNC(void, SwrEndFrame,
HANDLE hContext);
//////////////////////////////////////////////////////////////////////////
/// @brief Initialize swr backend and memory internal tables
SWR_FUNC(void, SwrInit);
struct SWR_INTERFACE
{
@ -702,6 +706,7 @@ struct SWR_INTERFACE
PFNSwrEnableStatsFE pfnSwrEnableStatsFE;
PFNSwrEnableStatsBE pfnSwrEnableStatsBE;
PFNSwrEndFrame pfnSwrEndFrame;
PFNSwrInit pfnSwrInit;
};
extern "C" {

View File

@ -41,10 +41,7 @@ void ProcessStoreTilesBE(DRAW_CONTEXT *pDC, uint32_t workerId, uint32_t macroTil
void ProcessDiscardInvalidateTilesBE(DRAW_CONTEXT *pDC, uint32_t workerId, uint32_t macroTile, void *pData);
void ProcessShutdownBE(DRAW_CONTEXT *pDC, uint32_t workerId, uint32_t macroTile, void *pUserData);
void BackendNullPS(DRAW_CONTEXT *pDC, uint32_t workerId, uint32_t x, uint32_t y, SWR_TRIANGLE_DESC &work, RenderOutputBuffers &renderBuffers);
void InitClearTilesTable();
simdmask ComputeUserClipMask(uint8_t clipMask, float* pUserClipBuffer, simdscalar vI, simdscalar vJ);
void InitBackendFuncTables();
void InitCPSFuncTables();
void CalcSampleBarycentrics(const BarycentricCoeffs& coeffs, SWR_PS_CONTEXT &psContext);
extern PFN_BACKEND_FUNC gBackendPixelRateTable[SWR_MULTISAMPLE_TYPE_COUNT]

View File

@ -553,10 +553,7 @@ swr_create_context(struct pipe_screen *p_screen, void *priv, unsigned flags)
createInfo.pfnUpdateStatsFE = swr_UpdateStatsFE;
ctx->swrContext = SwrCreateContext(&createInfo);
/* Init Load/Store/ClearTiles Tables */
swr_InitMemoryModule();
InitBackendFuncTables();
SwrInit();
if (ctx->swrContext == NULL)
goto fail;

View File

@ -87,15 +87,3 @@ swr_StoreHotTileClear(HANDLE hPrivateContext,
StoreHotTileClear(pDstSurface, renderTargetIndex, x, y, renderTargetArrayIndex, pClearColor);
}
void InitSimLoadTilesTable();
void InitSimStoreTilesTable();
void InitSimClearTilesTable();
/* Init Load/Store/ClearTiles Tables */
INLINE void swr_InitMemoryModule()
{
InitSimLoadTilesTable();
InitSimStoreTilesTable();
InitSimClearTilesTable();
}