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
);
33 void StoreHotTileToSurface(
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 uint32_t renderTargetArrayIndex
,
46 const float* pClearColor
);
49 swr_LoadHotTile(HANDLE hPrivateContext
,
51 SWR_RENDERTARGET_ATTACHMENT renderTargetIndex
,
53 uint32_t renderTargetArrayIndex
, uint8_t* pDstHotTile
)
55 // Grab source surface state from private context
56 swr_draw_context
*pDC
= (swr_draw_context
*)hPrivateContext
;
57 SWR_SURFACE_STATE
*pSrcSurface
= &pDC
->renderTargets
[renderTargetIndex
];
59 LoadHotTile(pSrcSurface
, dstFormat
, renderTargetIndex
, x
, y
, renderTargetArrayIndex
, pDstHotTile
);
63 swr_StoreHotTile(HANDLE hPrivateContext
,
65 SWR_RENDERTARGET_ATTACHMENT renderTargetIndex
,
67 uint32_t renderTargetArrayIndex
, uint8_t* pSrcHotTile
)
69 // Grab destination surface state from private context
70 swr_draw_context
*pDC
= (swr_draw_context
*)hPrivateContext
;
71 SWR_SURFACE_STATE
*pDstSurface
= &pDC
->renderTargets
[renderTargetIndex
];
73 StoreHotTileToSurface(pDstSurface
, srcFormat
, renderTargetIndex
, x
, y
, renderTargetArrayIndex
, pSrcHotTile
);
77 swr_StoreHotTileClear(HANDLE hPrivateContext
,
78 SWR_RENDERTARGET_ATTACHMENT renderTargetIndex
,
81 uint32_t renderTargetArrayIndex
,
82 const float* pClearColor
)
84 // Grab destination surface state from private context
85 swr_draw_context
*pDC
= (swr_draw_context
*)hPrivateContext
;
86 SWR_SURFACE_STATE
*pDstSurface
= &pDC
->renderTargets
[renderTargetIndex
];
88 StoreHotTileClear(pDstSurface
, renderTargetIndex
, x
, y
, renderTargetArrayIndex
, pClearColor
);
91 void InitSimLoadTilesTable();
92 void InitSimStoreTilesTable();
93 void InitSimClearTilesTable();
95 /* Init Load/Store/ClearTiles Tables */
96 INLINE
void swr_InitMemoryModule()
98 InitSimLoadTilesTable();
99 InitSimStoreTilesTable();
100 InitSimClearTilesTable();