panfrost: Limit blend shader work count
[mesa.git] / src / gallium / drivers / swr / swr_memory.h
index ec68df311a4834197c37e7fb210b7b829fb3dc01..bf6eaa347582cebd5aabaa2b4d4bc4174be506e0 100644 (file)
  ***************************************************************************/
 
 #pragma once
-
+#include "rasterizer/core/context.h"
 INLINE void
-swr_LoadHotTile(HANDLE hPrivateContext,
+swr_LoadHotTile(HANDLE hDC,
+                HANDLE hWorkerPrivateData,
                 SWR_FORMAT dstFormat,
                 SWR_RENDERTARGET_ATTACHMENT renderTargetIndex,
                 UINT x, UINT y,
                 uint32_t renderTargetArrayIndex, uint8_t* pDstHotTile)
 {
-   // Grab source surface state from private context
-   swr_draw_context *pDC = (swr_draw_context*)hPrivateContext;
-   SWR_SURFACE_STATE *pSrcSurface = &pDC->renderTargets[renderTargetIndex];
+   DRAW_CONTEXT *pDC = (DRAW_CONTEXT*)hDC;
+   swr_draw_context *pSDC = (swr_draw_context*)GetPrivateState(pDC);
+   SWR_SURFACE_STATE *pSrcSurface = &pSDC->renderTargets[renderTargetIndex];
 
-   SwrLoadHotTile(pSrcSurface, dstFormat, renderTargetIndex, x, y, renderTargetArrayIndex, pDstHotTile);
+   pSDC->pTileAPI->pfnSwrLoadHotTile(hWorkerPrivateData, pSrcSurface, pDC->pContext->pBucketMgr, dstFormat, renderTargetIndex, x, y, renderTargetArrayIndex, pDstHotTile);
 }
 
 INLINE void
-swr_StoreHotTile(HANDLE hPrivateContext,
+swr_StoreHotTile(HANDLE hDC,
+                 HANDLE hWorkerPrivateData,
                  SWR_FORMAT srcFormat,
                  SWR_RENDERTARGET_ATTACHMENT renderTargetIndex,
                  UINT x, UINT y,
                  uint32_t renderTargetArrayIndex, uint8_t* pSrcHotTile)
 {
-   // Grab destination surface state from private context
-   swr_draw_context *pDC = (swr_draw_context*)hPrivateContext;
-   SWR_SURFACE_STATE *pDstSurface = &pDC->renderTargets[renderTargetIndex];
+   DRAW_CONTEXT *pDC = (DRAW_CONTEXT*)hDC;
+   swr_draw_context *pSDC = (swr_draw_context*)GetPrivateState(pDC);
+   SWR_SURFACE_STATE *pDstSurface = &pSDC->renderTargets[renderTargetIndex];
 
-   SwrStoreHotTileToSurface(pDstSurface, srcFormat, renderTargetIndex, x, y, renderTargetArrayIndex, pSrcHotTile);
+   pSDC->pTileAPI->pfnSwrStoreHotTileToSurface(hWorkerPrivateData, pDstSurface, pDC->pContext->pBucketMgr, srcFormat, renderTargetIndex, x, y, renderTargetArrayIndex, pSrcHotTile);
 }
 
-INLINE void
-swr_StoreHotTileClear(HANDLE hPrivateContext,
-                      SWR_RENDERTARGET_ATTACHMENT renderTargetIndex,
-                      UINT x,
-                      UINT y,
-                      uint32_t renderTargetArrayIndex,
-                      const float* pClearColor)
+INLINE gfxptr_t
+swr_MakeGfxPtr(HANDLE hPrivateContext, void* sysAddr)
 {
-   // Grab destination surface state from private context
-   swr_draw_context *pDC = (swr_draw_context*)hPrivateContext;
-   SWR_SURFACE_STATE *pDstSurface = &pDC->renderTargets[renderTargetIndex];
-
-   SwrStoreHotTileClear(pDstSurface, renderTargetIndex, x, y, renderTargetArrayIndex, pClearColor);
+    // Fulfill an unused internal interface
+    return (gfxptr_t)sysAddr;
 }