1*35ffd701SAndroid Build Coastguard Worker /*==============================================================================
2*35ffd701SAndroid Build Coastguard Worker Copyright(c) 2017 Intel Corporation
3*35ffd701SAndroid Build Coastguard Worker
4*35ffd701SAndroid Build Coastguard Worker Permission is hereby granted, free of charge, to any person obtaining a
5*35ffd701SAndroid Build Coastguard Worker copy of this software and associated documentation files(the "Software"),
6*35ffd701SAndroid Build Coastguard Worker to deal in the Software without restriction, including without limitation
7*35ffd701SAndroid Build Coastguard Worker the rights to use, copy, modify, merge, publish, distribute, sublicense,
8*35ffd701SAndroid Build Coastguard Worker and / or sell copies of the Software, and to permit persons to whom the
9*35ffd701SAndroid Build Coastguard Worker Software is furnished to do so, subject to the following conditions:
10*35ffd701SAndroid Build Coastguard Worker
11*35ffd701SAndroid Build Coastguard Worker The above copyright notice and this permission notice shall be included
12*35ffd701SAndroid Build Coastguard Worker in all copies or substantial portions of the Software.
13*35ffd701SAndroid Build Coastguard Worker
14*35ffd701SAndroid Build Coastguard Worker THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
15*35ffd701SAndroid Build Coastguard Worker OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16*35ffd701SAndroid Build Coastguard Worker FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17*35ffd701SAndroid Build Coastguard Worker THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
18*35ffd701SAndroid Build Coastguard Worker OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
19*35ffd701SAndroid Build Coastguard Worker ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
20*35ffd701SAndroid Build Coastguard Worker OTHER DEALINGS IN THE SOFTWARE.
21*35ffd701SAndroid Build Coastguard Worker ============================================================================*/
22*35ffd701SAndroid Build Coastguard Worker
23*35ffd701SAndroid Build Coastguard Worker #include "Internal/Common/GmmLibInc.h"
24*35ffd701SAndroid Build Coastguard Worker
25*35ffd701SAndroid Build Coastguard Worker #include <stdlib.h>
26*35ffd701SAndroid Build Coastguard Worker
27*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
28*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::Create.
29*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::Create()
30*35ffd701SAndroid Build Coastguard Worker ///
31*35ffd701SAndroid Build Coastguard Worker /// @param[in] pCreateParams: Flags which specify what sort of resource to create
32*35ffd701SAndroid Build Coastguard Worker /// @return Pointer to GmmResourceInfo class.
33*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResCreate(GMM_RESCREATE_PARAMS * pCreateParams,GMM_LIB_CONTEXT * pLibContext)34*35ffd701SAndroid Build Coastguard Worker GMM_RESOURCE_INFO *GMM_STDCALL GmmResCreate(GMM_RESCREATE_PARAMS *pCreateParams, GMM_LIB_CONTEXT *pLibContext)
35*35ffd701SAndroid Build Coastguard Worker {
36*35ffd701SAndroid Build Coastguard Worker GMM_RESOURCE_INFO *pRes = NULL;
37*35ffd701SAndroid Build Coastguard Worker
38*35ffd701SAndroid Build Coastguard Worker #if(!defined(__GMM_KMD__) && !defined(GMM_UNIFIED_LIB))
39*35ffd701SAndroid Build Coastguard Worker pRes = GmmResCreateThroughClientCtxt(pCreateParams);
40*35ffd701SAndroid Build Coastguard Worker return pRes;
41*35ffd701SAndroid Build Coastguard Worker #else
42*35ffd701SAndroid Build Coastguard Worker
43*35ffd701SAndroid Build Coastguard Worker // GMM_RESOURCE_INFO...
44*35ffd701SAndroid Build Coastguard Worker if(pCreateParams->pPreallocatedResInfo)
45*35ffd701SAndroid Build Coastguard Worker {
46*35ffd701SAndroid Build Coastguard Worker pRes = new(pCreateParams->pPreallocatedResInfo) GmmLib::GmmResourceInfo(); // Use preallocated memory as a class
47*35ffd701SAndroid Build Coastguard Worker pCreateParams->Flags.Info.__PreallocatedResInfo =
48*35ffd701SAndroid Build Coastguard Worker pRes->GetResFlags().Info.__PreallocatedResInfo = 1; // Set both in case we can die before copying over the flags.
49*35ffd701SAndroid Build Coastguard Worker }
50*35ffd701SAndroid Build Coastguard Worker else
51*35ffd701SAndroid Build Coastguard Worker {
52*35ffd701SAndroid Build Coastguard Worker if((pRes = new GMM_RESOURCE_INFO) == NULL)
53*35ffd701SAndroid Build Coastguard Worker {
54*35ffd701SAndroid Build Coastguard Worker GMM_ASSERTDPF(0, "Allocation failed!");
55*35ffd701SAndroid Build Coastguard Worker goto ERROR_CASE;
56*35ffd701SAndroid Build Coastguard Worker }
57*35ffd701SAndroid Build Coastguard Worker }
58*35ffd701SAndroid Build Coastguard Worker
59*35ffd701SAndroid Build Coastguard Worker if(pRes->Create(*pLibContext, *pCreateParams) != GMM_SUCCESS)
60*35ffd701SAndroid Build Coastguard Worker {
61*35ffd701SAndroid Build Coastguard Worker goto ERROR_CASE;
62*35ffd701SAndroid Build Coastguard Worker }
63*35ffd701SAndroid Build Coastguard Worker
64*35ffd701SAndroid Build Coastguard Worker return (pRes);
65*35ffd701SAndroid Build Coastguard Worker
66*35ffd701SAndroid Build Coastguard Worker ERROR_CASE:
67*35ffd701SAndroid Build Coastguard Worker if(pRes)
68*35ffd701SAndroid Build Coastguard Worker {
69*35ffd701SAndroid Build Coastguard Worker GmmResFree(pRes);
70*35ffd701SAndroid Build Coastguard Worker }
71*35ffd701SAndroid Build Coastguard Worker
72*35ffd701SAndroid Build Coastguard Worker GMM_DPF_EXIT;
73*35ffd701SAndroid Build Coastguard Worker return (NULL);
74*35ffd701SAndroid Build Coastguard Worker
75*35ffd701SAndroid Build Coastguard Worker #endif
76*35ffd701SAndroid Build Coastguard Worker }
77*35ffd701SAndroid Build Coastguard Worker
78*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
79*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::opeartor=. Allocates a new class and
80*35ffd701SAndroid Build Coastguard Worker /// returns a pointer to it. The new class must be free'd explicitly by the client.
81*35ffd701SAndroid Build Coastguard Worker ///
82*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::operator=()
83*35ffd701SAndroid Build Coastguard Worker ///
84*35ffd701SAndroid Build Coastguard Worker /// @param[in] pRes: Pointer to the GmmResourceInfo class that needs to be copied
85*35ffd701SAndroid Build Coastguard Worker /// @return Pointer to newly copied GmmResourceInfo class
86*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResCopy(GMM_RESOURCE_INFO * pRes)87*35ffd701SAndroid Build Coastguard Worker GMM_RESOURCE_INFO *GMM_STDCALL GmmResCopy(GMM_RESOURCE_INFO *pRes)
88*35ffd701SAndroid Build Coastguard Worker {
89*35ffd701SAndroid Build Coastguard Worker GMM_RESOURCE_INFO *pResCopy = NULL;
90*35ffd701SAndroid Build Coastguard Worker
91*35ffd701SAndroid Build Coastguard Worker GMM_DPF_ENTER;
92*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pRes, NULL);
93*35ffd701SAndroid Build Coastguard Worker
94*35ffd701SAndroid Build Coastguard Worker #if(!defined(__GMM_KMD__) && !defined(GMM_UNIFIED_LIB))
95*35ffd701SAndroid Build Coastguard Worker pResCopy = GmmResCopyThroughClientCtxt(pRes);
96*35ffd701SAndroid Build Coastguard Worker return pResCopy;
97*35ffd701SAndroid Build Coastguard Worker #else
98*35ffd701SAndroid Build Coastguard Worker
99*35ffd701SAndroid Build Coastguard Worker pResCopy = new GMM_RESOURCE_INFO;
100*35ffd701SAndroid Build Coastguard Worker
101*35ffd701SAndroid Build Coastguard Worker if(!pResCopy)
102*35ffd701SAndroid Build Coastguard Worker {
103*35ffd701SAndroid Build Coastguard Worker GMM_ASSERTDPF(0, "Allocation failed.");
104*35ffd701SAndroid Build Coastguard Worker return NULL;
105*35ffd701SAndroid Build Coastguard Worker }
106*35ffd701SAndroid Build Coastguard Worker
107*35ffd701SAndroid Build Coastguard Worker *pResCopy = *pRes;
108*35ffd701SAndroid Build Coastguard Worker
109*35ffd701SAndroid Build Coastguard Worker // We are allocating new class, flag must be false to avoid leak at DestroyResource
110*35ffd701SAndroid Build Coastguard Worker pResCopy->GetResFlags().Info.__PreallocatedResInfo = 0;
111*35ffd701SAndroid Build Coastguard Worker
112*35ffd701SAndroid Build Coastguard Worker GMM_DPF_EXIT;
113*35ffd701SAndroid Build Coastguard Worker return (pResCopy);
114*35ffd701SAndroid Build Coastguard Worker
115*35ffd701SAndroid Build Coastguard Worker #endif
116*35ffd701SAndroid Build Coastguard Worker }
117*35ffd701SAndroid Build Coastguard Worker
118*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
119*35ffd701SAndroid Build Coastguard Worker /// Helps clients copy one GmmResourceInfo object to another
120*35ffd701SAndroid Build Coastguard Worker ///
121*35ffd701SAndroid Build Coastguard Worker /// @param[in] pDst: Pointer to memory when pSrc will be copied.
122*35ffd701SAndroid Build Coastguard Worker /// @param[in] pSrc: Pointer to GmmResourceInfo class that needs to be copied
123*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResMemcpy(void * pDst,void * pSrc)124*35ffd701SAndroid Build Coastguard Worker void GMM_STDCALL GmmResMemcpy(void *pDst, void *pSrc)
125*35ffd701SAndroid Build Coastguard Worker {
126*35ffd701SAndroid Build Coastguard Worker #if(!defined(__GMM_KMD__) && !defined(GMM_UNIFIED_LIB))
127*35ffd701SAndroid Build Coastguard Worker GmmResMemcpyThroughClientCtxt(pDst, pSrc);
128*35ffd701SAndroid Build Coastguard Worker #else
129*35ffd701SAndroid Build Coastguard Worker GMM_RESOURCE_INFO *pResSrc = reinterpret_cast<GMM_RESOURCE_INFO *>(pSrc);
130*35ffd701SAndroid Build Coastguard Worker // Init memory correctly, in case the pointer is a raw memory pointer
131*35ffd701SAndroid Build Coastguard Worker GMM_RESOURCE_INFO *pResDst = new(pDst) GMM_RESOURCE_INFO();
132*35ffd701SAndroid Build Coastguard Worker
133*35ffd701SAndroid Build Coastguard Worker *pResDst = *pResSrc;
134*35ffd701SAndroid Build Coastguard Worker #endif
135*35ffd701SAndroid Build Coastguard Worker }
136*35ffd701SAndroid Build Coastguard Worker
137*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
138*35ffd701SAndroid Build Coastguard Worker /// C wrapper for ~GmmResourceInfoCommon. Frees the resource if it wasn't part of
139*35ffd701SAndroid Build Coastguard Worker /// ::GMM_RESCREATE_PARAMS::pPreallocatedResInfo.
140*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::~GmmResourceInfoCommon()
141*35ffd701SAndroid Build Coastguard Worker ///
142*35ffd701SAndroid Build Coastguard Worker /// @param[in] pRes: Pointer to the GmmResourceInfo class that needs to be freed
143*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResFree(GMM_RESOURCE_INFO * pRes)144*35ffd701SAndroid Build Coastguard Worker void GMM_STDCALL GmmResFree(GMM_RESOURCE_INFO *pRes)
145*35ffd701SAndroid Build Coastguard Worker {
146*35ffd701SAndroid Build Coastguard Worker GMM_DPF_ENTER;
147*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pRes, VOIDRETURN);
148*35ffd701SAndroid Build Coastguard Worker
149*35ffd701SAndroid Build Coastguard Worker #if(!defined(__GMM_KMD__) && !defined(GMM_UNIFIED_LIB))
150*35ffd701SAndroid Build Coastguard Worker GmmResFreeThroughClientCtxt(pRes);
151*35ffd701SAndroid Build Coastguard Worker #else
152*35ffd701SAndroid Build Coastguard Worker
153*35ffd701SAndroid Build Coastguard Worker if(pRes->GetResFlags().Info.__PreallocatedResInfo)
154*35ffd701SAndroid Build Coastguard Worker {
155*35ffd701SAndroid Build Coastguard Worker *pRes = GmmLib::GmmResourceInfo();
156*35ffd701SAndroid Build Coastguard Worker }
157*35ffd701SAndroid Build Coastguard Worker else
158*35ffd701SAndroid Build Coastguard Worker {
159*35ffd701SAndroid Build Coastguard Worker delete pRes;
160*35ffd701SAndroid Build Coastguard Worker pRes = NULL;
161*35ffd701SAndroid Build Coastguard Worker }
162*35ffd701SAndroid Build Coastguard Worker
163*35ffd701SAndroid Build Coastguard Worker #endif
164*35ffd701SAndroid Build Coastguard Worker }
165*35ffd701SAndroid Build Coastguard Worker
166*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
167*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::GetSystemMemPointer.
168*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetSystemMemPointer()
169*35ffd701SAndroid Build Coastguard Worker ///
170*35ffd701SAndroid Build Coastguard Worker /// @param[in] pRes: Pointer to the GmmResourceInfo class
171*35ffd701SAndroid Build Coastguard Worker /// @param[in] IsD3DDdiAllocation: Specifies where allocation was made by a D3D client
172*35ffd701SAndroid Build Coastguard Worker /// @return Pointer to system memory. NULL if not available.
173*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetSystemMemPointer(GMM_RESOURCE_INFO * pRes,uint8_t IsD3DDdiAllocation)174*35ffd701SAndroid Build Coastguard Worker void *GMM_STDCALL GmmResGetSystemMemPointer(GMM_RESOURCE_INFO *pRes,
175*35ffd701SAndroid Build Coastguard Worker uint8_t IsD3DDdiAllocation)
176*35ffd701SAndroid Build Coastguard Worker {
177*35ffd701SAndroid Build Coastguard Worker GMM_DPF_ENTER;
178*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pRes, NULL);
179*35ffd701SAndroid Build Coastguard Worker
180*35ffd701SAndroid Build Coastguard Worker return pRes->GetSystemMemPointer(IsD3DDdiAllocation);
181*35ffd701SAndroid Build Coastguard Worker }
182*35ffd701SAndroid Build Coastguard Worker
183*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
184*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::GetSystemMemSize.
185*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetSystemMemSize()
186*35ffd701SAndroid Build Coastguard Worker ///
187*35ffd701SAndroid Build Coastguard Worker /// @param[in] pRes: Pointer to the GmmResourceInfo class
188*35ffd701SAndroid Build Coastguard Worker /// @return Size of memory.
189*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetSystemMemSize(GMM_RESOURCE_INFO * pRes)190*35ffd701SAndroid Build Coastguard Worker GMM_GFX_SIZE_T GMM_STDCALL GmmResGetSystemMemSize(GMM_RESOURCE_INFO *pRes)
191*35ffd701SAndroid Build Coastguard Worker {
192*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pRes, ((GMM_GFX_SIZE_T)0));
193*35ffd701SAndroid Build Coastguard Worker return pRes->GetSystemMemSize();
194*35ffd701SAndroid Build Coastguard Worker }
195*35ffd701SAndroid Build Coastguard Worker
196*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
197*35ffd701SAndroid Build Coastguard Worker /// This function returns size of GMM_RESOURCE_INFO
198*35ffd701SAndroid Build Coastguard Worker ///
199*35ffd701SAndroid Build Coastguard Worker /// @return size of class
200*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetSizeOfStruct(void)201*35ffd701SAndroid Build Coastguard Worker uint32_t GMM_STDCALL GmmResGetSizeOfStruct(void)
202*35ffd701SAndroid Build Coastguard Worker {
203*35ffd701SAndroid Build Coastguard Worker return (sizeof(GMM_RESOURCE_INFO));
204*35ffd701SAndroid Build Coastguard Worker }
205*35ffd701SAndroid Build Coastguard Worker
206*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
207*35ffd701SAndroid Build Coastguard Worker /// This function returns resource flags
208*35ffd701SAndroid Build Coastguard Worker ///
209*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
210*35ffd701SAndroid Build Coastguard Worker /// @param[out] pFlags: Memory where resource flags will be copied
211*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetFlags(GMM_RESOURCE_INFO * pGmmResource,GMM_RESOURCE_FLAG * pFlags)212*35ffd701SAndroid Build Coastguard Worker void GMM_STDCALL GmmResGetFlags(GMM_RESOURCE_INFO *pGmmResource,
213*35ffd701SAndroid Build Coastguard Worker GMM_RESOURCE_FLAG *pFlags /*output*/)
214*35ffd701SAndroid Build Coastguard Worker {
215*35ffd701SAndroid Build Coastguard Worker GMM_DPF_ENTER;
216*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, VOIDRETURN);
217*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pFlags, VOIDRETURN);
218*35ffd701SAndroid Build Coastguard Worker
219*35ffd701SAndroid Build Coastguard Worker *pFlags = GmmResGetResourceFlags(pGmmResource);
220*35ffd701SAndroid Build Coastguard Worker
221*35ffd701SAndroid Build Coastguard Worker GMM_DPF_EXIT;
222*35ffd701SAndroid Build Coastguard Worker }
223*35ffd701SAndroid Build Coastguard Worker
224*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
225*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::GetResourceType.
226*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetResourceType()
227*35ffd701SAndroid Build Coastguard Worker ///
228*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
229*35ffd701SAndroid Build Coastguard Worker /// @return Resource Type
230*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetResourceType(GMM_RESOURCE_INFO * pGmmResource)231*35ffd701SAndroid Build Coastguard Worker GMM_RESOURCE_TYPE GMM_STDCALL GmmResGetResourceType(GMM_RESOURCE_INFO *pGmmResource)
232*35ffd701SAndroid Build Coastguard Worker {
233*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, RESOURCE_INVALID);
234*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetResourceType();
235*35ffd701SAndroid Build Coastguard Worker }
236*35ffd701SAndroid Build Coastguard Worker
237*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
238*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::GetResourceFormat.
239*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetResourceFormat()
240*35ffd701SAndroid Build Coastguard Worker ///
241*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
242*35ffd701SAndroid Build Coastguard Worker /// @return Resource Format
243*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetResourceFormat(GMM_RESOURCE_INFO * pGmmResource)244*35ffd701SAndroid Build Coastguard Worker GMM_RESOURCE_FORMAT GMM_STDCALL GmmResGetResourceFormat(GMM_RESOURCE_INFO *pGmmResource)
245*35ffd701SAndroid Build Coastguard Worker {
246*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, GMM_FORMAT_INVALID);
247*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetResourceFormat();
248*35ffd701SAndroid Build Coastguard Worker }
249*35ffd701SAndroid Build Coastguard Worker
250*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
251*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::GetPaddedWidth.
252*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetPaddedWidth()
253*35ffd701SAndroid Build Coastguard Worker ///
254*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
255*35ffd701SAndroid Build Coastguard Worker /// @param[in] MipLevel: Requested mip level
256*35ffd701SAndroid Build Coastguard Worker /// @return Padded Width
257*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetPaddedWidth(GMM_RESOURCE_INFO * pGmmResource,uint32_t MipLevel)258*35ffd701SAndroid Build Coastguard Worker uint32_t GMM_STDCALL GmmResGetPaddedWidth(GMM_RESOURCE_INFO *pGmmResource,
259*35ffd701SAndroid Build Coastguard Worker uint32_t MipLevel)
260*35ffd701SAndroid Build Coastguard Worker {
261*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, 0);
262*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetPaddedWidth(MipLevel);
263*35ffd701SAndroid Build Coastguard Worker }
264*35ffd701SAndroid Build Coastguard Worker
265*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
266*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::GetPaddedHeight.
267*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetPaddedHeight()
268*35ffd701SAndroid Build Coastguard Worker ///
269*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
270*35ffd701SAndroid Build Coastguard Worker /// @param[in] MipLevel: Requested mip level
271*35ffd701SAndroid Build Coastguard Worker /// @return Padded Height
272*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetPaddedHeight(GMM_RESOURCE_INFO * pGmmResource,uint32_t MipLevel)273*35ffd701SAndroid Build Coastguard Worker uint32_t GMM_STDCALL GmmResGetPaddedHeight(GMM_RESOURCE_INFO *pGmmResource,
274*35ffd701SAndroid Build Coastguard Worker uint32_t MipLevel)
275*35ffd701SAndroid Build Coastguard Worker {
276*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, 0);
277*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetPaddedHeight(MipLevel);
278*35ffd701SAndroid Build Coastguard Worker }
279*35ffd701SAndroid Build Coastguard Worker
280*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
281*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::GetPaddedPitch.
282*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetPaddedPitch()
283*35ffd701SAndroid Build Coastguard Worker ///
284*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
285*35ffd701SAndroid Build Coastguard Worker /// @param[in] MipLevel: Requested mip level
286*35ffd701SAndroid Build Coastguard Worker /// @return Padded Pitch
287*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetPaddedPitch(GMM_RESOURCE_INFO * pGmmResource,uint32_t MipLevel)288*35ffd701SAndroid Build Coastguard Worker uint32_t GMM_STDCALL GmmResGetPaddedPitch(GMM_RESOURCE_INFO *pGmmResource,
289*35ffd701SAndroid Build Coastguard Worker uint32_t MipLevel)
290*35ffd701SAndroid Build Coastguard Worker {
291*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, 0);
292*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetPaddedPitch(MipLevel);
293*35ffd701SAndroid Build Coastguard Worker }
294*35ffd701SAndroid Build Coastguard Worker
295*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
296*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::GetBaseWidth. Truncates width to
297*35ffd701SAndroid Build Coastguard Worker /// 32-bit.
298*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetBaseWidth()
299*35ffd701SAndroid Build Coastguard Worker ///
300*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
301*35ffd701SAndroid Build Coastguard Worker /// @return Width
302*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetBaseWidth(GMM_RESOURCE_INFO * pGmmResource)303*35ffd701SAndroid Build Coastguard Worker uint32_t GMM_STDCALL GmmResGetBaseWidth(GMM_RESOURCE_INFO *pGmmResource)
304*35ffd701SAndroid Build Coastguard Worker {
305*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, 0);
306*35ffd701SAndroid Build Coastguard Worker return GFX_ULONG_CAST(pGmmResource->GetBaseWidth());
307*35ffd701SAndroid Build Coastguard Worker }
308*35ffd701SAndroid Build Coastguard Worker
309*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
310*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::GetBaseWidth.
311*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetBaseWidth()
312*35ffd701SAndroid Build Coastguard Worker ///
313*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
314*35ffd701SAndroid Build Coastguard Worker /// @return Width
315*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetBaseWidth64(GMM_RESOURCE_INFO * pGmmResource)316*35ffd701SAndroid Build Coastguard Worker GMM_GFX_SIZE_T GMM_STDCALL GmmResGetBaseWidth64(GMM_RESOURCE_INFO *pGmmResource)
317*35ffd701SAndroid Build Coastguard Worker {
318*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, 0);
319*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetBaseWidth();
320*35ffd701SAndroid Build Coastguard Worker }
321*35ffd701SAndroid Build Coastguard Worker
322*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
323*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::GetBaseAlignment.
324*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetBaseAlignment()
325*35ffd701SAndroid Build Coastguard Worker ///
326*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
327*35ffd701SAndroid Build Coastguard Worker /// @return Base Alignment
328*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetBaseAlignment(GMM_RESOURCE_INFO * pGmmResource)329*35ffd701SAndroid Build Coastguard Worker uint32_t GMM_STDCALL GmmResGetBaseAlignment(GMM_RESOURCE_INFO *pGmmResource)
330*35ffd701SAndroid Build Coastguard Worker {
331*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, 0);
332*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetBaseAlignment();
333*35ffd701SAndroid Build Coastguard Worker }
334*35ffd701SAndroid Build Coastguard Worker
335*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
336*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::GetBaseHeight.
337*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetBaseHeight()
338*35ffd701SAndroid Build Coastguard Worker ///
339*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
340*35ffd701SAndroid Build Coastguard Worker /// @return Height
341*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetBaseHeight(GMM_RESOURCE_INFO * pGmmResource)342*35ffd701SAndroid Build Coastguard Worker uint32_t GMM_STDCALL GmmResGetBaseHeight(GMM_RESOURCE_INFO *pGmmResource)
343*35ffd701SAndroid Build Coastguard Worker {
344*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, 0);
345*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetBaseHeight();
346*35ffd701SAndroid Build Coastguard Worker }
347*35ffd701SAndroid Build Coastguard Worker
348*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
349*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::GmmResGetDepth.
350*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GmmResGetDepth()
351*35ffd701SAndroid Build Coastguard Worker ///
352*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
353*35ffd701SAndroid Build Coastguard Worker /// @return Depth
354*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetDepth(GMM_RESOURCE_INFO * pGmmResource)355*35ffd701SAndroid Build Coastguard Worker uint32_t GMM_STDCALL GmmResGetDepth(GMM_RESOURCE_INFO *pGmmResource)
356*35ffd701SAndroid Build Coastguard Worker {
357*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, 0);
358*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetBaseDepth();
359*35ffd701SAndroid Build Coastguard Worker }
360*35ffd701SAndroid Build Coastguard Worker
361*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
362*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::GetMaxLod.
363*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetMaxLod()
364*35ffd701SAndroid Build Coastguard Worker ///
365*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
366*35ffd701SAndroid Build Coastguard Worker /// @return Max Lod
367*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetMaxLod(GMM_RESOURCE_INFO * pGmmResource)368*35ffd701SAndroid Build Coastguard Worker uint32_t GMM_STDCALL GmmResGetMaxLod(GMM_RESOURCE_INFO *pGmmResource)
369*35ffd701SAndroid Build Coastguard Worker {
370*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, 0);
371*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetMaxLod();
372*35ffd701SAndroid Build Coastguard Worker }
373*35ffd701SAndroid Build Coastguard Worker
374*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
375*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::GetMipTailStartLod.SurfaceState
376*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetMipTailStartLodSurfaceState()
377*35ffd701SAndroid Build Coastguard Worker ///
378*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
379*35ffd701SAndroid Build Coastguard Worker /// @return Mip Tail Starts
380*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetSurfaceStateMipTailStartLod(GMM_RESOURCE_INFO * pGmmResource)381*35ffd701SAndroid Build Coastguard Worker uint32_t GMM_STDCALL GmmResGetSurfaceStateMipTailStartLod(GMM_RESOURCE_INFO *pGmmResource)
382*35ffd701SAndroid Build Coastguard Worker {
383*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERT(pGmmResource);
384*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetMipTailStartLodSurfaceState();
385*35ffd701SAndroid Build Coastguard Worker }
386*35ffd701SAndroid Build Coastguard Worker
387*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
388*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::GetTileAddressMappingMode.SurfaceState
389*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetTileAddressMappingModeSurfaceState()
390*35ffd701SAndroid Build Coastguard Worker ///
391*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
392*35ffd701SAndroid Build Coastguard Worker /// @return Tile Address Mapping Mode
393*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetSurfaceStateTileAddressMappingMode(GMM_RESOURCE_INFO * pGmmResource)394*35ffd701SAndroid Build Coastguard Worker uint32_t GMM_STDCALL GmmResGetSurfaceStateTileAddressMappingMode(GMM_RESOURCE_INFO *pGmmResource)
395*35ffd701SAndroid Build Coastguard Worker {
396*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERT(pGmmResource);
397*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetTileAddressMappingModeSurfaceState();
398*35ffd701SAndroid Build Coastguard Worker }
399*35ffd701SAndroid Build Coastguard Worker
400*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
401*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::GetStdTilingModeExt.SurfaceState
402*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetStdTilingModeExtSurfaceState()
403*35ffd701SAndroid Build Coastguard Worker ///
404*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
405*35ffd701SAndroid Build Coastguard Worker /// @return Std Tiling Mode Ext
406*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetSurfaceStateStdTilingModeExt(GMM_RESOURCE_INFO * pGmmResource)407*35ffd701SAndroid Build Coastguard Worker uint32_t GMM_STDCALL GmmResGetSurfaceStateStdTilingModeExt(GMM_RESOURCE_INFO *pGmmResource)
408*35ffd701SAndroid Build Coastguard Worker {
409*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, GMM_INVALIDPARAM);
410*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetStdTilingModeExtSurfaceState();
411*35ffd701SAndroid Build Coastguard Worker }
412*35ffd701SAndroid Build Coastguard Worker
413*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
414*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::GetArraySize.
415*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetArraySize()
416*35ffd701SAndroid Build Coastguard Worker ///
417*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
418*35ffd701SAndroid Build Coastguard Worker /// @return Array Size
419*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetArraySize(GMM_RESOURCE_INFO * pGmmResource)420*35ffd701SAndroid Build Coastguard Worker uint32_t GMM_STDCALL GmmResGetArraySize(GMM_RESOURCE_INFO *pGmmResource)
421*35ffd701SAndroid Build Coastguard Worker {
422*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, 0);
423*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetArraySize();
424*35ffd701SAndroid Build Coastguard Worker }
425*35ffd701SAndroid Build Coastguard Worker
426*35ffd701SAndroid Build Coastguard Worker #if(LHDM)
427*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
428*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::GetRefreshRate.
429*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetRefreshRate()
430*35ffd701SAndroid Build Coastguard Worker ///
431*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
432*35ffd701SAndroid Build Coastguard Worker /// @return Refresh rate
433*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetRefreshRate(GMM_RESOURCE_INFO * pGmmResource)434*35ffd701SAndroid Build Coastguard Worker D3DDDI_RATIONAL GMM_STDCALL GmmResGetRefreshRate(GMM_RESOURCE_INFO *pGmmResource)
435*35ffd701SAndroid Build Coastguard Worker {
436*35ffd701SAndroid Build Coastguard Worker D3DDDI_RATIONAL RetVal = {0};
437*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, RetVal);
438*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetRefreshRate();
439*35ffd701SAndroid Build Coastguard Worker }
440*35ffd701SAndroid Build Coastguard Worker #endif // LHDM
441*35ffd701SAndroid Build Coastguard Worker
442*35ffd701SAndroid Build Coastguard Worker #if(LHDM)
443*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
444*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoWin::GetD3d9Flags.
445*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoWin::GetD3d9Flags()
446*35ffd701SAndroid Build Coastguard Worker ///
447*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
448*35ffd701SAndroid Build Coastguard Worker /// @param[out] pD3d9Flags: Mscaps data is copied to this param
449*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetD3d9Flags(GMM_RESOURCE_INFO * pGmmResource,D3DDDI_RESOURCEFLAGS * pD3d9Flags)450*35ffd701SAndroid Build Coastguard Worker void GMM_STDCALL GmmResGetD3d9Flags(GMM_RESOURCE_INFO * pGmmResource,
451*35ffd701SAndroid Build Coastguard Worker D3DDDI_RESOURCEFLAGS *pD3d9Flags)
452*35ffd701SAndroid Build Coastguard Worker {
453*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, VOIDRETURN);
454*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pD3d9Flags, VOIDRETURN);
455*35ffd701SAndroid Build Coastguard Worker
456*35ffd701SAndroid Build Coastguard Worker *pD3d9Flags = pGmmResource->GetD3d9Flags();
457*35ffd701SAndroid Build Coastguard Worker }
458*35ffd701SAndroid Build Coastguard Worker
459*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
460*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoWin::GetD3d9Format.
461*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoWin::GetD3d9Format()
462*35ffd701SAndroid Build Coastguard Worker ///
463*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
464*35ffd701SAndroid Build Coastguard Worker /// @return D3d9 format for the resource
465*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetD3d9Format(GMM_RESOURCE_INFO * pGmmResource)466*35ffd701SAndroid Build Coastguard Worker D3DDDIFORMAT GMM_STDCALL GmmResGetD3d9Format(GMM_RESOURCE_INFO *pGmmResource)
467*35ffd701SAndroid Build Coastguard Worker {
468*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, (D3DDDIFORMAT)0);
469*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetD3d9Format();
470*35ffd701SAndroid Build Coastguard Worker }
471*35ffd701SAndroid Build Coastguard Worker
472*35ffd701SAndroid Build Coastguard Worker
473*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
474*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoWin::GetVidSourceId.
475*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoWin::GetVidSourceId()
476*35ffd701SAndroid Build Coastguard Worker ///
477*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
478*35ffd701SAndroid Build Coastguard Worker /// @return Source Id
479*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetVidSourceId(GMM_RESOURCE_INFO * pGmmResource)480*35ffd701SAndroid Build Coastguard Worker D3DDDI_VIDEO_PRESENT_SOURCE_ID GMM_STDCALL GmmResGetVidSourceId(GMM_RESOURCE_INFO *pGmmResource)
481*35ffd701SAndroid Build Coastguard Worker {
482*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, 0);
483*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetVidSourceId();
484*35ffd701SAndroid Build Coastguard Worker }
485*35ffd701SAndroid Build Coastguard Worker
486*35ffd701SAndroid Build Coastguard Worker #endif // LHDM
487*35ffd701SAndroid Build Coastguard Worker
488*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
489*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoWin::Is64KBPageSuitable.
490*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoWin::Is64KBPageSuitable()
491*35ffd701SAndroid Build Coastguard Worker ///
492*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
493*35ffd701SAndroid Build Coastguard Worker /// @return 1/0
494*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResIs64KBPageSuitable(GMM_RESOURCE_INFO * pGmmResource)495*35ffd701SAndroid Build Coastguard Worker uint8_t GMM_STDCALL GmmResIs64KBPageSuitable(GMM_RESOURCE_INFO *pGmmResource)
496*35ffd701SAndroid Build Coastguard Worker {
497*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, 0);
498*35ffd701SAndroid Build Coastguard Worker return pGmmResource->Is64KBPageSuitable();
499*35ffd701SAndroid Build Coastguard Worker }
500*35ffd701SAndroid Build Coastguard Worker
501*35ffd701SAndroid Build Coastguard Worker
502*35ffd701SAndroid Build Coastguard Worker
503*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
504*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::GetRotateInfo.
505*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetRotateInfo()
506*35ffd701SAndroid Build Coastguard Worker ///
507*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
508*35ffd701SAndroid Build Coastguard Worker /// @return rotation info
509*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetRotateInfo(GMM_RESOURCE_INFO * pGmmResource)510*35ffd701SAndroid Build Coastguard Worker uint32_t GMM_STDCALL GmmResGetRotateInfo(GMM_RESOURCE_INFO *pGmmResource)
511*35ffd701SAndroid Build Coastguard Worker {
512*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, 0);
513*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetRotateInfo();
514*35ffd701SAndroid Build Coastguard Worker }
515*35ffd701SAndroid Build Coastguard Worker
516*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
517*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::GetAuxQPitch.
518*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetAuxQPitch()
519*35ffd701SAndroid Build Coastguard Worker ///
520*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
521*35ffd701SAndroid Build Coastguard Worker /// @return Aux QPitch
522*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetAuxQPitch(GMM_RESOURCE_INFO * pGmmResource)523*35ffd701SAndroid Build Coastguard Worker uint32_t GMM_STDCALL GmmResGetAuxQPitch(GMM_RESOURCE_INFO *pGmmResource)
524*35ffd701SAndroid Build Coastguard Worker {
525*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, 0);
526*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetAuxQPitch();
527*35ffd701SAndroid Build Coastguard Worker }
528*35ffd701SAndroid Build Coastguard Worker
529*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
530*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::GetQPitch.
531*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetQPitch()
532*35ffd701SAndroid Build Coastguard Worker ///
533*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
534*35ffd701SAndroid Build Coastguard Worker /// @return QPitch
535*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetQPitch(GMM_RESOURCE_INFO * pGmmResource)536*35ffd701SAndroid Build Coastguard Worker uint32_t GMM_STDCALL GmmResGetQPitch(GMM_RESOURCE_INFO *pGmmResource)
537*35ffd701SAndroid Build Coastguard Worker {
538*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, 0);
539*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetQPitch();
540*35ffd701SAndroid Build Coastguard Worker }
541*35ffd701SAndroid Build Coastguard Worker
542*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
543*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::GetQPitchPlanar.
544*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetQPitchPlanar()
545*35ffd701SAndroid Build Coastguard Worker ///
546*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
547*35ffd701SAndroid Build Coastguard Worker /// @return Planar QPitch
548*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetQPitchPlanar(GMM_RESOURCE_INFO * pGmmResource,GMM_YUV_PLANE Plane)549*35ffd701SAndroid Build Coastguard Worker uint32_t GMM_STDCALL GmmResGetQPitchPlanar(GMM_RESOURCE_INFO *pGmmResource, GMM_YUV_PLANE Plane)
550*35ffd701SAndroid Build Coastguard Worker {
551*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, 0);
552*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetQPitchPlanar(Plane);
553*35ffd701SAndroid Build Coastguard Worker }
554*35ffd701SAndroid Build Coastguard Worker
555*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
556*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::GetQPitchInBytes.
557*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetQPitchInBytes()
558*35ffd701SAndroid Build Coastguard Worker ///
559*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
560*35ffd701SAndroid Build Coastguard Worker /// @return QPitch
561*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetQPitchInBytes(GMM_RESOURCE_INFO * pGmmResource)562*35ffd701SAndroid Build Coastguard Worker GMM_GFX_SIZE_T GMM_STDCALL GmmResGetQPitchInBytes(GMM_RESOURCE_INFO *pGmmResource)
563*35ffd701SAndroid Build Coastguard Worker {
564*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERT(pGmmResource);
565*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetQPitchInBytes();
566*35ffd701SAndroid Build Coastguard Worker }
567*35ffd701SAndroid Build Coastguard Worker
568*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
569*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::GetRenderPitch.
570*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetRenderPitch()
571*35ffd701SAndroid Build Coastguard Worker ///
572*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
573*35ffd701SAndroid Build Coastguard Worker /// @return Pitch
574*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetRenderPitch(GMM_RESOURCE_INFO * pGmmResource)575*35ffd701SAndroid Build Coastguard Worker uint32_t GMM_STDCALL GmmResGetRenderPitch(GMM_RESOURCE_INFO *pGmmResource)
576*35ffd701SAndroid Build Coastguard Worker {
577*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, 0);
578*35ffd701SAndroid Build Coastguard Worker return GFX_ULONG_CAST(pGmmResource->GetRenderPitch());
579*35ffd701SAndroid Build Coastguard Worker }
580*35ffd701SAndroid Build Coastguard Worker
581*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
582*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::GetRenderPitchTiles.
583*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetRenderPitchTiles()
584*35ffd701SAndroid Build Coastguard Worker ///
585*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
586*35ffd701SAndroid Build Coastguard Worker /// @return Pitch in tiles
587*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetRenderPitchTiles(GMM_RESOURCE_INFO * pGmmResource)588*35ffd701SAndroid Build Coastguard Worker uint32_t GMM_STDCALL GmmResGetRenderPitchTiles(GMM_RESOURCE_INFO *pGmmResource)
589*35ffd701SAndroid Build Coastguard Worker {
590*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, 0);
591*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetRenderPitchTiles();
592*35ffd701SAndroid Build Coastguard Worker }
593*35ffd701SAndroid Build Coastguard Worker
594*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
595*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::GetRenderAuxPitchTiles.
596*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetRenderAuxPitchTiles()
597*35ffd701SAndroid Build Coastguard Worker ///
598*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
599*35ffd701SAndroid Build Coastguard Worker /// @return Aux Pitch in tiles
600*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetRenderAuxPitchTiles(GMM_RESOURCE_INFO * pGmmResource)601*35ffd701SAndroid Build Coastguard Worker uint32_t GMM_STDCALL GmmResGetRenderAuxPitchTiles(GMM_RESOURCE_INFO *pGmmResource)
602*35ffd701SAndroid Build Coastguard Worker {
603*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, 0);
604*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetRenderAuxPitchTiles();
605*35ffd701SAndroid Build Coastguard Worker }
606*35ffd701SAndroid Build Coastguard Worker
607*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
608*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::GetUnifiedAuxPitch.
609*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetUnifiedAuxPitch()
610*35ffd701SAndroid Build Coastguard Worker ///
611*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
612*35ffd701SAndroid Build Coastguard Worker /// @return Aux Pitch
613*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetAuxPitch(GMM_RESOURCE_INFO * pGmmResource)614*35ffd701SAndroid Build Coastguard Worker uint32_t GMM_STDCALL GmmResGetAuxPitch(GMM_RESOURCE_INFO *pGmmResource)
615*35ffd701SAndroid Build Coastguard Worker {
616*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, 0);
617*35ffd701SAndroid Build Coastguard Worker return GFX_ULONG_CAST(pGmmResource->GetUnifiedAuxPitch());
618*35ffd701SAndroid Build Coastguard Worker }
619*35ffd701SAndroid Build Coastguard Worker
620*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
621*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::GetBitsPerPixel.
622*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetBitsPerPixel()
623*35ffd701SAndroid Build Coastguard Worker ///
624*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
625*35ffd701SAndroid Build Coastguard Worker /// @return bpp
626*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetBitsPerPixel(GMM_RESOURCE_INFO * pGmmResource)627*35ffd701SAndroid Build Coastguard Worker uint32_t GMM_STDCALL GmmResGetBitsPerPixel(GMM_RESOURCE_INFO *pGmmResource)
628*35ffd701SAndroid Build Coastguard Worker {
629*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, 0);
630*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetBitsPerPixel();
631*35ffd701SAndroid Build Coastguard Worker }
632*35ffd701SAndroid Build Coastguard Worker
633*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
634*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::GetUnifiedAuxBitsPerPixel.
635*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetUnifiedAuxBitsPerPixel()
636*35ffd701SAndroid Build Coastguard Worker ///
637*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
638*35ffd701SAndroid Build Coastguard Worker /// @return bpp
639*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetAuxBitsPerPixel(GMM_RESOURCE_INFO * pGmmResource)640*35ffd701SAndroid Build Coastguard Worker uint32_t GMM_STDCALL GmmResGetAuxBitsPerPixel(GMM_RESOURCE_INFO *pGmmResource)
641*35ffd701SAndroid Build Coastguard Worker {
642*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, 0);
643*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetUnifiedAuxBitsPerPixel();
644*35ffd701SAndroid Build Coastguard Worker }
645*35ffd701SAndroid Build Coastguard Worker
646*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
647*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::GetCompressionBlockXxx.
648*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetCompressionBlockWidth()
649*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetCompressionBlockHeight()
650*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetCompressionBlockDepth()
651*35ffd701SAndroid Build Coastguard Worker ///
652*35ffd701SAndroid Build Coastguard Worker /// @param[in] pRes: Pointer to the GmmResourceInfo class
653*35ffd701SAndroid Build Coastguard Worker /// @return Compression Block Width/Height/Depth
654*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
655*35ffd701SAndroid Build Coastguard Worker #define GmmResGetCompressionBlockXxx(Xxx) \
656*35ffd701SAndroid Build Coastguard Worker uint32_t GMM_STDCALL GmmResGetCompressionBlock##Xxx(GMM_RESOURCE_INFO *pGmmResource) \
657*35ffd701SAndroid Build Coastguard Worker { \
658*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, 1); \
659*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetCompressionBlock##Xxx(); \
660*35ffd701SAndroid Build Coastguard Worker } ///////////////////////////////////////////////////////
661*35ffd701SAndroid Build Coastguard Worker GmmResGetCompressionBlockXxx(Width)
GmmResGetCompressionBlockXxx(Height)662*35ffd701SAndroid Build Coastguard Worker GmmResGetCompressionBlockXxx(Height)
663*35ffd701SAndroid Build Coastguard Worker GmmResGetCompressionBlockXxx(Depth)
664*35ffd701SAndroid Build Coastguard Worker
665*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
666*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::GetUnifiedAuxBitsPerPixel.
667*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetUnifiedAuxBitsPerPixel()
668*35ffd701SAndroid Build Coastguard Worker ///
669*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
670*35ffd701SAndroid Build Coastguard Worker /// @param[in][out] pReqInfo: Has info about which offset client is requesting. Offset is also
671*35ffd701SAndroid Build Coastguard Worker /// passed back to the client in this parameter.
672*35ffd701SAndroid Build Coastguard Worker /// @return ::GMM_STATUS
673*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
674*35ffd701SAndroid Build Coastguard Worker GMM_STATUS GMM_STDCALL GmmResGetOffset(GMM_RESOURCE_INFO * pGmmResource,
675*35ffd701SAndroid Build Coastguard Worker GMM_REQ_OFFSET_INFO *pReqInfo)
676*35ffd701SAndroid Build Coastguard Worker {
677*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, GMM_ERROR);
678*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pReqInfo, GMM_ERROR);
679*35ffd701SAndroid Build Coastguard Worker
680*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetOffset(*pReqInfo);
681*35ffd701SAndroid Build Coastguard Worker }
682*35ffd701SAndroid Build Coastguard Worker
683*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
684*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::GetTextureLayout.
685*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetTextureLayout()
686*35ffd701SAndroid Build Coastguard Worker ///
687*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
688*35ffd701SAndroid Build Coastguard Worker /// @return GMM_2D_LAYOUT_RIGHT or GMM_2D_LAYOUT_BELOW
689*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetTextureLayout(GMM_RESOURCE_INFO * pGmmResource)690*35ffd701SAndroid Build Coastguard Worker GMM_TEXTURE_LAYOUT GMM_STDCALL GmmResGetTextureLayout(GMM_RESOURCE_INFO *pGmmResource)
691*35ffd701SAndroid Build Coastguard Worker {
692*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERT(pGmmResource);
693*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetTextureLayout();
694*35ffd701SAndroid Build Coastguard Worker }
695*35ffd701SAndroid Build Coastguard Worker
696*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
697*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::GetTileType.
698*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetTileType()
699*35ffd701SAndroid Build Coastguard Worker ///
700*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
701*35ffd701SAndroid Build Coastguard Worker /// @return ::GMM_TILE_TYPE
702*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetTileType(GMM_RESOURCE_INFO * pGmmResource)703*35ffd701SAndroid Build Coastguard Worker GMM_TILE_TYPE GMM_STDCALL GmmResGetTileType(GMM_RESOURCE_INFO *pGmmResource)
704*35ffd701SAndroid Build Coastguard Worker {
705*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERT(pGmmResource);
706*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetTileType();
707*35ffd701SAndroid Build Coastguard Worker }
708*35ffd701SAndroid Build Coastguard Worker
709*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
710*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::GetMipHeight.
711*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetMipHeight()
712*35ffd701SAndroid Build Coastguard Worker ///
713*35ffd701SAndroid Build Coastguard Worker /// @param[in] pResourceInfo: Pointer to the GmmResourceInfo class
714*35ffd701SAndroid Build Coastguard Worker /// @param[in] MipLevel: Mip level for which the info is needed
715*35ffd701SAndroid Build Coastguard Worker /// @return Mip Height
716*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetMipHeight(GMM_RESOURCE_INFO * pResourceInfo,uint32_t MipLevel)717*35ffd701SAndroid Build Coastguard Worker uint32_t GMM_STDCALL GmmResGetMipHeight(GMM_RESOURCE_INFO *pResourceInfo, uint32_t MipLevel)
718*35ffd701SAndroid Build Coastguard Worker {
719*35ffd701SAndroid Build Coastguard Worker return pResourceInfo->GetMipHeight(MipLevel);
720*35ffd701SAndroid Build Coastguard Worker }
721*35ffd701SAndroid Build Coastguard Worker
722*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
723*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::GetMipWidth.
724*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetMipWidth()
725*35ffd701SAndroid Build Coastguard Worker ///
726*35ffd701SAndroid Build Coastguard Worker /// @param[in] pResourceInfo: Pointer to the GmmResourceInfo class
727*35ffd701SAndroid Build Coastguard Worker /// @param[in] MipLevel: Mip level for which the info is needed
728*35ffd701SAndroid Build Coastguard Worker /// @return Mip Width
729*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetMipWidth(GMM_RESOURCE_INFO * pResourceInfo,uint32_t MipLevel)730*35ffd701SAndroid Build Coastguard Worker GMM_GFX_SIZE_T GMM_STDCALL GmmResGetMipWidth(GMM_RESOURCE_INFO *pResourceInfo, uint32_t MipLevel)
731*35ffd701SAndroid Build Coastguard Worker {
732*35ffd701SAndroid Build Coastguard Worker return pResourceInfo->GetMipWidth(MipLevel);
733*35ffd701SAndroid Build Coastguard Worker }
734*35ffd701SAndroid Build Coastguard Worker
735*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
736*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::GetMipDepth.
737*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetMipDepth()
738*35ffd701SAndroid Build Coastguard Worker ///
739*35ffd701SAndroid Build Coastguard Worker /// @param[in] pResourceInfo: Pointer to the GmmResourceInfo class
740*35ffd701SAndroid Build Coastguard Worker /// @param[in] MipLevel: Mip level for which the info is needed
741*35ffd701SAndroid Build Coastguard Worker /// @return Mip Depth
742*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetMipDepth(GMM_RESOURCE_INFO * pResourceInfo,uint32_t MipLevel)743*35ffd701SAndroid Build Coastguard Worker uint32_t GMM_STDCALL GmmResGetMipDepth(GMM_RESOURCE_INFO *pResourceInfo, uint32_t MipLevel)
744*35ffd701SAndroid Build Coastguard Worker {
745*35ffd701SAndroid Build Coastguard Worker return pResourceInfo->GetMipDepth(MipLevel);
746*35ffd701SAndroid Build Coastguard Worker }
747*35ffd701SAndroid Build Coastguard Worker
748*35ffd701SAndroid Build Coastguard Worker //=============================================================================
749*35ffd701SAndroid Build Coastguard Worker //
750*35ffd701SAndroid Build Coastguard Worker // Function:GmmResGetCornerTexelMode
751*35ffd701SAndroid Build Coastguard Worker //
752*35ffd701SAndroid Build Coastguard Worker // Desc:
753*35ffd701SAndroid Build Coastguard Worker // Simple getter function to return the Corner Texel Mode of a surface.
754*35ffd701SAndroid Build Coastguard Worker //
755*35ffd701SAndroid Build Coastguard Worker // Parameters:
756*35ffd701SAndroid Build Coastguard Worker // pGmmResource: ==> A previously allocated resource.
757*35ffd701SAndroid Build Coastguard Worker //
758*35ffd701SAndroid Build Coastguard Worker // Returns:
759*35ffd701SAndroid Build Coastguard Worker // CornerTexelMode flag ==> uint8_t
760*35ffd701SAndroid Build Coastguard Worker //-----------------------------------------------------------------------------
GmmResGetCornerTexelMode(GMM_RESOURCE_INFO * pGmmResource)761*35ffd701SAndroid Build Coastguard Worker uint8_t GMM_STDCALL GmmResGetCornerTexelMode(GMM_RESOURCE_INFO *pGmmResource)
762*35ffd701SAndroid Build Coastguard Worker {
763*35ffd701SAndroid Build Coastguard Worker GMM_DPF_ENTER;
764*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERT(pGmmResource);
765*35ffd701SAndroid Build Coastguard Worker
766*35ffd701SAndroid Build Coastguard Worker return ((pGmmResource->GetResFlags().Info.CornerTexelMode) ? 1 : 0);
767*35ffd701SAndroid Build Coastguard Worker }
768*35ffd701SAndroid Build Coastguard Worker
769*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
770*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::GetCpuCacheType.
771*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetCpuCacheType()
772*35ffd701SAndroid Build Coastguard Worker ///
773*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
774*35ffd701SAndroid Build Coastguard Worker /// @return ::GMM_CPU_CACHE_TYPE
775*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetCpuCacheType(GMM_RESOURCE_INFO * pGmmResource)776*35ffd701SAndroid Build Coastguard Worker GMM_CPU_CACHE_TYPE GMM_STDCALL GmmResGetCpuCacheType(GMM_RESOURCE_INFO *pGmmResource)
777*35ffd701SAndroid Build Coastguard Worker {
778*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERT(pGmmResource);
779*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetCpuCacheType();
780*35ffd701SAndroid Build Coastguard Worker }
781*35ffd701SAndroid Build Coastguard Worker
782*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
783*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::GetMmcMode.
784*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetMmcMode()
785*35ffd701SAndroid Build Coastguard Worker ///
786*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
787*35ffd701SAndroid Build Coastguard Worker /// @param[in] ArrayIndex: ArrayIndex for which this info is needed
788*35ffd701SAndroid Build Coastguard Worker /// @return Media Memory Compression Mode (Disabled, Horizontal, Vertical)
789*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetMmcMode(GMM_RESOURCE_INFO * pGmmResource,uint32_t ArrayIndex)790*35ffd701SAndroid Build Coastguard Worker GMM_RESOURCE_MMC_INFO GMM_STDCALL GmmResGetMmcMode(GMM_RESOURCE_INFO *pGmmResource, uint32_t ArrayIndex)
791*35ffd701SAndroid Build Coastguard Worker {
792*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERT(pGmmResource);
793*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetMmcMode(ArrayIndex);
794*35ffd701SAndroid Build Coastguard Worker }
795*35ffd701SAndroid Build Coastguard Worker
796*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
797*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::SetMmcMode.
798*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::SetMmcMode()
799*35ffd701SAndroid Build Coastguard Worker ///
800*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
801*35ffd701SAndroid Build Coastguard Worker /// @param[in] Mode Media Memory Compression Mode (Disabled, Horizontal, Vertical)
802*35ffd701SAndroid Build Coastguard Worker /// @param[in] ArrayIndex ArrayIndex for which this info needs to be set
803*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResSetMmcMode(GMM_RESOURCE_INFO * pGmmResource,GMM_RESOURCE_MMC_INFO Mode,uint32_t ArrayIndex)804*35ffd701SAndroid Build Coastguard Worker void GMM_STDCALL GmmResSetMmcMode(GMM_RESOURCE_INFO *pGmmResource, GMM_RESOURCE_MMC_INFO Mode, uint32_t ArrayIndex)
805*35ffd701SAndroid Build Coastguard Worker {
806*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, VOIDRETURN);
807*35ffd701SAndroid Build Coastguard Worker pGmmResource->SetMmcMode(Mode, ArrayIndex);
808*35ffd701SAndroid Build Coastguard Worker }
809*35ffd701SAndroid Build Coastguard Worker
810*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
811*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::IsMediaMemoryCompressed.
812*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::IsMediaMemoryCompressed()
813*35ffd701SAndroid Build Coastguard Worker ///
814*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
815*35ffd701SAndroid Build Coastguard Worker /// @param[in] ArrayIndex ArrayIndex for which this info is needed
816*35ffd701SAndroid Build Coastguard Worker /// @return 1 (enabled), 0 (disabled)
817*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResIsMediaMemoryCompressed(GMM_RESOURCE_INFO * pGmmResource,uint32_t ArrayIndex)818*35ffd701SAndroid Build Coastguard Worker uint8_t GMM_STDCALL GmmResIsMediaMemoryCompressed(GMM_RESOURCE_INFO *pGmmResource, uint32_t ArrayIndex)
819*35ffd701SAndroid Build Coastguard Worker {
820*35ffd701SAndroid Build Coastguard Worker return pGmmResource->IsMediaMemoryCompressed(ArrayIndex);
821*35ffd701SAndroid Build Coastguard Worker }
822*35ffd701SAndroid Build Coastguard Worker
823*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
824*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::GetMmcHint.
825*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetMmcHint()
826*35ffd701SAndroid Build Coastguard Worker ///
827*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
828*35ffd701SAndroid Build Coastguard Worker /// @param[in] ArrayIndex ArrayIndex for which this info is needed
829*35ffd701SAndroid Build Coastguard Worker /// @return true/false
830*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetMmcHint(GMM_RESOURCE_INFO * pGmmResource,uint32_t ArrayIndex)831*35ffd701SAndroid Build Coastguard Worker GMM_RESOURCE_MMC_HINT GMM_STDCALL GmmResGetMmcHint(GMM_RESOURCE_INFO *pGmmResource, uint32_t ArrayIndex)
832*35ffd701SAndroid Build Coastguard Worker {
833*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERT(pGmmResource);
834*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetMmcHint(ArrayIndex);
835*35ffd701SAndroid Build Coastguard Worker }
836*35ffd701SAndroid Build Coastguard Worker
837*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
838*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::SetMmcHint.
839*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::SetMmcHint()
840*35ffd701SAndroid Build Coastguard Worker ///
841*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
842*35ffd701SAndroid Build Coastguard Worker /// @param[in] Hint Mmc hint to store
843*35ffd701SAndroid Build Coastguard Worker /// @param[in] ArrayIndex ArrayIndex for which this info is needed
844*35ffd701SAndroid Build Coastguard Worker /// @return true/false
845*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResSetMmcHint(GMM_RESOURCE_INFO * pGmmResource,GMM_RESOURCE_MMC_HINT Hint,uint32_t ArrayIndex)846*35ffd701SAndroid Build Coastguard Worker void GMM_STDCALL GmmResSetMmcHint(GMM_RESOURCE_INFO *pGmmResource, GMM_RESOURCE_MMC_HINT Hint, uint32_t ArrayIndex)
847*35ffd701SAndroid Build Coastguard Worker {
848*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, VOIDRETURN);
849*35ffd701SAndroid Build Coastguard Worker pGmmResource->SetMmcHint(Hint, ArrayIndex);
850*35ffd701SAndroid Build Coastguard Worker }
851*35ffd701SAndroid Build Coastguard Worker
852*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
853*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::GetNumSamples.
854*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetNumSamples()
855*35ffd701SAndroid Build Coastguard Worker ///
856*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
857*35ffd701SAndroid Build Coastguard Worker /// @return Sample count
858*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetNumSamples(GMM_RESOURCE_INFO * pGmmResource)859*35ffd701SAndroid Build Coastguard Worker uint32_t GMM_STDCALL GmmResGetNumSamples(GMM_RESOURCE_INFO *pGmmResource)
860*35ffd701SAndroid Build Coastguard Worker {
861*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, 0);
862*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetNumSamples();
863*35ffd701SAndroid Build Coastguard Worker }
864*35ffd701SAndroid Build Coastguard Worker
865*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
866*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::GetSamplePattern.
867*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetSamplePattern()
868*35ffd701SAndroid Build Coastguard Worker ///
869*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
870*35ffd701SAndroid Build Coastguard Worker /// @return Sample count
871*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetSamplePattern(GMM_RESOURCE_INFO * pGmmResource)872*35ffd701SAndroid Build Coastguard Worker GMM_MSAA_SAMPLE_PATTERN GMM_STDCALL GmmResGetSamplePattern(GMM_RESOURCE_INFO *pGmmResource)
873*35ffd701SAndroid Build Coastguard Worker {
874*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERT(pGmmResource);
875*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetSamplePattern();
876*35ffd701SAndroid Build Coastguard Worker }
877*35ffd701SAndroid Build Coastguard Worker
878*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
879*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::GetHAlign.
880*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetHAlign()
881*35ffd701SAndroid Build Coastguard Worker ///
882*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
883*35ffd701SAndroid Build Coastguard Worker /// @return HAlign
884*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetHAlign(GMM_RESOURCE_INFO * pGmmResource)885*35ffd701SAndroid Build Coastguard Worker uint32_t GMM_STDCALL GmmResGetHAlign(GMM_RESOURCE_INFO *pGmmResource)
886*35ffd701SAndroid Build Coastguard Worker {
887*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, 0);
888*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetHAlign();
889*35ffd701SAndroid Build Coastguard Worker }
890*35ffd701SAndroid Build Coastguard Worker
891*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
892*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::GetVAlign.
893*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetVAlign()
894*35ffd701SAndroid Build Coastguard Worker ///
895*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
896*35ffd701SAndroid Build Coastguard Worker /// @return VAlign
897*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetVAlign(GMM_RESOURCE_INFO * pGmmResource)898*35ffd701SAndroid Build Coastguard Worker uint32_t GMM_STDCALL GmmResGetVAlign(GMM_RESOURCE_INFO *pGmmResource)
899*35ffd701SAndroid Build Coastguard Worker {
900*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, 0);
901*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetVAlign();
902*35ffd701SAndroid Build Coastguard Worker }
903*35ffd701SAndroid Build Coastguard Worker
904*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
905*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::GetAuxHAlign.
906*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetAuxHAlign()
907*35ffd701SAndroid Build Coastguard Worker ///
908*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
909*35ffd701SAndroid Build Coastguard Worker /// @return HAlign
910*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetAuxHAlign(GMM_RESOURCE_INFO * pGmmResource)911*35ffd701SAndroid Build Coastguard Worker uint32_t GMM_STDCALL GmmResGetAuxHAlign(GMM_RESOURCE_INFO *pGmmResource)
912*35ffd701SAndroid Build Coastguard Worker {
913*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, 0);
914*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetAuxHAlign();
915*35ffd701SAndroid Build Coastguard Worker }
916*35ffd701SAndroid Build Coastguard Worker
917*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
918*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::GetAuxVAlign.
919*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetAuxVAlign()
920*35ffd701SAndroid Build Coastguard Worker ///
921*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
922*35ffd701SAndroid Build Coastguard Worker /// @return VAlign
923*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetAuxVAlign(GMM_RESOURCE_INFO * pGmmResource)924*35ffd701SAndroid Build Coastguard Worker uint32_t GMM_STDCALL GmmResGetAuxVAlign(GMM_RESOURCE_INFO *pGmmResource)
925*35ffd701SAndroid Build Coastguard Worker {
926*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, 0);
927*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetAuxVAlign();
928*35ffd701SAndroid Build Coastguard Worker }
929*35ffd701SAndroid Build Coastguard Worker
930*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
931*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::IsArraySpacingSingleLod.
932*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::IsArraySpacingSingleLod()
933*35ffd701SAndroid Build Coastguard Worker ///
934*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
935*35ffd701SAndroid Build Coastguard Worker /// @return 1/0
936*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResIsArraySpacingSingleLod(GMM_RESOURCE_INFO * pGmmResource)937*35ffd701SAndroid Build Coastguard Worker uint8_t GMM_STDCALL GmmResIsArraySpacingSingleLod(GMM_RESOURCE_INFO *pGmmResource)
938*35ffd701SAndroid Build Coastguard Worker {
939*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, 0);
940*35ffd701SAndroid Build Coastguard Worker return pGmmResource->IsArraySpacingSingleLod();
941*35ffd701SAndroid Build Coastguard Worker }
942*35ffd701SAndroid Build Coastguard Worker
943*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
944*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::IsASTC.
945*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::IsASTC()
946*35ffd701SAndroid Build Coastguard Worker ///
947*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
948*35ffd701SAndroid Build Coastguard Worker /// @return 1/0
949*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResIsASTC(GMM_RESOURCE_INFO * pGmmResource)950*35ffd701SAndroid Build Coastguard Worker uint8_t GMM_STDCALL GmmResIsASTC(GMM_RESOURCE_INFO *pGmmResource)
951*35ffd701SAndroid Build Coastguard Worker {
952*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, 0);
953*35ffd701SAndroid Build Coastguard Worker return pGmmResource->IsASTC();
954*35ffd701SAndroid Build Coastguard Worker }
955*35ffd701SAndroid Build Coastguard Worker
956*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
957*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::IsMsaaFormatDepthStencil.
958*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::IsMsaaFormatDepthStencil()
959*35ffd701SAndroid Build Coastguard Worker ///
960*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
961*35ffd701SAndroid Build Coastguard Worker /// @return 1/0
962*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResIsMsaaFormatDepthStencil(GMM_RESOURCE_INFO * pGmmResource)963*35ffd701SAndroid Build Coastguard Worker uint8_t GMM_STDCALL GmmResIsMsaaFormatDepthStencil(GMM_RESOURCE_INFO *pGmmResource)
964*35ffd701SAndroid Build Coastguard Worker {
965*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, 0);
966*35ffd701SAndroid Build Coastguard Worker return pGmmResource->IsMsaaFormatDepthStencil();
967*35ffd701SAndroid Build Coastguard Worker }
968*35ffd701SAndroid Build Coastguard Worker
969*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
970*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmLib::GmmResourceInfoCommon::IsSvm.
971*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::IsSvm()
972*35ffd701SAndroid Build Coastguard Worker ///
973*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to the GmmResourceInfo class
974*35ffd701SAndroid Build Coastguard Worker /// @return 1/0
975*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResIsSvm(GMM_RESOURCE_INFO * pGmmResource)976*35ffd701SAndroid Build Coastguard Worker uint8_t GMM_STDCALL GmmResIsSvm(GMM_RESOURCE_INFO *pGmmResource)
977*35ffd701SAndroid Build Coastguard Worker {
978*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, 0);
979*35ffd701SAndroid Build Coastguard Worker return pGmmResource->IsSvm();
980*35ffd701SAndroid Build Coastguard Worker }
981*35ffd701SAndroid Build Coastguard Worker
982*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
983*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::ValidateParams
984*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::ValidateParams()
985*35ffd701SAndroid Build Coastguard Worker ///
986*35ffd701SAndroid Build Coastguard Worker /// @param[in] pResourceInfo: Pointer to GmmResourceInfo class
987*35ffd701SAndroid Build Coastguard Worker /// @return 1 is validation passed. 0 otherwise.
988*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResValidateParams(GMM_RESOURCE_INFO * pResourceInfo)989*35ffd701SAndroid Build Coastguard Worker uint8_t GMM_STDCALL GmmResValidateParams(GMM_RESOURCE_INFO *pResourceInfo)
990*35ffd701SAndroid Build Coastguard Worker {
991*35ffd701SAndroid Build Coastguard Worker return pResourceInfo->ValidateParams();
992*35ffd701SAndroid Build Coastguard Worker }
993*35ffd701SAndroid Build Coastguard Worker
994*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
995*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::SetPrivateData
996*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::SetPrivateData()
997*35ffd701SAndroid Build Coastguard Worker ///
998*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to GmmResourceInfo class
999*35ffd701SAndroid Build Coastguard Worker /// @param[in] pPrivateData: Pointer to opaque private data from clients
1000*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResSetPrivateData(GMM_RESOURCE_INFO * pGmmResource,void * pPrivateData)1001*35ffd701SAndroid Build Coastguard Worker void GMM_STDCALL GmmResSetPrivateData(GMM_RESOURCE_INFO *pGmmResource, void *pPrivateData)
1002*35ffd701SAndroid Build Coastguard Worker {
1003*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, VOIDRETURN);
1004*35ffd701SAndroid Build Coastguard Worker pGmmResource->SetPrivateData(pPrivateData);
1005*35ffd701SAndroid Build Coastguard Worker }
1006*35ffd701SAndroid Build Coastguard Worker
1007*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
1008*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::GetPrivateData
1009*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetPrivateData()
1010*35ffd701SAndroid Build Coastguard Worker ///
1011*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to GmmResourceInfo class
1012*35ffd701SAndroid Build Coastguard Worker /// @return pointer to opaque private data
1013*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetPrivateData(GMM_RESOURCE_INFO * pGmmResource)1014*35ffd701SAndroid Build Coastguard Worker void *GMM_STDCALL GmmResGetPrivateData(GMM_RESOURCE_INFO *pGmmResource)
1015*35ffd701SAndroid Build Coastguard Worker {
1016*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, 0);
1017*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetPrivateData();
1018*35ffd701SAndroid Build Coastguard Worker }
1019*35ffd701SAndroid Build Coastguard Worker
1020*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
1021*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::GetGfxAddress
1022*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetGfxAddress()
1023*35ffd701SAndroid Build Coastguard Worker ///
1024*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to GmmResourceInfo class
1025*35ffd701SAndroid Build Coastguard Worker /// @return Gfx address
1026*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetGfxAddress(GMM_RESOURCE_INFO * pGmmResource)1027*35ffd701SAndroid Build Coastguard Worker GMM_GFX_ADDRESS GMM_STDCALL GmmResGetGfxAddress(GMM_RESOURCE_INFO *pGmmResource)
1028*35ffd701SAndroid Build Coastguard Worker {
1029*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, 0);
1030*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetGfxAddress();
1031*35ffd701SAndroid Build Coastguard Worker }
1032*35ffd701SAndroid Build Coastguard Worker
1033*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
1034*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::GetTallBufferHeight
1035*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetTallBufferHeight()
1036*35ffd701SAndroid Build Coastguard Worker ///
1037*35ffd701SAndroid Build Coastguard Worker /// @param[in] pResourceInfo: Pointer to GmmResourceInfo class
1038*35ffd701SAndroid Build Coastguard Worker /// @return Surface height
1039*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetTallBufferHeight(GMM_RESOURCE_INFO * pResourceInfo)1040*35ffd701SAndroid Build Coastguard Worker uint32_t GMM_STDCALL GmmResGetTallBufferHeight(GMM_RESOURCE_INFO *pResourceInfo)
1041*35ffd701SAndroid Build Coastguard Worker {
1042*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pResourceInfo, 0);
1043*35ffd701SAndroid Build Coastguard Worker return pResourceInfo->GetTallBufferHeight();
1044*35ffd701SAndroid Build Coastguard Worker };
1045*35ffd701SAndroid Build Coastguard Worker
1046*35ffd701SAndroid Build Coastguard Worker
1047*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
1048*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::GetSizeMainSurface
1049*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetSizeMainSurface()
1050*35ffd701SAndroid Build Coastguard Worker ///
1051*35ffd701SAndroid Build Coastguard Worker /// @param[in] pResourceInfo: Pointer to GmmResourceInfo class
1052*35ffd701SAndroid Build Coastguard Worker /// @return Size of main surface
1053*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetSizeMainSurface(const GMM_RESOURCE_INFO * pResourceInfo)1054*35ffd701SAndroid Build Coastguard Worker GMM_GFX_SIZE_T GMM_STDCALL GmmResGetSizeMainSurface(const GMM_RESOURCE_INFO *pResourceInfo)
1055*35ffd701SAndroid Build Coastguard Worker {
1056*35ffd701SAndroid Build Coastguard Worker return pResourceInfo->GetSizeMainSurface();
1057*35ffd701SAndroid Build Coastguard Worker }
1058*35ffd701SAndroid Build Coastguard Worker
1059*35ffd701SAndroid Build Coastguard Worker //TODO(Low) : Remove when client moves to new interface
1060*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
1061*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::GetSizeSurface
1062*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetSizeSurface()
1063*35ffd701SAndroid Build Coastguard Worker ///
1064*35ffd701SAndroid Build Coastguard Worker /// @param[in] pResourceInfo: Pointer to GmmResourceInfo class
1065*35ffd701SAndroid Build Coastguard Worker /// @return Surface Size
1066*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetRenderSize(GMM_RESOURCE_INFO * pResourceInfo)1067*35ffd701SAndroid Build Coastguard Worker uint32_t GMM_STDCALL GmmResGetRenderSize(GMM_RESOURCE_INFO *pResourceInfo)
1068*35ffd701SAndroid Build Coastguard Worker {
1069*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pResourceInfo, 0);
1070*35ffd701SAndroid Build Coastguard Worker return GFX_ULONG_CAST(pResourceInfo->GetSizeSurface());
1071*35ffd701SAndroid Build Coastguard Worker }
1072*35ffd701SAndroid Build Coastguard Worker
GmmResGetAuxSurfaceSize(GMM_RESOURCE_INFO * pGmmResource,GMM_UNIFIED_AUX_TYPE GmmAuxType)1073*35ffd701SAndroid Build Coastguard Worker uint32_t GMM_STDCALL GmmResGetAuxSurfaceSize(GMM_RESOURCE_INFO *pGmmResource, GMM_UNIFIED_AUX_TYPE GmmAuxType)
1074*35ffd701SAndroid Build Coastguard Worker {
1075*35ffd701SAndroid Build Coastguard Worker return GFX_ULONG_CAST(GmmResGetSizeAuxSurface(pGmmResource, GmmAuxType));
1076*35ffd701SAndroid Build Coastguard Worker }
1077*35ffd701SAndroid Build Coastguard Worker
1078*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
1079*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::GetSizeSurface
1080*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetSizeSurface()
1081*35ffd701SAndroid Build Coastguard Worker ///
1082*35ffd701SAndroid Build Coastguard Worker /// @param[in] pResourceInfo: Pointer to GmmResourceInfo class
1083*35ffd701SAndroid Build Coastguard Worker /// @return Surface Size
1084*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetSizeSurface(GMM_RESOURCE_INFO * pResourceInfo)1085*35ffd701SAndroid Build Coastguard Worker GMM_GFX_SIZE_T GMM_STDCALL GmmResGetSizeSurface(GMM_RESOURCE_INFO *pResourceInfo)
1086*35ffd701SAndroid Build Coastguard Worker {
1087*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pResourceInfo, 0);
1088*35ffd701SAndroid Build Coastguard Worker return pResourceInfo->GetSizeSurface();
1089*35ffd701SAndroid Build Coastguard Worker }
1090*35ffd701SAndroid Build Coastguard Worker
1091*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
1092*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::GetSizeAllocation
1093*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetSizeAllocation()
1094*35ffd701SAndroid Build Coastguard Worker ///
1095*35ffd701SAndroid Build Coastguard Worker /// @param[in] pResourceInfo: Pointer to GmmResourceInfo class
1096*35ffd701SAndroid Build Coastguard Worker /// @return Allocation Size
1097*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetSizeAllocation(GMM_RESOURCE_INFO * pResourceInfo)1098*35ffd701SAndroid Build Coastguard Worker GMM_GFX_SIZE_T GMM_STDCALL GmmResGetSizeAllocation(GMM_RESOURCE_INFO *pResourceInfo)
1099*35ffd701SAndroid Build Coastguard Worker {
1100*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pResourceInfo, 0);
1101*35ffd701SAndroid Build Coastguard Worker return pResourceInfo->GetSizeAllocation();
1102*35ffd701SAndroid Build Coastguard Worker }
1103*35ffd701SAndroid Build Coastguard Worker
1104*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
1105*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::GetResourceFormatSurfaceState
1106*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetResourceFormatSurfaceState()
1107*35ffd701SAndroid Build Coastguard Worker ///
1108*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to GmmResourceInfo class
1109*35ffd701SAndroid Build Coastguard Worker /// @return Resource format
1110*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetSurfaceStateFormat(GMM_RESOURCE_INFO * pGmmResource)1111*35ffd701SAndroid Build Coastguard Worker GMM_SURFACESTATE_FORMAT GMM_STDCALL GmmResGetSurfaceStateFormat(GMM_RESOURCE_INFO *pGmmResource)
1112*35ffd701SAndroid Build Coastguard Worker {
1113*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, GMM_SURFACESTATE_FORMAT_INVALID);
1114*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetResourceFormatSurfaceState();
1115*35ffd701SAndroid Build Coastguard Worker }
1116*35ffd701SAndroid Build Coastguard Worker
1117*35ffd701SAndroid Build Coastguard Worker //=============================================================================
1118*35ffd701SAndroid Build Coastguard Worker //
1119*35ffd701SAndroid Build Coastguard Worker // Function: GmmGetSurfaceStateFormat
1120*35ffd701SAndroid Build Coastguard Worker //
1121*35ffd701SAndroid Build Coastguard Worker // Desc: See below.
1122*35ffd701SAndroid Build Coastguard Worker //
1123*35ffd701SAndroid Build Coastguard Worker // Returns:
1124*35ffd701SAndroid Build Coastguard Worker // SURFACE_STATE.Format for the given resource or
1125*35ffd701SAndroid Build Coastguard Worker // GMM_SURFACESTATE_FORMAT_INVALID if resource wasn't created with a
1126*35ffd701SAndroid Build Coastguard Worker // direct SURFACE_STATE.Format.
1127*35ffd701SAndroid Build Coastguard Worker //
1128*35ffd701SAndroid Build Coastguard Worker //-----------------------------------------------------------------------------
GmmGetSurfaceStateFormat(GMM_RESOURCE_FORMAT Format,GMM_LIB_CONTEXT * pGmmLibContext)1129*35ffd701SAndroid Build Coastguard Worker GMM_SURFACESTATE_FORMAT GMM_STDCALL GmmGetSurfaceStateFormat(GMM_RESOURCE_FORMAT Format, GMM_LIB_CONTEXT *pGmmLibContext)
1130*35ffd701SAndroid Build Coastguard Worker {
1131*35ffd701SAndroid Build Coastguard Worker return ((Format > GMM_FORMAT_INVALID) &&
1132*35ffd701SAndroid Build Coastguard Worker (Format < GMM_RESOURCE_FORMATS)) ?
1133*35ffd701SAndroid Build Coastguard Worker pGmmLibContext->GetPlatformInfo().FormatTable[Format].SurfaceStateFormat :
1134*35ffd701SAndroid Build Coastguard Worker GMM_SURFACESTATE_FORMAT_INVALID;
1135*35ffd701SAndroid Build Coastguard Worker }
1136*35ffd701SAndroid Build Coastguard Worker
1137*35ffd701SAndroid Build Coastguard Worker
1138*35ffd701SAndroid Build Coastguard Worker //=============================================================================
1139*35ffd701SAndroid Build Coastguard Worker //
1140*35ffd701SAndroid Build Coastguard Worker // Function: GmmGetCompressionFormat
1141*35ffd701SAndroid Build Coastguard Worker //
1142*35ffd701SAndroid Build Coastguard Worker // Desc: See below.
1143*35ffd701SAndroid Build Coastguard Worker //
1144*35ffd701SAndroid Build Coastguard Worker // Returns:
1145*35ffd701SAndroid Build Coastguard Worker // CompressionFormat.CompressionFormat
1146*35ffd701SAndroid Build Coastguard Worker //
1147*35ffd701SAndroid Build Coastguard Worker //-----------------------------------------------------------------------------
GmmGetCompressionFormat(GMM_RESOURCE_FORMAT Format,GMM_LIB_CONTEXT * pGmmLibContext)1148*35ffd701SAndroid Build Coastguard Worker uint8_t GMM_STDCALL GmmGetCompressionFormat(GMM_RESOURCE_FORMAT Format, GMM_LIB_CONTEXT *pGmmLibContext)
1149*35ffd701SAndroid Build Coastguard Worker {
1150*35ffd701SAndroid Build Coastguard Worker return (((Format > GMM_FORMAT_INVALID) &&
1151*35ffd701SAndroid Build Coastguard Worker (Format < GMM_RESOURCE_FORMATS)) ?
1152*35ffd701SAndroid Build Coastguard Worker pGmmLibContext->GetPlatformInfo().FormatTable[Format].CompressionFormat.CompressionFormat :
1153*35ffd701SAndroid Build Coastguard Worker GMM_UNIFIED_CMF_INVALID);
1154*35ffd701SAndroid Build Coastguard Worker }
1155*35ffd701SAndroid Build Coastguard Worker
1156*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
1157*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::GetHAlignSurfaceState
1158*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetHAlignSurfaceState()
1159*35ffd701SAndroid Build Coastguard Worker ///
1160*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to GmmResourceInfo class
1161*35ffd701SAndroid Build Coastguard Worker /// @return HAlign
1162*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetSurfaceStateHAlign(GMM_RESOURCE_INFO * pGmmResource)1163*35ffd701SAndroid Build Coastguard Worker uint32_t GMM_STDCALL GmmResGetSurfaceStateHAlign(GMM_RESOURCE_INFO *pGmmResource)
1164*35ffd701SAndroid Build Coastguard Worker {
1165*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, 0);
1166*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetHAlignSurfaceState();
1167*35ffd701SAndroid Build Coastguard Worker }
1168*35ffd701SAndroid Build Coastguard Worker
1169*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
1170*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::GetVAlignSurfaceState
1171*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetVAlignSurfaceState()
1172*35ffd701SAndroid Build Coastguard Worker ///
1173*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to GmmResourceInfo class
1174*35ffd701SAndroid Build Coastguard Worker /// @return VAlign
1175*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetSurfaceStateVAlign(GMM_RESOURCE_INFO * pGmmResource)1176*35ffd701SAndroid Build Coastguard Worker uint32_t GMM_STDCALL GmmResGetSurfaceStateVAlign(GMM_RESOURCE_INFO *pGmmResource)
1177*35ffd701SAndroid Build Coastguard Worker {
1178*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, 0);
1179*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetVAlignSurfaceState();
1180*35ffd701SAndroid Build Coastguard Worker }
1181*35ffd701SAndroid Build Coastguard Worker
1182*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
1183*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::GetTiledResourceModeSurfaceState
1184*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetTiledResourceModeSurfaceState()
1185*35ffd701SAndroid Build Coastguard Worker ///
1186*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to GmmResourceInfo class
1187*35ffd701SAndroid Build Coastguard Worker /// @return Tiled Resource Mode
1188*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetSurfaceStateTiledResourceMode(GMM_RESOURCE_INFO * pGmmResource)1189*35ffd701SAndroid Build Coastguard Worker uint32_t GMM_STDCALL GmmResGetSurfaceStateTiledResourceMode(GMM_RESOURCE_INFO *pGmmResource)
1190*35ffd701SAndroid Build Coastguard Worker {
1191*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, 0);
1192*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetTiledResourceModeSurfaceState();
1193*35ffd701SAndroid Build Coastguard Worker }
1194*35ffd701SAndroid Build Coastguard Worker
1195*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
1196*35ffd701SAndroid Build Coastguard Worker /// Returns the surface offset for unified allocations. Truncates the offset to size
1197*35ffd701SAndroid Build Coastguard Worker /// of uint32_t.
1198*35ffd701SAndroid Build Coastguard Worker /// @see GmmResGetAuxSurfaceOffset64()
1199*35ffd701SAndroid Build Coastguard Worker ///
1200*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to GmmResourceInfo class
1201*35ffd701SAndroid Build Coastguard Worker /// @param[in] GmmAuxType: the type of aux the offset is needed for
1202*35ffd701SAndroid Build Coastguard Worker /// @return Surface Offset in bytes
1203*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetAuxSurfaceOffset(GMM_RESOURCE_INFO * pGmmResource,GMM_UNIFIED_AUX_TYPE GmmAuxType)1204*35ffd701SAndroid Build Coastguard Worker uint32_t GMM_STDCALL GmmResGetAuxSurfaceOffset(GMM_RESOURCE_INFO *pGmmResource, GMM_UNIFIED_AUX_TYPE GmmAuxType)
1205*35ffd701SAndroid Build Coastguard Worker {
1206*35ffd701SAndroid Build Coastguard Worker return GFX_ULONG_CAST(GmmResGetAuxSurfaceOffset64(pGmmResource, GmmAuxType));
1207*35ffd701SAndroid Build Coastguard Worker }
1208*35ffd701SAndroid Build Coastguard Worker
1209*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
1210*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::GetUnifiedAuxSurfaceOffset
1211*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetUnifiedAuxSurfaceOffset()
1212*35ffd701SAndroid Build Coastguard Worker ///
1213*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to GmmResourceInfo class
1214*35ffd701SAndroid Build Coastguard Worker /// @param[in] GmmAuxType: the type of aux the offset is needed for
1215*35ffd701SAndroid Build Coastguard Worker /// @return Surface Offset in bytes
1216*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetAuxSurfaceOffset64(GMM_RESOURCE_INFO * pGmmResource,GMM_UNIFIED_AUX_TYPE GmmAuxType)1217*35ffd701SAndroid Build Coastguard Worker GMM_GFX_SIZE_T GMM_STDCALL GmmResGetAuxSurfaceOffset64(GMM_RESOURCE_INFO *pGmmResource, GMM_UNIFIED_AUX_TYPE GmmAuxType)
1218*35ffd701SAndroid Build Coastguard Worker {
1219*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, 0);
1220*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetUnifiedAuxSurfaceOffset(GmmAuxType);
1221*35ffd701SAndroid Build Coastguard Worker }
1222*35ffd701SAndroid Build Coastguard Worker
1223*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
1224*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::GetSizeAuxSurface
1225*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetSizeAuxSurface()
1226*35ffd701SAndroid Build Coastguard Worker ///
1227*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to GmmResourceInfo class
1228*35ffd701SAndroid Build Coastguard Worker /// @param[in] GmmAuxType: the type of aux the size is needed for
1229*35ffd701SAndroid Build Coastguard Worker /// @return Surface size in bytes
1230*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetSizeAuxSurface(GMM_RESOURCE_INFO * pGmmResource,GMM_UNIFIED_AUX_TYPE GmmAuxType)1231*35ffd701SAndroid Build Coastguard Worker GMM_GFX_SIZE_T GMM_STDCALL GmmResGetSizeAuxSurface(GMM_RESOURCE_INFO *pGmmResource, GMM_UNIFIED_AUX_TYPE GmmAuxType)
1232*35ffd701SAndroid Build Coastguard Worker {
1233*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, 0);
1234*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetSizeAuxSurface(GmmAuxType);
1235*35ffd701SAndroid Build Coastguard Worker }
1236*35ffd701SAndroid Build Coastguard Worker
1237*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
1238*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::GetSetHardwareProtection
1239*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetSetHardwareProtection()
1240*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoWin::GetSetHardwareProtection()
1241*35ffd701SAndroid Build Coastguard Worker ///
1242*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to GmmResourceInfo class
1243*35ffd701SAndroid Build Coastguard Worker /// @param[in] GetIsEncrypted: Read encryption status
1244*35ffd701SAndroid Build Coastguard Worker /// @param[in] SetIsEncrypted: Write encryption status
1245*35ffd701SAndroid Build Coastguard Worker /// @return Whether surface is encrypted or not
1246*35ffd701SAndroid Build Coastguard Worker
1247*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetSetHardwareProtection(GMM_RESOURCE_INFO * pGmmResource,uint8_t GetIsEncrypted,uint8_t SetIsEncrypted)1248*35ffd701SAndroid Build Coastguard Worker uint8_t GMM_STDCALL GmmResGetSetHardwareProtection(GMM_RESOURCE_INFO *pGmmResource, uint8_t GetIsEncrypted, uint8_t SetIsEncrypted)
1249*35ffd701SAndroid Build Coastguard Worker {
1250*35ffd701SAndroid Build Coastguard Worker return pGmmResource ?
1251*35ffd701SAndroid Build Coastguard Worker pGmmResource->GetSetHardwareProtection(GetIsEncrypted, SetIsEncrypted) :
1252*35ffd701SAndroid Build Coastguard Worker 0;
1253*35ffd701SAndroid Build Coastguard Worker }
1254*35ffd701SAndroid Build Coastguard Worker
1255*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
1256*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::CpuBlt
1257*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::CpuBlt()
1258*35ffd701SAndroid Build Coastguard Worker ///
1259*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to GmmResourceInfo class
1260*35ffd701SAndroid Build Coastguard Worker /// @param[in] pBlt: Describes the blit operation. See ::GMM_RES_COPY_BLT for more info.
1261*35ffd701SAndroid Build Coastguard Worker /// @return 1 if succeeded, 0 otherwise
1262*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResCpuBlt(GMM_RESOURCE_INFO * pGmmResource,GMM_RES_COPY_BLT * pBlt)1263*35ffd701SAndroid Build Coastguard Worker uint8_t GMM_STDCALL GmmResCpuBlt(GMM_RESOURCE_INFO *pGmmResource, GMM_RES_COPY_BLT *pBlt)
1264*35ffd701SAndroid Build Coastguard Worker {
1265*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, 0);
1266*35ffd701SAndroid Build Coastguard Worker return pGmmResource->CpuBlt(pBlt);
1267*35ffd701SAndroid Build Coastguard Worker }
1268*35ffd701SAndroid Build Coastguard Worker
1269*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
1270*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::GetStdLayoutSize
1271*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetStdLayoutSize()
1272*35ffd701SAndroid Build Coastguard Worker ///
1273*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to GmmResourceInfo class
1274*35ffd701SAndroid Build Coastguard Worker /// @return Size in bytes of Standard Layout version of surface.
1275*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetStdLayoutSize(GMM_RESOURCE_INFO * pGmmResource)1276*35ffd701SAndroid Build Coastguard Worker GMM_GFX_SIZE_T GMM_STDCALL GmmResGetStdLayoutSize(GMM_RESOURCE_INFO *pGmmResource)
1277*35ffd701SAndroid Build Coastguard Worker {
1278*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERT(pGmmResource);
1279*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetStdLayoutSize();
1280*35ffd701SAndroid Build Coastguard Worker }
1281*35ffd701SAndroid Build Coastguard Worker
1282*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
1283*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::GetMappingSpanDesc
1284*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetMappingSpanDesc()
1285*35ffd701SAndroid Build Coastguard Worker ///
1286*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to GmmResourceInfo class
1287*35ffd701SAndroid Build Coastguard Worker /// @param[in] pMapping: Clients call the function with initially zero'd out GMM_GET_MAPPING.
1288*35ffd701SAndroid Build Coastguard Worker /// @return 1 if more span descriptors to report, 0 if all mapping is done
1289*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetMappingSpanDesc(GMM_RESOURCE_INFO * pGmmResource,GMM_GET_MAPPING * pMapping)1290*35ffd701SAndroid Build Coastguard Worker uint8_t GMM_STDCALL GmmResGetMappingSpanDesc(GMM_RESOURCE_INFO *pGmmResource, GMM_GET_MAPPING *pMapping)
1291*35ffd701SAndroid Build Coastguard Worker {
1292*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, 0);
1293*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetMappingSpanDesc(pMapping);
1294*35ffd701SAndroid Build Coastguard Worker }
1295*35ffd701SAndroid Build Coastguard Worker
1296*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
1297*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::IsColorSeparation
1298*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::IsColorSeparation()
1299*35ffd701SAndroid Build Coastguard Worker ///
1300*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to GmmResourceInfo class
1301*35ffd701SAndroid Build Coastguard Worker /// @return 1 if the resource is color separated target, 0 otherwise
1302*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResIsColorSeparation(GMM_RESOURCE_INFO * pGmmResource)1303*35ffd701SAndroid Build Coastguard Worker uint8_t GMM_STDCALL GmmResIsColorSeparation(GMM_RESOURCE_INFO *pGmmResource)
1304*35ffd701SAndroid Build Coastguard Worker {
1305*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, 0);
1306*35ffd701SAndroid Build Coastguard Worker return pGmmResource->IsColorSeparation();
1307*35ffd701SAndroid Build Coastguard Worker }
1308*35ffd701SAndroid Build Coastguard Worker
1309*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
1310*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::TranslateColorSeparationX
1311*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::TranslateColorSeparationX()
1312*35ffd701SAndroid Build Coastguard Worker ///
1313*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to GmmResourceInfo class
1314*35ffd701SAndroid Build Coastguard Worker /// @param[in] x: X coordinate
1315*35ffd701SAndroid Build Coastguard Worker /// @return Translated color separation target x coordinate
1316*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResTranslateColorSeparationX(GMM_RESOURCE_INFO * pGmmResource,uint32_t x)1317*35ffd701SAndroid Build Coastguard Worker uint32_t GMM_STDCALL GmmResTranslateColorSeparationX(GMM_RESOURCE_INFO *pGmmResource, uint32_t x)
1318*35ffd701SAndroid Build Coastguard Worker {
1319*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, false);
1320*35ffd701SAndroid Build Coastguard Worker return pGmmResource->TranslateColorSeparationX(x);
1321*35ffd701SAndroid Build Coastguard Worker }
1322*35ffd701SAndroid Build Coastguard Worker
1323*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
1324*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::GetColorSeparationArraySize
1325*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetColorSeparationArraySize()
1326*35ffd701SAndroid Build Coastguard Worker ///
1327*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to GmmResourceInfo class
1328*35ffd701SAndroid Build Coastguard Worker /// @return Array size of a color separated target resource
1329*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetColorSeparationArraySize(GMM_RESOURCE_INFO * pGmmResource)1330*35ffd701SAndroid Build Coastguard Worker uint32_t GMM_STDCALL GmmResGetColorSeparationArraySize(GMM_RESOURCE_INFO *pGmmResource)
1331*35ffd701SAndroid Build Coastguard Worker {
1332*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, 0);
1333*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetColorSeparationArraySize();
1334*35ffd701SAndroid Build Coastguard Worker }
1335*35ffd701SAndroid Build Coastguard Worker
1336*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
1337*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::GetColorSeparationPhysicalWidth
1338*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetColorSeparationPhysicalWidth()
1339*35ffd701SAndroid Build Coastguard Worker ///
1340*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to GmmResourceInfo class
1341*35ffd701SAndroid Build Coastguard Worker /// @return Physical width of a color separated target resource
1342*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetColorSeparationPhysicalWidth(GMM_RESOURCE_INFO * pGmmResource)1343*35ffd701SAndroid Build Coastguard Worker uint32_t GMM_STDCALL GmmResGetColorSeparationPhysicalWidth(GMM_RESOURCE_INFO *pGmmResource)
1344*35ffd701SAndroid Build Coastguard Worker {
1345*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, 0);
1346*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetColorSeparationPhysicalWidth();
1347*35ffd701SAndroid Build Coastguard Worker }
1348*35ffd701SAndroid Build Coastguard Worker
1349*35ffd701SAndroid Build Coastguard Worker //=============================================================================
1350*35ffd701SAndroid Build Coastguard Worker //
1351*35ffd701SAndroid Build Coastguard Worker // Function: GmmResGetMaxGpuVirtualAddressBits
1352*35ffd701SAndroid Build Coastguard Worker //
1353*35ffd701SAndroid Build Coastguard Worker // Desc: This function returns max no of GpuVA bits supported per surface on current platform
1354*35ffd701SAndroid Build Coastguard Worker //
1355*35ffd701SAndroid Build Coastguard Worker // Parameters:
1356*35ffd701SAndroid Build Coastguard Worker // GMM_RESOURCE_INFO *pGmmResource (Don't care)
1357*35ffd701SAndroid Build Coastguard Worker // Function will return the current Gen MaxGpuVirtualAddressBitsPerResource
1358*35ffd701SAndroid Build Coastguard Worker //
1359*35ffd701SAndroid Build Coastguard Worker // Returns:
1360*35ffd701SAndroid Build Coastguard Worker // uint32_t - Max no of GpuVA bits
1361*35ffd701SAndroid Build Coastguard Worker //-----------------------------------------------------------------------------
GmmResGetMaxGpuVirtualAddressBits(GMM_RESOURCE_INFO * pGmmResource,GMM_LIB_CONTEXT * pGmmLibContext)1362*35ffd701SAndroid Build Coastguard Worker uint32_t GMM_STDCALL GmmResGetMaxGpuVirtualAddressBits(GMM_RESOURCE_INFO *pGmmResource, GMM_LIB_CONTEXT *pGmmLibContext)
1363*35ffd701SAndroid Build Coastguard Worker {
1364*35ffd701SAndroid Build Coastguard Worker if(pGmmResource == NULL)
1365*35ffd701SAndroid Build Coastguard Worker {
1366*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmLibContext, 0);
1367*35ffd701SAndroid Build Coastguard Worker const GMM_PLATFORM_INFO &PlatformInfo = pGmmLibContext->GetPlatformInfo();
1368*35ffd701SAndroid Build Coastguard Worker return PlatformInfo.MaxGpuVirtualAddressBitsPerResource;
1369*35ffd701SAndroid Build Coastguard Worker }
1370*35ffd701SAndroid Build Coastguard Worker
1371*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetMaxGpuVirtualAddressBits();
1372*35ffd701SAndroid Build Coastguard Worker }
1373*35ffd701SAndroid Build Coastguard Worker
1374*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
1375*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::IsSurfaceFaultable
1376*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::IsSurfaceFaultable()
1377*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoWin::IsSurfaceFaultable()
1378*35ffd701SAndroid Build Coastguard Worker ///
1379*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to GmmResourceInfo class
1380*35ffd701SAndroid Build Coastguard Worker /// @return 1 is surface can be faulted on
1381*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmIsSurfaceFaultable(GMM_RESOURCE_INFO * pGmmResource)1382*35ffd701SAndroid Build Coastguard Worker uint8_t GMM_STDCALL GmmIsSurfaceFaultable(GMM_RESOURCE_INFO *pGmmResource)
1383*35ffd701SAndroid Build Coastguard Worker {
1384*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERTPTR(pGmmResource, 0);
1385*35ffd701SAndroid Build Coastguard Worker return pGmmResource->IsSurfaceFaultable();
1386*35ffd701SAndroid Build Coastguard Worker }
1387*35ffd701SAndroid Build Coastguard Worker
1388*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
1389*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::GetResFlags
1390*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetResFlags()
1391*35ffd701SAndroid Build Coastguard Worker ///
1392*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to GmmResourceInfo class
1393*35ffd701SAndroid Build Coastguard Worker /// @return Copy of ::GMM_RESOURCE_FLAGS
1394*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetResourceFlags(const GMM_RESOURCE_INFO * pGmmResource)1395*35ffd701SAndroid Build Coastguard Worker GMM_RESOURCE_FLAG GMM_STDCALL GmmResGetResourceFlags(const GMM_RESOURCE_INFO *pGmmResource)
1396*35ffd701SAndroid Build Coastguard Worker {
1397*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERT(pGmmResource);
1398*35ffd701SAndroid Build Coastguard Worker return const_cast<GMM_RESOURCE_INFO *>(pGmmResource)->GetResFlags();
1399*35ffd701SAndroid Build Coastguard Worker }
1400*35ffd701SAndroid Build Coastguard Worker
1401*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
1402*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::GetMaximumRenamingListLength
1403*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetMaximumRenamingListLength()
1404*35ffd701SAndroid Build Coastguard Worker ///
1405*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to GmmResourceInfo class
1406*35ffd701SAndroid Build Coastguard Worker /// @return maximum remaining list length
1407*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetMaximumRenamingListLength(GMM_RESOURCE_INFO * pGmmResource)1408*35ffd701SAndroid Build Coastguard Worker uint32_t GMM_STDCALL GmmResGetMaximumRenamingListLength(GMM_RESOURCE_INFO *pGmmResource)
1409*35ffd701SAndroid Build Coastguard Worker {
1410*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERT(pGmmResource);
1411*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetMaximumRenamingListLength();
1412*35ffd701SAndroid Build Coastguard Worker }
1413*35ffd701SAndroid Build Coastguard Worker
1414*35ffd701SAndroid Build Coastguard Worker //=============================================================================
1415*35ffd701SAndroid Build Coastguard Worker //
1416*35ffd701SAndroid Build Coastguard Worker // Function: GmmGetLogicalTileShape
1417*35ffd701SAndroid Build Coastguard Worker //
1418*35ffd701SAndroid Build Coastguard Worker // Desc: This function returns the logical tile shape
1419*35ffd701SAndroid Build Coastguard Worker //
1420*35ffd701SAndroid Build Coastguard Worker // Parameters:
1421*35ffd701SAndroid Build Coastguard Worker // See Function arguments
1422*35ffd701SAndroid Build Coastguard Worker //
1423*35ffd701SAndroid Build Coastguard Worker // Returns:
1424*35ffd701SAndroid Build Coastguard Worker // GMM_STATUS
1425*35ffd701SAndroid Build Coastguard Worker //-----------------------------------------------------------------------------
GmmGetLogicalTileShape(uint32_t TileMode,uint32_t * pWidthInBytes,uint32_t * pHeight,uint32_t * pDepth,GMM_LIB_CONTEXT * pGmmLibContext)1426*35ffd701SAndroid Build Coastguard Worker GMM_STATUS GMM_STDCALL GmmGetLogicalTileShape(uint32_t TileMode,
1427*35ffd701SAndroid Build Coastguard Worker uint32_t *pWidthInBytes,
1428*35ffd701SAndroid Build Coastguard Worker uint32_t *pHeight,
1429*35ffd701SAndroid Build Coastguard Worker uint32_t *pDepth,
1430*35ffd701SAndroid Build Coastguard Worker GMM_LIB_CONTEXT *pGmmLibContext)
1431*35ffd701SAndroid Build Coastguard Worker {
1432*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERT(TileMode < GMM_TILE_MODES);
1433*35ffd701SAndroid Build Coastguard Worker
1434*35ffd701SAndroid Build Coastguard Worker if(pWidthInBytes)
1435*35ffd701SAndroid Build Coastguard Worker {
1436*35ffd701SAndroid Build Coastguard Worker *pWidthInBytes = pGmmLibContext->GetPlatformInfo().TileInfo[TileMode].LogicalTileWidth;
1437*35ffd701SAndroid Build Coastguard Worker }
1438*35ffd701SAndroid Build Coastguard Worker
1439*35ffd701SAndroid Build Coastguard Worker if(pHeight)
1440*35ffd701SAndroid Build Coastguard Worker {
1441*35ffd701SAndroid Build Coastguard Worker *pHeight = pGmmLibContext->GetPlatformInfo().TileInfo[TileMode].LogicalTileHeight;
1442*35ffd701SAndroid Build Coastguard Worker }
1443*35ffd701SAndroid Build Coastguard Worker
1444*35ffd701SAndroid Build Coastguard Worker if(pDepth)
1445*35ffd701SAndroid Build Coastguard Worker {
1446*35ffd701SAndroid Build Coastguard Worker *pDepth = pGmmLibContext->GetPlatformInfo().TileInfo[TileMode].LogicalTileDepth;
1447*35ffd701SAndroid Build Coastguard Worker }
1448*35ffd701SAndroid Build Coastguard Worker
1449*35ffd701SAndroid Build Coastguard Worker return GMM_SUCCESS;
1450*35ffd701SAndroid Build Coastguard Worker }
1451*35ffd701SAndroid Build Coastguard Worker
1452*35ffd701SAndroid Build Coastguard Worker
1453*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
1454*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::OverrideSize
1455*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::OverrideSize()
1456*35ffd701SAndroid Build Coastguard Worker ///
1457*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to GmmResourceInfo class
1458*35ffd701SAndroid Build Coastguard Worker /// @param[in] Size: new size of the resource
1459*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResOverrideAllocationSize(GMM_RESOURCE_INFO * pGmmResource,GMM_GFX_SIZE_T Size)1460*35ffd701SAndroid Build Coastguard Worker void GMM_STDCALL GmmResOverrideAllocationSize(GMM_RESOURCE_INFO *pGmmResource, GMM_GFX_SIZE_T Size)
1461*35ffd701SAndroid Build Coastguard Worker {
1462*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERT(pGmmResource);
1463*35ffd701SAndroid Build Coastguard Worker pGmmResource->OverrideSize(Size);
1464*35ffd701SAndroid Build Coastguard Worker }
1465*35ffd701SAndroid Build Coastguard Worker
1466*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
1467*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::OverridePitch
1468*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::OverridePitch()
1469*35ffd701SAndroid Build Coastguard Worker ///
1470*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to GmmResourceInfo class
1471*35ffd701SAndroid Build Coastguard Worker /// @param[in] Pitch: new pitch of the resource
1472*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResOverrideAllocationPitch(GMM_RESOURCE_INFO * pGmmResource,GMM_GFX_SIZE_T Pitch)1473*35ffd701SAndroid Build Coastguard Worker void GMM_STDCALL GmmResOverrideAllocationPitch(GMM_RESOURCE_INFO *pGmmResource, GMM_GFX_SIZE_T Pitch)
1474*35ffd701SAndroid Build Coastguard Worker {
1475*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERT(pGmmResource);
1476*35ffd701SAndroid Build Coastguard Worker pGmmResource->OverridePitch(Pitch);
1477*35ffd701SAndroid Build Coastguard Worker }
1478*35ffd701SAndroid Build Coastguard Worker
1479*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
1480*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::OverrideUnifiedAuxPitch
1481*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::OverrideUnifiedAuxPitch()
1482*35ffd701SAndroid Build Coastguard Worker ///
1483*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to GmmResourceInfo class
1484*35ffd701SAndroid Build Coastguard Worker /// @param[in] Pitch: new pitch of the resource
1485*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResOverrideAuxAllocationPitch(GMM_RESOURCE_INFO * pGmmResource,GMM_GFX_SIZE_T Pitch)1486*35ffd701SAndroid Build Coastguard Worker void GMM_STDCALL GmmResOverrideAuxAllocationPitch(GMM_RESOURCE_INFO *pGmmResource, GMM_GFX_SIZE_T Pitch)
1487*35ffd701SAndroid Build Coastguard Worker {
1488*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERT(pGmmResource);
1489*35ffd701SAndroid Build Coastguard Worker pGmmResource->OverrideUnifiedAuxPitch(Pitch);
1490*35ffd701SAndroid Build Coastguard Worker }
1491*35ffd701SAndroid Build Coastguard Worker
1492*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
1493*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::OverrideUnifiedAuxPitch
1494*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::OverrideUnifiedAuxPitch()
1495*35ffd701SAndroid Build Coastguard Worker ///
1496*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to GmmResourceInfo class
1497*35ffd701SAndroid Build Coastguard Worker /// @param[in] Pitch: new pitch of the resource
1498*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResOverrideAllocationFlags(GMM_RESOURCE_INFO * pGmmResource,GMM_RESOURCE_FLAG * pFlags)1499*35ffd701SAndroid Build Coastguard Worker void GMM_STDCALL GmmResOverrideAllocationFlags(GMM_RESOURCE_INFO *pGmmResource, GMM_RESOURCE_FLAG *pFlags)
1500*35ffd701SAndroid Build Coastguard Worker {
1501*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERT(pGmmResource);
1502*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERT(pFlags);
1503*35ffd701SAndroid Build Coastguard Worker pGmmResource->OverrideAllocationFlags(*pFlags);
1504*35ffd701SAndroid Build Coastguard Worker }
1505*35ffd701SAndroid Build Coastguard Worker
1506*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
1507*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::OverrideHAlign
1508*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::OverrideHAlign()
1509*35ffd701SAndroid Build Coastguard Worker ///
1510*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to GmmResourceInfo class
1511*35ffd701SAndroid Build Coastguard Worker /// @param[in] Pitch: new pitch of the resource
1512*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResOverrideAllocationHAlign(GMM_RESOURCE_INFO * pGmmResource,uint32_t HAlign)1513*35ffd701SAndroid Build Coastguard Worker void GMM_STDCALL GmmResOverrideAllocationHAlign(GMM_RESOURCE_INFO *pGmmResource, uint32_t HAlign)
1514*35ffd701SAndroid Build Coastguard Worker {
1515*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERT(pGmmResource);
1516*35ffd701SAndroid Build Coastguard Worker pGmmResource->OverrideHAlign(HAlign);
1517*35ffd701SAndroid Build Coastguard Worker }
1518*35ffd701SAndroid Build Coastguard Worker
1519*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
1520*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::OverrideBaseAlignment
1521*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::OverrideBaseAlignment()
1522*35ffd701SAndroid Build Coastguard Worker ///
1523*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to GmmResourceInfo class
1524*35ffd701SAndroid Build Coastguard Worker /// @param[in] Alignment: new BaseAlignment of the resource
1525*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResOverrideAllocationBaseAlignment(GMM_RESOURCE_INFO * pGmmResource,uint32_t Alignment)1526*35ffd701SAndroid Build Coastguard Worker void GMM_STDCALL GmmResOverrideAllocationBaseAlignment(GMM_RESOURCE_INFO *pGmmResource, uint32_t Alignment)
1527*35ffd701SAndroid Build Coastguard Worker {
1528*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERT(pGmmResource);
1529*35ffd701SAndroid Build Coastguard Worker pGmmResource->OverrideBaseAlignment(Alignment);
1530*35ffd701SAndroid Build Coastguard Worker }
1531*35ffd701SAndroid Build Coastguard Worker
1532*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
1533*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::OverrideBaseWidth
1534*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::OverrideBaseWidth()
1535*35ffd701SAndroid Build Coastguard Worker ///
1536*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to GmmResourceInfo class
1537*35ffd701SAndroid Build Coastguard Worker /// @param[in] BaseWidth: new BaseWidth of the resource
1538*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResOverrideAllocationBaseWidth(GMM_RESOURCE_INFO * pGmmResource,GMM_GFX_SIZE_T BaseWidth)1539*35ffd701SAndroid Build Coastguard Worker void GMM_STDCALL GmmResOverrideAllocationBaseWidth(GMM_RESOURCE_INFO *pGmmResource, GMM_GFX_SIZE_T BaseWidth)
1540*35ffd701SAndroid Build Coastguard Worker {
1541*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERT(pGmmResource);
1542*35ffd701SAndroid Build Coastguard Worker pGmmResource->OverrideBaseWidth(BaseWidth);
1543*35ffd701SAndroid Build Coastguard Worker }
1544*35ffd701SAndroid Build Coastguard Worker
1545*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
1546*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::OverrideBaseHeight
1547*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::OverrideBaseHeight()
1548*35ffd701SAndroid Build Coastguard Worker ///
1549*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to GmmResourceInfo class
1550*35ffd701SAndroid Build Coastguard Worker /// @param[in] BaseHeight: new BaseWidth of the resource
1551*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResOverrideAllocationBaseHeight(GMM_RESOURCE_INFO * pGmmResource,uint32_t BaseHeight)1552*35ffd701SAndroid Build Coastguard Worker void GMM_STDCALL GmmResOverrideAllocationBaseHeight(GMM_RESOURCE_INFO *pGmmResource, uint32_t BaseHeight)
1553*35ffd701SAndroid Build Coastguard Worker {
1554*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERT(pGmmResource);
1555*35ffd701SAndroid Build Coastguard Worker pGmmResource->OverrideBaseHeight(BaseHeight);
1556*35ffd701SAndroid Build Coastguard Worker }
1557*35ffd701SAndroid Build Coastguard Worker
1558*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
1559*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::OverrideDepth
1560*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::OverrideDepth()
1561*35ffd701SAndroid Build Coastguard Worker ///
1562*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to GmmResourceInfo class
1563*35ffd701SAndroid Build Coastguard Worker /// @param[in] Depth: new Depth of the resource
1564*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResOverrideAllocationDepth(GMM_RESOURCE_INFO * pGmmResource,uint32_t Depth)1565*35ffd701SAndroid Build Coastguard Worker void GMM_STDCALL GmmResOverrideAllocationDepth(GMM_RESOURCE_INFO *pGmmResource, uint32_t Depth)
1566*35ffd701SAndroid Build Coastguard Worker {
1567*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERT(pGmmResource);
1568*35ffd701SAndroid Build Coastguard Worker pGmmResource->OverrideDepth(Depth);
1569*35ffd701SAndroid Build Coastguard Worker }
1570*35ffd701SAndroid Build Coastguard Worker
1571*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
1572*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::OverrideTileMode
1573*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::OverrideTileMode()
1574*35ffd701SAndroid Build Coastguard Worker ///
1575*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to GmmResourceInfo class
1576*35ffd701SAndroid Build Coastguard Worker /// @param[in] TileMode: new tile mode of the resource
1577*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResOverrideResourceTiling(GMM_RESOURCE_INFO * pGmmResource,uint32_t TileMode)1578*35ffd701SAndroid Build Coastguard Worker void GMM_STDCALL GmmResOverrideResourceTiling(GMM_RESOURCE_INFO *pGmmResource, uint32_t TileMode)
1579*35ffd701SAndroid Build Coastguard Worker {
1580*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERT(pGmmResource);
1581*35ffd701SAndroid Build Coastguard Worker pGmmResource->OverrideTileMode(static_cast<GMM_TILE_MODE>(TileMode));
1582*35ffd701SAndroid Build Coastguard Worker }
1583*35ffd701SAndroid Build Coastguard Worker
1584*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
1585*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::OverrideUnifiedAuxTileMode
1586*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::OverrideUnifiedAuxTileMode()
1587*35ffd701SAndroid Build Coastguard Worker ///
1588*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to GmmResourceInfo class
1589*35ffd701SAndroid Build Coastguard Worker /// @param[in] TileMode: new tile mode of the unified auxresource
1590*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResOverrideAuxResourceTiling(GMM_RESOURCE_INFO * pGmmResource,uint32_t TileMode)1591*35ffd701SAndroid Build Coastguard Worker void GMM_STDCALL GmmResOverrideAuxResourceTiling(GMM_RESOURCE_INFO *pGmmResource, uint32_t TileMode)
1592*35ffd701SAndroid Build Coastguard Worker {
1593*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERT(pGmmResource);
1594*35ffd701SAndroid Build Coastguard Worker pGmmResource->OverrideUnifiedAuxTileMode(static_cast<GMM_TILE_MODE>(TileMode));
1595*35ffd701SAndroid Build Coastguard Worker }
1596*35ffd701SAndroid Build Coastguard Worker
1597*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
1598*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::OverrideSurfaceFormat
1599*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::OverrideSurfaceFormat()
1600*35ffd701SAndroid Build Coastguard Worker ///
1601*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to GmmResourceInfo class
1602*35ffd701SAndroid Build Coastguard Worker /// @param[in] Format: new format for the resource
1603*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResOverrideAllocationFormat(GMM_RESOURCE_INFO * pGmmResource,GMM_RESOURCE_FORMAT Format)1604*35ffd701SAndroid Build Coastguard Worker void GMM_STDCALL GmmResOverrideAllocationFormat(GMM_RESOURCE_INFO *pGmmResource, GMM_RESOURCE_FORMAT Format)
1605*35ffd701SAndroid Build Coastguard Worker {
1606*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERT(pGmmResource);
1607*35ffd701SAndroid Build Coastguard Worker pGmmResource->OverrideSurfaceFormat(Format);
1608*35ffd701SAndroid Build Coastguard Worker }
1609*35ffd701SAndroid Build Coastguard Worker
1610*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
1611*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::OverrideSurfaceType
1612*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::OverrideSurfaceType()
1613*35ffd701SAndroid Build Coastguard Worker ///
1614*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to GmmResourceInfo class
1615*35ffd701SAndroid Build Coastguard Worker /// @param[in] ResourceType: new type for the resource
1616*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResOverrideSurfaceType(GMM_RESOURCE_INFO * pGmmResource,GMM_RESOURCE_TYPE ResourceType)1617*35ffd701SAndroid Build Coastguard Worker void GMM_STDCALL GmmResOverrideSurfaceType(GMM_RESOURCE_INFO *pGmmResource, GMM_RESOURCE_TYPE ResourceType)
1618*35ffd701SAndroid Build Coastguard Worker {
1619*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERT(pGmmResource);
1620*35ffd701SAndroid Build Coastguard Worker pGmmResource->OverrideSurfaceType(ResourceType);
1621*35ffd701SAndroid Build Coastguard Worker }
1622*35ffd701SAndroid Build Coastguard Worker
1623*35ffd701SAndroid Build Coastguard Worker
1624*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
1625*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::GmmResOverrideSvmGfxAddress
1626*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GmmResOverrideSvmGfxAddress()
1627*35ffd701SAndroid Build Coastguard Worker ///
1628*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to GmmResourceInfo class
1629*35ffd701SAndroid Build Coastguard Worker /// @param[in] SvmGfxAddress: new svm gfx address for the resource
1630*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResOverrideSvmGfxAddress(GMM_RESOURCE_INFO * pGmmResource,GMM_GFX_ADDRESS SvmGfxAddress)1631*35ffd701SAndroid Build Coastguard Worker void GMM_STDCALL GmmResOverrideSvmGfxAddress(GMM_RESOURCE_INFO *pGmmResource, GMM_GFX_ADDRESS SvmGfxAddress)
1632*35ffd701SAndroid Build Coastguard Worker {
1633*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERT(pGmmResource);
1634*35ffd701SAndroid Build Coastguard Worker pGmmResource->OverrideSvmGfxAddress(SvmGfxAddress);
1635*35ffd701SAndroid Build Coastguard Worker }
1636*35ffd701SAndroid Build Coastguard Worker
1637*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
1638*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::OverrideArraySize
1639*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::OverrideArraySize()
1640*35ffd701SAndroid Build Coastguard Worker ///
1641*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to GmmResourceInfo class
1642*35ffd701SAndroid Build Coastguard Worker /// @param[in] ArraySize: new array size for the resource
1643*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResOverrideAllocationArraySize(GMM_RESOURCE_INFO * pGmmResource,uint32_t ArraySize)1644*35ffd701SAndroid Build Coastguard Worker void GMM_STDCALL GmmResOverrideAllocationArraySize(GMM_RESOURCE_INFO *pGmmResource, uint32_t ArraySize)
1645*35ffd701SAndroid Build Coastguard Worker {
1646*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERT(pGmmResource);
1647*35ffd701SAndroid Build Coastguard Worker pGmmResource->OverrideArraySize(ArraySize);
1648*35ffd701SAndroid Build Coastguard Worker }
1649*35ffd701SAndroid Build Coastguard Worker
1650*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
1651*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::OverrideArraySize
1652*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::OverrideArraySize()
1653*35ffd701SAndroid Build Coastguard Worker ///
1654*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to GmmResourceInfo class
1655*35ffd701SAndroid Build Coastguard Worker /// @param[in] MaxLod: new max LOD for the resource
1656*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResOverrideAllocationMaxLod(GMM_RESOURCE_INFO * pGmmResource,uint32_t MaxLod)1657*35ffd701SAndroid Build Coastguard Worker void GMM_STDCALL GmmResOverrideAllocationMaxLod(GMM_RESOURCE_INFO *pGmmResource, uint32_t MaxLod)
1658*35ffd701SAndroid Build Coastguard Worker {
1659*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERT(pGmmResource);
1660*35ffd701SAndroid Build Coastguard Worker pGmmResource->OverrideMaxLod(MaxLod);
1661*35ffd701SAndroid Build Coastguard Worker }
1662*35ffd701SAndroid Build Coastguard Worker
1663*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
1664*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::GetPlanarXOffset
1665*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetPlanarXOffset()
1666*35ffd701SAndroid Build Coastguard Worker ///
1667*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to GmmResourceInfo class
1668*35ffd701SAndroid Build Coastguard Worker /// @param[in] Plane: Plane for which the offset is needed
1669*35ffd701SAndroid Build Coastguard Worker /// @return X offset
1670*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetPlanarGetXOffset(GMM_RESOURCE_INFO * pGmmResource,GMM_YUV_PLANE Plane)1671*35ffd701SAndroid Build Coastguard Worker GMM_GFX_SIZE_T GMM_STDCALL GmmResGetPlanarGetXOffset(GMM_RESOURCE_INFO *pGmmResource, GMM_YUV_PLANE Plane)
1672*35ffd701SAndroid Build Coastguard Worker {
1673*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERT(pGmmResource);
1674*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetPlanarXOffset(Plane);
1675*35ffd701SAndroid Build Coastguard Worker }
1676*35ffd701SAndroid Build Coastguard Worker
1677*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
1678*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::GetPlanarYOffset
1679*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetPlanarYOffset()
1680*35ffd701SAndroid Build Coastguard Worker ///
1681*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to GmmResourceInfo class
1682*35ffd701SAndroid Build Coastguard Worker /// @param[in] Plane: Plane for which the offset is needed
1683*35ffd701SAndroid Build Coastguard Worker /// @return Y offset
1684*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetPlanarGetYOffset(GMM_RESOURCE_INFO * pGmmResource,GMM_YUV_PLANE Plane)1685*35ffd701SAndroid Build Coastguard Worker GMM_GFX_SIZE_T GMM_STDCALL GmmResGetPlanarGetYOffset(GMM_RESOURCE_INFO *pGmmResource, GMM_YUV_PLANE Plane)
1686*35ffd701SAndroid Build Coastguard Worker {
1687*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERT(pGmmResource);
1688*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetPlanarYOffset(Plane);
1689*35ffd701SAndroid Build Coastguard Worker }
1690*35ffd701SAndroid Build Coastguard Worker
1691*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
1692*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::GetPlanarAuxOffset
1693*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::GetPlanarAuxOffset()
1694*35ffd701SAndroid Build Coastguard Worker ///
1695*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to GmmResourceInfo class
1696*35ffd701SAndroid Build Coastguard Worker /// @param[in] Plane: Plane for which the offset is needed
1697*35ffd701SAndroid Build Coastguard Worker /// @return Y offset
1698*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResGetPlanarAuxOffset(GMM_RESOURCE_INFO * pGmmResource,uint32_t ArrayIndex,GMM_UNIFIED_AUX_TYPE AuxType)1699*35ffd701SAndroid Build Coastguard Worker GMM_GFX_SIZE_T GMM_STDCALL GmmResGetPlanarAuxOffset(GMM_RESOURCE_INFO *pGmmResource, uint32_t ArrayIndex, GMM_UNIFIED_AUX_TYPE AuxType)
1700*35ffd701SAndroid Build Coastguard Worker {
1701*35ffd701SAndroid Build Coastguard Worker __GMM_ASSERT(pGmmResource);
1702*35ffd701SAndroid Build Coastguard Worker return pGmmResource->GetPlanarAuxOffset(ArrayIndex, AuxType);
1703*35ffd701SAndroid Build Coastguard Worker }
1704*35ffd701SAndroid Build Coastguard Worker
1705*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
1706*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::SetGmmLibContext
1707*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::SetGmmLibContext()
1708*35ffd701SAndroid Build Coastguard Worker ///
1709*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to GmmResourceInfo class
1710*35ffd701SAndroid Build Coastguard Worker /// @param[in] pLibContext: Pointer to GmmLibContext
1711*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResSetLibContext(GMM_RESOURCE_INFO * pGmmResource,void * pLibContext)1712*35ffd701SAndroid Build Coastguard Worker void GMM_STDCALL GmmResSetLibContext(GMM_RESOURCE_INFO *pGmmResource, void *pLibContext)
1713*35ffd701SAndroid Build Coastguard Worker {
1714*35ffd701SAndroid Build Coastguard Worker if(pGmmResource)
1715*35ffd701SAndroid Build Coastguard Worker {
1716*35ffd701SAndroid Build Coastguard Worker pGmmResource->SetGmmLibContext(pLibContext);
1717*35ffd701SAndroid Build Coastguard Worker }
1718*35ffd701SAndroid Build Coastguard Worker }
1719*35ffd701SAndroid Build Coastguard Worker
1720*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
1721*35ffd701SAndroid Build Coastguard Worker /// C wrapper for GmmResourceInfoCommon::IsResourceMappedCompressible
1722*35ffd701SAndroid Build Coastguard Worker /// @see GmmLib::GmmResourceInfoCommon::IsResourceMappedCompressible()
1723*35ffd701SAndroid Build Coastguard Worker ///
1724*35ffd701SAndroid Build Coastguard Worker /// @param[in] pGmmResource: Pointer to GmmResourceInfo class
1725*35ffd701SAndroid Build Coastguard Worker /////////////////////////////////////////////////////////////////////////////////////
GmmResIsMappedCompressible(GMM_RESOURCE_INFO * pGmmResource)1726*35ffd701SAndroid Build Coastguard Worker uint32_t GMM_STDCALL GmmResIsMappedCompressible(GMM_RESOURCE_INFO *pGmmResource)
1727*35ffd701SAndroid Build Coastguard Worker {
1728*35ffd701SAndroid Build Coastguard Worker return pGmmResource->IsResourceMappedCompressible();
1729*35ffd701SAndroid Build Coastguard Worker }
1730*35ffd701SAndroid Build Coastguard Worker
1731*35ffd701SAndroid Build Coastguard Worker //=============================================================================
1732*35ffd701SAndroid Build Coastguard Worker //
1733*35ffd701SAndroid Build Coastguard Worker // Function: __CanSupportStdTiling
1734*35ffd701SAndroid Build Coastguard Worker //
1735*35ffd701SAndroid Build Coastguard Worker // Desc: Verifies texture parameters can support StdTiling
1736*35ffd701SAndroid Build Coastguard Worker //
1737*35ffd701SAndroid Build Coastguard Worker // Parameters:
1738*35ffd701SAndroid Build Coastguard Worker // GMM_TEXTURE_INFO& Surf
1739*35ffd701SAndroid Build Coastguard Worker //
1740*35ffd701SAndroid Build Coastguard Worker // Returns:
1741*35ffd701SAndroid Build Coastguard Worker //
1742*35ffd701SAndroid Build Coastguard Worker //-----------------------------------------------------------------------------
__CanSupportStdTiling(GMM_TEXTURE_INFO Surf,GMM_LIB_CONTEXT * pGmmLibContext)1743*35ffd701SAndroid Build Coastguard Worker uint8_t __CanSupportStdTiling(GMM_TEXTURE_INFO Surf, GMM_LIB_CONTEXT *pGmmLibContext)
1744*35ffd701SAndroid Build Coastguard Worker {
1745*35ffd701SAndroid Build Coastguard Worker const __GMM_PLATFORM_RESOURCE *pPlatformResource = GMM_OVERRIDE_PLATFORM_INFO(&Surf, pGmmLibContext);
1746*35ffd701SAndroid Build Coastguard Worker
1747*35ffd701SAndroid Build Coastguard Worker // SKL+ Tiled Resource Mode Restrictions
1748*35ffd701SAndroid Build Coastguard Worker if((Surf.Flags.Info.TiledYf || Surf.Flags.Info.TiledYs) &&
1749*35ffd701SAndroid Build Coastguard Worker !((GFX_GET_CURRENT_RENDERCORE(pPlatformResource->Platform) >= IGFX_GEN9_CORE) &&
1750*35ffd701SAndroid Build Coastguard Worker // TiledY must be set unless 1D surface.
1751*35ffd701SAndroid Build Coastguard Worker ((Surf.Flags.Info.TiledY && (Surf.Type != RESOURCE_1D)) ||
1752*35ffd701SAndroid Build Coastguard Worker (Surf.Flags.Info.Linear && (Surf.Type == RESOURCE_1D ||
1753*35ffd701SAndroid Build Coastguard Worker Surf.Type == RESOURCE_BUFFER))) &&
1754*35ffd701SAndroid Build Coastguard Worker // 8, 16, 32, 64, or 128 bpp
1755*35ffd701SAndroid Build Coastguard Worker ((!GmmIsCompressed(pGmmLibContext, Surf.Format) &&
1756*35ffd701SAndroid Build Coastguard Worker ((Surf.BitsPerPixel == 8) ||
1757*35ffd701SAndroid Build Coastguard Worker (Surf.BitsPerPixel == 16) ||
1758*35ffd701SAndroid Build Coastguard Worker (Surf.BitsPerPixel == 32) ||
1759*35ffd701SAndroid Build Coastguard Worker (Surf.BitsPerPixel == 64) ||
1760*35ffd701SAndroid Build Coastguard Worker (Surf.BitsPerPixel == 128))) ||
1761*35ffd701SAndroid Build Coastguard Worker // Compressed Modes: BC*, ETC*, EAC*, ASTC*
1762*35ffd701SAndroid Build Coastguard Worker (GmmIsCompressed(pGmmLibContext, Surf.Format) && (Surf.Format != GMM_FORMAT_FXT1)))))
1763*35ffd701SAndroid Build Coastguard Worker /* Not currently supported...
1764*35ffd701SAndroid Build Coastguard Worker // YCRCB* Formats
1765*35ffd701SAndroid Build Coastguard Worker GmmIsYUVPacked(Surf.Format) */
1766*35ffd701SAndroid Build Coastguard Worker {
1767*35ffd701SAndroid Build Coastguard Worker return 0;
1768*35ffd701SAndroid Build Coastguard Worker }
1769*35ffd701SAndroid Build Coastguard Worker
1770*35ffd701SAndroid Build Coastguard Worker return 1;
1771*35ffd701SAndroid Build Coastguard Worker }
1772