1 /****************************************************************************
2 * Copyright (C) 2015 Intel Corporation. All Rights Reserved.
4 * Permission is hereby granted, free of charge, to any person obtaining a
5 * copy of this software and associated documentation files (the "Software"),
6 * to deal in the Software without restriction, including without limitation
7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 * and/or sell copies of the Software, and to permit persons to whom the
9 * Software is furnished to do so, subject to the following conditions:
11 * The above copyright notice and this permission notice (including the next
12 * paragraph) shall be included in all copies or substantial portions of the
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
18 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
22 ***************************************************************************/
27 const SWR_SURFACE_STATE
*pSrcSurface
,
29 SWR_RENDERTARGET_ATTACHMENT renderTargetIndex
,
30 UINT x
, UINT y
, uint32_t renderTargetArrayIndex
,
31 uint8_t *pDstHotTile
);
34 SWR_SURFACE_STATE
*pDstSurface
,
36 SWR_RENDERTARGET_ATTACHMENT renderTargetIndex
,
37 UINT x
, UINT y
, uint32_t renderTargetArrayIndex
,
38 uint8_t *pSrcHotTile
);
40 void StoreHotTileClear(
41 SWR_SURFACE_STATE
*pDstSurface
,
42 SWR_RENDERTARGET_ATTACHMENT renderTargetIndex
,
45 const float* pClearColor
);
48 swr_LoadHotTile(HANDLE hPrivateContext
,
50 SWR_RENDERTARGET_ATTACHMENT renderTargetIndex
,
52 uint32_t renderTargetArrayIndex
, uint8_t* pDstHotTile
)
54 // Grab source surface state from private context
55 swr_draw_context
*pDC
= (swr_draw_context
*)hPrivateContext
;
56 SWR_SURFACE_STATE
*pSrcSurface
= &pDC
->renderTargets
[renderTargetIndex
];
58 LoadHotTile(pSrcSurface
, dstFormat
, renderTargetIndex
, x
, y
, renderTargetArrayIndex
, pDstHotTile
);
62 swr_StoreHotTile(HANDLE hPrivateContext
,
64 SWR_RENDERTARGET_ATTACHMENT renderTargetIndex
,
66 uint32_t renderTargetArrayIndex
, uint8_t* pSrcHotTile
)
68 // Grab destination surface state from private context
69 swr_draw_context
*pDC
= (swr_draw_context
*)hPrivateContext
;
70 SWR_SURFACE_STATE
*pDstSurface
= &pDC
->renderTargets
[renderTargetIndex
];
72 StoreHotTile(pDstSurface
, srcFormat
, renderTargetIndex
, x
, y
, renderTargetArrayIndex
, pSrcHotTile
);
76 swr_StoreHotTileClear(HANDLE hPrivateContext
,
77 SWR_RENDERTARGET_ATTACHMENT renderTargetIndex
,
80 const float* pClearColor
)
82 // Grab destination surface state from private context
83 swr_draw_context
*pDC
= (swr_draw_context
*)hPrivateContext
;
84 SWR_SURFACE_STATE
*pDstSurface
= &pDC
->renderTargets
[renderTargetIndex
];
86 StoreHotTileClear(pDstSurface
, renderTargetIndex
, x
, y
, pClearColor
);
89 void InitSimLoadTilesTable();
90 void InitSimStoreTilesTable();
91 void InitSimClearTilesTable();
93 /* Init Load/Store/ClearTiles Tables */
94 INLINE
void swr_InitMemoryModule()
96 InitSimLoadTilesTable();
97 InitSimStoreTilesTable();
98 InitSimClearTilesTable();