03351abe23dbaafc8523fbdc9536c76fe37f5a99
[firefly-linux-kernel-4.4.55.git] / drivers / gpu / rogue / generated / rgxta3d_bridge / common_rgxta3d_bridge.h
1 /*************************************************************************/ /*!
2 @File
3 @Title          Common bridge header for rgxta3d
4 @Copyright      Copyright (c) Imagination Technologies Ltd. All Rights Reserved
5 @Description    Declares common defines and structures that are used by both
6                 the client and sever side of the bridge for rgxta3d
7 @License        Dual MIT/GPLv2
8
9 The contents of this file are subject to the MIT license as set out below.
10
11 Permission is hereby granted, free of charge, to any person obtaining a copy
12 of this software and associated documentation files (the "Software"), to deal
13 in the Software without restriction, including without limitation the rights
14 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
15 copies of the Software, and to permit persons to whom the Software is
16 furnished to do so, subject to the following conditions:
17
18 The above copyright notice and this permission notice shall be included in
19 all copies or substantial portions of the Software.
20
21 Alternatively, the contents of this file may be used under the terms of
22 the GNU General Public License Version 2 ("GPL") in which case the provisions
23 of GPL are applicable instead of those above.
24
25 If you wish to allow use of your version of this file only under the terms of
26 GPL, and not to allow others to use your version of this file under the terms
27 of the MIT license, indicate your decision by deleting the provisions above
28 and replace them with the notice and other provisions required by GPL as set
29 out in the file called "GPL-COPYING" included in this distribution. If you do
30 not delete the provisions above, a recipient may use your version of this file
31 under the terms of either the MIT license or GPL.
32
33 This License is also included in this distribution in the file called
34 "MIT-COPYING".
35
36 EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
37 PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
38 BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
39 PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
40 COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
41 IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
42 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
43 */ /**************************************************************************/
44
45 #ifndef COMMON_RGXTA3D_BRIDGE_H
46 #define COMMON_RGXTA3D_BRIDGE_H
47
48 #include "rgx_bridge.h"
49 #include "sync_external.h"
50 #include "rgx_fwif_shared.h"
51
52
53 #include "pvr_bridge_io.h"
54
55 #define PVRSRV_BRIDGE_RGXTA3D_CMD_FIRST                 (PVRSRV_BRIDGE_RGXTA3D_START)
56 #define PVRSRV_BRIDGE_RGXTA3D_RGXCREATEHWRTDATA                 PVRSRV_IOWR(PVRSRV_BRIDGE_RGXTA3D_CMD_FIRST+0)
57 #define PVRSRV_BRIDGE_RGXTA3D_RGXDESTROYHWRTDATA                        PVRSRV_IOWR(PVRSRV_BRIDGE_RGXTA3D_CMD_FIRST+1)
58 #define PVRSRV_BRIDGE_RGXTA3D_RGXCREATERENDERTARGET                     PVRSRV_IOWR(PVRSRV_BRIDGE_RGXTA3D_CMD_FIRST+2)
59 #define PVRSRV_BRIDGE_RGXTA3D_RGXDESTROYRENDERTARGET                    PVRSRV_IOWR(PVRSRV_BRIDGE_RGXTA3D_CMD_FIRST+3)
60 #define PVRSRV_BRIDGE_RGXTA3D_RGXCREATEZSBUFFER                 PVRSRV_IOWR(PVRSRV_BRIDGE_RGXTA3D_CMD_FIRST+4)
61 #define PVRSRV_BRIDGE_RGXTA3D_RGXDESTROYZSBUFFER                        PVRSRV_IOWR(PVRSRV_BRIDGE_RGXTA3D_CMD_FIRST+5)
62 #define PVRSRV_BRIDGE_RGXTA3D_RGXPOPULATEZSBUFFER                       PVRSRV_IOWR(PVRSRV_BRIDGE_RGXTA3D_CMD_FIRST+6)
63 #define PVRSRV_BRIDGE_RGXTA3D_RGXUNPOPULATEZSBUFFER                     PVRSRV_IOWR(PVRSRV_BRIDGE_RGXTA3D_CMD_FIRST+7)
64 #define PVRSRV_BRIDGE_RGXTA3D_RGXCREATEFREELIST                 PVRSRV_IOWR(PVRSRV_BRIDGE_RGXTA3D_CMD_FIRST+8)
65 #define PVRSRV_BRIDGE_RGXTA3D_RGXDESTROYFREELIST                        PVRSRV_IOWR(PVRSRV_BRIDGE_RGXTA3D_CMD_FIRST+9)
66 #define PVRSRV_BRIDGE_RGXTA3D_RGXADDBLOCKTOFREELIST                     PVRSRV_IOWR(PVRSRV_BRIDGE_RGXTA3D_CMD_FIRST+10)
67 #define PVRSRV_BRIDGE_RGXTA3D_RGXREMOVEBLOCKFROMFREELIST                        PVRSRV_IOWR(PVRSRV_BRIDGE_RGXTA3D_CMD_FIRST+11)
68 #define PVRSRV_BRIDGE_RGXTA3D_RGXCREATERENDERCONTEXT                    PVRSRV_IOWR(PVRSRV_BRIDGE_RGXTA3D_CMD_FIRST+12)
69 #define PVRSRV_BRIDGE_RGXTA3D_RGXDESTROYRENDERCONTEXT                   PVRSRV_IOWR(PVRSRV_BRIDGE_RGXTA3D_CMD_FIRST+13)
70 #define PVRSRV_BRIDGE_RGXTA3D_RGXKICKTA3D                       PVRSRV_IOWR(PVRSRV_BRIDGE_RGXTA3D_CMD_FIRST+14)
71 #define PVRSRV_BRIDGE_RGXTA3D_RGXSETRENDERCONTEXTPRIORITY                       PVRSRV_IOWR(PVRSRV_BRIDGE_RGXTA3D_CMD_FIRST+15)
72 #define PVRSRV_BRIDGE_RGXTA3D_RGXGETLASTRENDERCONTEXTRESETREASON                        PVRSRV_IOWR(PVRSRV_BRIDGE_RGXTA3D_CMD_FIRST+16)
73 #define PVRSRV_BRIDGE_RGXTA3D_RGXGETPARTIALRENDERCOUNT                  PVRSRV_IOWR(PVRSRV_BRIDGE_RGXTA3D_CMD_FIRST+17)
74 #define PVRSRV_BRIDGE_RGXTA3D_RGXKICKSYNCTA                     PVRSRV_IOWR(PVRSRV_BRIDGE_RGXTA3D_CMD_FIRST+18)
75 #define PVRSRV_BRIDGE_RGXTA3D_CMD_LAST                  (PVRSRV_BRIDGE_RGXTA3D_CMD_FIRST+18)
76
77
78 /*******************************************
79             RGXCreateHWRTData          
80  *******************************************/
81
82 /* Bridge in structure for RGXCreateHWRTData */
83 typedef struct PVRSRV_BRIDGE_IN_RGXCREATEHWRTDATA_TAG
84 {
85         IMG_HANDLE hDevNode;
86         IMG_UINT32 ui32RenderTarget;
87         IMG_DEV_VIRTADDR sPMMlistDevVAddr;
88         IMG_DEV_VIRTADDR sVFPPageTableAddr;
89         IMG_HANDLE * phapsFreeLists;
90         IMG_UINT32 ui32PPPScreen;
91         IMG_UINT32 ui32PPPGridOffset;
92         IMG_UINT64 ui64PPPMultiSampleCtl;
93         IMG_UINT32 ui32TPCStride;
94         IMG_DEV_VIRTADDR sTailPtrsDevVAddr;
95         IMG_UINT32 ui32TPCSize;
96         IMG_UINT32 ui32TEScreen;
97         IMG_UINT32 ui32TEAA;
98         IMG_UINT32 ui32TEMTILE1;
99         IMG_UINT32 ui32TEMTILE2;
100         IMG_UINT32 ui32MTileStride;
101         IMG_UINT32 ui32ui32ISPMergeLowerX;
102         IMG_UINT32 ui32ui32ISPMergeLowerY;
103         IMG_UINT32 ui32ui32ISPMergeUpperX;
104         IMG_UINT32 ui32ui32ISPMergeUpperY;
105         IMG_UINT32 ui32ui32ISPMergeScaleX;
106         IMG_UINT32 ui32ui32ISPMergeScaleY;
107         IMG_UINT16 ui16MaxRTs;
108 } __attribute__((packed)) PVRSRV_BRIDGE_IN_RGXCREATEHWRTDATA;
109
110
111 /* Bridge out structure for RGXCreateHWRTData */
112 typedef struct PVRSRV_BRIDGE_OUT_RGXCREATEHWRTDATA_TAG
113 {
114         IMG_HANDLE hCleanupCookie;
115         IMG_HANDLE hRTACtlMemDesc;
116         IMG_HANDLE hsHWRTDataMemDesc;
117         IMG_UINT32 ui32FWHWRTData;
118         PVRSRV_ERROR eError;
119 } __attribute__((packed)) PVRSRV_BRIDGE_OUT_RGXCREATEHWRTDATA;
120
121 /*******************************************
122             RGXDestroyHWRTData          
123  *******************************************/
124
125 /* Bridge in structure for RGXDestroyHWRTData */
126 typedef struct PVRSRV_BRIDGE_IN_RGXDESTROYHWRTDATA_TAG
127 {
128         IMG_HANDLE hCleanupCookie;
129 } __attribute__((packed)) PVRSRV_BRIDGE_IN_RGXDESTROYHWRTDATA;
130
131
132 /* Bridge out structure for RGXDestroyHWRTData */
133 typedef struct PVRSRV_BRIDGE_OUT_RGXDESTROYHWRTDATA_TAG
134 {
135         PVRSRV_ERROR eError;
136 } __attribute__((packed)) PVRSRV_BRIDGE_OUT_RGXDESTROYHWRTDATA;
137
138 /*******************************************
139             RGXCreateRenderTarget          
140  *******************************************/
141
142 /* Bridge in structure for RGXCreateRenderTarget */
143 typedef struct PVRSRV_BRIDGE_IN_RGXCREATERENDERTARGET_TAG
144 {
145         IMG_HANDLE hDevNode;
146         IMG_DEV_VIRTADDR spsVHeapTableDevVAddr;
147 } __attribute__((packed)) PVRSRV_BRIDGE_IN_RGXCREATERENDERTARGET;
148
149
150 /* Bridge out structure for RGXCreateRenderTarget */
151 typedef struct PVRSRV_BRIDGE_OUT_RGXCREATERENDERTARGET_TAG
152 {
153         IMG_HANDLE hsRenderTargetMemDesc;
154         IMG_UINT32 ui32sRenderTargetFWDevVAddr;
155         PVRSRV_ERROR eError;
156 } __attribute__((packed)) PVRSRV_BRIDGE_OUT_RGXCREATERENDERTARGET;
157
158 /*******************************************
159             RGXDestroyRenderTarget          
160  *******************************************/
161
162 /* Bridge in structure for RGXDestroyRenderTarget */
163 typedef struct PVRSRV_BRIDGE_IN_RGXDESTROYRENDERTARGET_TAG
164 {
165         IMG_HANDLE hsRenderTargetMemDesc;
166 } __attribute__((packed)) PVRSRV_BRIDGE_IN_RGXDESTROYRENDERTARGET;
167
168
169 /* Bridge out structure for RGXDestroyRenderTarget */
170 typedef struct PVRSRV_BRIDGE_OUT_RGXDESTROYRENDERTARGET_TAG
171 {
172         PVRSRV_ERROR eError;
173 } __attribute__((packed)) PVRSRV_BRIDGE_OUT_RGXDESTROYRENDERTARGET;
174
175 /*******************************************
176             RGXCreateZSBuffer          
177  *******************************************/
178
179 /* Bridge in structure for RGXCreateZSBuffer */
180 typedef struct PVRSRV_BRIDGE_IN_RGXCREATEZSBUFFER_TAG
181 {
182         IMG_HANDLE hDevNode;
183         IMG_HANDLE hReservation;
184         IMG_HANDLE hPMR;
185         PVRSRV_MEMALLOCFLAGS_T uiMapFlags;
186 } __attribute__((packed)) PVRSRV_BRIDGE_IN_RGXCREATEZSBUFFER;
187
188
189 /* Bridge out structure for RGXCreateZSBuffer */
190 typedef struct PVRSRV_BRIDGE_OUT_RGXCREATEZSBUFFER_TAG
191 {
192         IMG_HANDLE hsZSBufferKM;
193         IMG_UINT32 ui32sZSBufferFWDevVAddr;
194         PVRSRV_ERROR eError;
195 } __attribute__((packed)) PVRSRV_BRIDGE_OUT_RGXCREATEZSBUFFER;
196
197 /*******************************************
198             RGXDestroyZSBuffer          
199  *******************************************/
200
201 /* Bridge in structure for RGXDestroyZSBuffer */
202 typedef struct PVRSRV_BRIDGE_IN_RGXDESTROYZSBUFFER_TAG
203 {
204         IMG_HANDLE hsZSBufferMemDesc;
205 } __attribute__((packed)) PVRSRV_BRIDGE_IN_RGXDESTROYZSBUFFER;
206
207
208 /* Bridge out structure for RGXDestroyZSBuffer */
209 typedef struct PVRSRV_BRIDGE_OUT_RGXDESTROYZSBUFFER_TAG
210 {
211         PVRSRV_ERROR eError;
212 } __attribute__((packed)) PVRSRV_BRIDGE_OUT_RGXDESTROYZSBUFFER;
213
214 /*******************************************
215             RGXPopulateZSBuffer          
216  *******************************************/
217
218 /* Bridge in structure for RGXPopulateZSBuffer */
219 typedef struct PVRSRV_BRIDGE_IN_RGXPOPULATEZSBUFFER_TAG
220 {
221         IMG_HANDLE hsZSBufferKM;
222 } __attribute__((packed)) PVRSRV_BRIDGE_IN_RGXPOPULATEZSBUFFER;
223
224
225 /* Bridge out structure for RGXPopulateZSBuffer */
226 typedef struct PVRSRV_BRIDGE_OUT_RGXPOPULATEZSBUFFER_TAG
227 {
228         IMG_HANDLE hsPopulation;
229         PVRSRV_ERROR eError;
230 } __attribute__((packed)) PVRSRV_BRIDGE_OUT_RGXPOPULATEZSBUFFER;
231
232 /*******************************************
233             RGXUnpopulateZSBuffer          
234  *******************************************/
235
236 /* Bridge in structure for RGXUnpopulateZSBuffer */
237 typedef struct PVRSRV_BRIDGE_IN_RGXUNPOPULATEZSBUFFER_TAG
238 {
239         IMG_HANDLE hsPopulation;
240 } __attribute__((packed)) PVRSRV_BRIDGE_IN_RGXUNPOPULATEZSBUFFER;
241
242
243 /* Bridge out structure for RGXUnpopulateZSBuffer */
244 typedef struct PVRSRV_BRIDGE_OUT_RGXUNPOPULATEZSBUFFER_TAG
245 {
246         PVRSRV_ERROR eError;
247 } __attribute__((packed)) PVRSRV_BRIDGE_OUT_RGXUNPOPULATEZSBUFFER;
248
249 /*******************************************
250             RGXCreateFreeList          
251  *******************************************/
252
253 /* Bridge in structure for RGXCreateFreeList */
254 typedef struct PVRSRV_BRIDGE_IN_RGXCREATEFREELIST_TAG
255 {
256         IMG_HANDLE hDevNode;
257         IMG_UINT32 ui32ui32MaxFLPages;
258         IMG_UINT32 ui32ui32InitFLPages;
259         IMG_UINT32 ui32ui32GrowFLPages;
260         IMG_BOOL bbFreeListCheck;
261         IMG_DEV_VIRTADDR spsFreeListDevVAddr;
262         IMG_HANDLE hsFreeListPMR;
263         IMG_DEVMEM_OFFSET_T uiPMROffset;
264 } __attribute__((packed)) PVRSRV_BRIDGE_IN_RGXCREATEFREELIST;
265
266
267 /* Bridge out structure for RGXCreateFreeList */
268 typedef struct PVRSRV_BRIDGE_OUT_RGXCREATEFREELIST_TAG
269 {
270         IMG_HANDLE hCleanupCookie;
271         PVRSRV_ERROR eError;
272 } __attribute__((packed)) PVRSRV_BRIDGE_OUT_RGXCREATEFREELIST;
273
274 /*******************************************
275             RGXDestroyFreeList          
276  *******************************************/
277
278 /* Bridge in structure for RGXDestroyFreeList */
279 typedef struct PVRSRV_BRIDGE_IN_RGXDESTROYFREELIST_TAG
280 {
281         IMG_HANDLE hCleanupCookie;
282 } __attribute__((packed)) PVRSRV_BRIDGE_IN_RGXDESTROYFREELIST;
283
284
285 /* Bridge out structure for RGXDestroyFreeList */
286 typedef struct PVRSRV_BRIDGE_OUT_RGXDESTROYFREELIST_TAG
287 {
288         PVRSRV_ERROR eError;
289 } __attribute__((packed)) PVRSRV_BRIDGE_OUT_RGXDESTROYFREELIST;
290
291 /*******************************************
292             RGXAddBlockToFreeList          
293  *******************************************/
294
295 /* Bridge in structure for RGXAddBlockToFreeList */
296 typedef struct PVRSRV_BRIDGE_IN_RGXADDBLOCKTOFREELIST_TAG
297 {
298         IMG_HANDLE hsFreeList;
299         IMG_UINT32 ui3232NumPages;
300 } __attribute__((packed)) PVRSRV_BRIDGE_IN_RGXADDBLOCKTOFREELIST;
301
302
303 /* Bridge out structure for RGXAddBlockToFreeList */
304 typedef struct PVRSRV_BRIDGE_OUT_RGXADDBLOCKTOFREELIST_TAG
305 {
306         PVRSRV_ERROR eError;
307 } __attribute__((packed)) PVRSRV_BRIDGE_OUT_RGXADDBLOCKTOFREELIST;
308
309 /*******************************************
310             RGXRemoveBlockFromFreeList          
311  *******************************************/
312
313 /* Bridge in structure for RGXRemoveBlockFromFreeList */
314 typedef struct PVRSRV_BRIDGE_IN_RGXREMOVEBLOCKFROMFREELIST_TAG
315 {
316         IMG_HANDLE hsFreeList;
317 } __attribute__((packed)) PVRSRV_BRIDGE_IN_RGXREMOVEBLOCKFROMFREELIST;
318
319
320 /* Bridge out structure for RGXRemoveBlockFromFreeList */
321 typedef struct PVRSRV_BRIDGE_OUT_RGXREMOVEBLOCKFROMFREELIST_TAG
322 {
323         PVRSRV_ERROR eError;
324 } __attribute__((packed)) PVRSRV_BRIDGE_OUT_RGXREMOVEBLOCKFROMFREELIST;
325
326 /*******************************************
327             RGXCreateRenderContext          
328  *******************************************/
329
330 /* Bridge in structure for RGXCreateRenderContext */
331 typedef struct PVRSRV_BRIDGE_IN_RGXCREATERENDERCONTEXT_TAG
332 {
333         IMG_HANDLE hDevNode;
334         IMG_UINT32 ui32Priority;
335         IMG_DEV_VIRTADDR sMCUFenceAddr;
336         IMG_DEV_VIRTADDR sVDMCallStackAddr;
337         IMG_UINT32 ui32FrameworkCmdize;
338         IMG_BYTE * psFrameworkCmd;
339         IMG_HANDLE hPrivData;
340 } __attribute__((packed)) PVRSRV_BRIDGE_IN_RGXCREATERENDERCONTEXT;
341
342
343 /* Bridge out structure for RGXCreateRenderContext */
344 typedef struct PVRSRV_BRIDGE_OUT_RGXCREATERENDERCONTEXT_TAG
345 {
346         IMG_HANDLE hRenderContext;
347         PVRSRV_ERROR eError;
348 } __attribute__((packed)) PVRSRV_BRIDGE_OUT_RGXCREATERENDERCONTEXT;
349
350 /*******************************************
351             RGXDestroyRenderContext          
352  *******************************************/
353
354 /* Bridge in structure for RGXDestroyRenderContext */
355 typedef struct PVRSRV_BRIDGE_IN_RGXDESTROYRENDERCONTEXT_TAG
356 {
357         IMG_HANDLE hCleanupCookie;
358 } __attribute__((packed)) PVRSRV_BRIDGE_IN_RGXDESTROYRENDERCONTEXT;
359
360
361 /* Bridge out structure for RGXDestroyRenderContext */
362 typedef struct PVRSRV_BRIDGE_OUT_RGXDESTROYRENDERCONTEXT_TAG
363 {
364         PVRSRV_ERROR eError;
365 } __attribute__((packed)) PVRSRV_BRIDGE_OUT_RGXDESTROYRENDERCONTEXT;
366
367 /*******************************************
368             RGXKickTA3D          
369  *******************************************/
370
371 /* Bridge in structure for RGXKickTA3D */
372 typedef struct PVRSRV_BRIDGE_IN_RGXKICKTA3D_TAG
373 {
374         IMG_HANDLE hRenderContext;
375         IMG_UINT32 ui32ClientTAFenceCount;
376         PRGXFWIF_UFO_ADDR * psClientTAFenceUFOAddress;
377         IMG_UINT32 * pui32ClientTAFenceValue;
378         IMG_UINT32 ui32ClientTAUpdateCount;
379         PRGXFWIF_UFO_ADDR * psClientTAUpdateUFOAddress;
380         IMG_UINT32 * pui32ClientTAUpdateValue;
381         IMG_UINT32 ui32ServerTASyncPrims;
382         IMG_UINT32 * pui32ServerTASyncFlags;
383         IMG_HANDLE * phServerTASyncs;
384         IMG_UINT32 ui32Client3DFenceCount;
385         PRGXFWIF_UFO_ADDR * psClient3DFenceUFOAddress;
386         IMG_UINT32 * pui32Client3DFenceValue;
387         IMG_UINT32 ui32Client3DUpdateCount;
388         PRGXFWIF_UFO_ADDR * psClient3DUpdateUFOAddress;
389         IMG_UINT32 * pui32Client3DUpdateValue;
390         IMG_UINT32 ui32Server3DSyncPrims;
391         IMG_UINT32 * pui32Server3DSyncFlags;
392         IMG_HANDLE * phServer3DSyncs;
393         PRGXFWIF_UFO_ADDR sPRFenceUFOAddress;
394         IMG_UINT32 ui32FRFenceValue;
395         IMG_UINT32 ui32NumFenceFds;
396         IMG_INT32 * pi32FenceFds;
397         IMG_UINT32 ui32TACmdSize;
398         IMG_BYTE * psTACmd;
399         IMG_UINT32 ui323DPRCmdSize;
400         IMG_BYTE * ps3DPRCmd;
401         IMG_UINT32 ui323DCmdSize;
402         IMG_BYTE * ps3DCmd;
403         IMG_UINT32 ui32ExternalJobReference;
404         IMG_UINT32 ui32InternalJobReference;
405         IMG_BOOL bbLastTAInScene;
406         IMG_BOOL bbKickTA;
407         IMG_BOOL bbKickPR;
408         IMG_BOOL bbKick3D;
409         IMG_BOOL bbAbort;
410         IMG_BOOL bbPDumpContinuous;
411         IMG_HANDLE hRTDataCleanup;
412         IMG_HANDLE hZBuffer;
413         IMG_HANDLE hSBuffer;
414         IMG_BOOL bbCommitRefCountsTA;
415         IMG_BOOL bbCommitRefCounts3D;
416 } __attribute__((packed)) PVRSRV_BRIDGE_IN_RGXKICKTA3D;
417
418
419 /* Bridge out structure for RGXKickTA3D */
420 typedef struct PVRSRV_BRIDGE_OUT_RGXKICKTA3D_TAG
421 {
422         IMG_BOOL bbCommittedRefCountsTA;
423         IMG_BOOL bbCommittedRefCounts3D;
424         PVRSRV_ERROR eError;
425 } __attribute__((packed)) PVRSRV_BRIDGE_OUT_RGXKICKTA3D;
426
427 /*******************************************
428             RGXSetRenderContextPriority          
429  *******************************************/
430
431 /* Bridge in structure for RGXSetRenderContextPriority */
432 typedef struct PVRSRV_BRIDGE_IN_RGXSETRENDERCONTEXTPRIORITY_TAG
433 {
434         IMG_HANDLE hRenderContext;
435         IMG_UINT32 ui32Priority;
436 } __attribute__((packed)) PVRSRV_BRIDGE_IN_RGXSETRENDERCONTEXTPRIORITY;
437
438
439 /* Bridge out structure for RGXSetRenderContextPriority */
440 typedef struct PVRSRV_BRIDGE_OUT_RGXSETRENDERCONTEXTPRIORITY_TAG
441 {
442         PVRSRV_ERROR eError;
443 } __attribute__((packed)) PVRSRV_BRIDGE_OUT_RGXSETRENDERCONTEXTPRIORITY;
444
445 /*******************************************
446             RGXGetLastRenderContextResetReason          
447  *******************************************/
448
449 /* Bridge in structure for RGXGetLastRenderContextResetReason */
450 typedef struct PVRSRV_BRIDGE_IN_RGXGETLASTRENDERCONTEXTRESETREASON_TAG
451 {
452         IMG_HANDLE hRenderContext;
453 } __attribute__((packed)) PVRSRV_BRIDGE_IN_RGXGETLASTRENDERCONTEXTRESETREASON;
454
455
456 /* Bridge out structure for RGXGetLastRenderContextResetReason */
457 typedef struct PVRSRV_BRIDGE_OUT_RGXGETLASTRENDERCONTEXTRESETREASON_TAG
458 {
459         IMG_UINT32 ui32LastResetReason;
460         PVRSRV_ERROR eError;
461 } __attribute__((packed)) PVRSRV_BRIDGE_OUT_RGXGETLASTRENDERCONTEXTRESETREASON;
462
463 /*******************************************
464             RGXGetPartialRenderCount          
465  *******************************************/
466
467 /* Bridge in structure for RGXGetPartialRenderCount */
468 typedef struct PVRSRV_BRIDGE_IN_RGXGETPARTIALRENDERCOUNT_TAG
469 {
470         IMG_HANDLE hHWRTDataMemDesc;
471 } __attribute__((packed)) PVRSRV_BRIDGE_IN_RGXGETPARTIALRENDERCOUNT;
472
473
474 /* Bridge out structure for RGXGetPartialRenderCount */
475 typedef struct PVRSRV_BRIDGE_OUT_RGXGETPARTIALRENDERCOUNT_TAG
476 {
477         IMG_UINT32 ui32NumPartialRenders;
478         PVRSRV_ERROR eError;
479 } __attribute__((packed)) PVRSRV_BRIDGE_OUT_RGXGETPARTIALRENDERCOUNT;
480
481 /*******************************************
482             RGXKickSyncTA          
483  *******************************************/
484
485 /* Bridge in structure for RGXKickSyncTA */
486 typedef struct PVRSRV_BRIDGE_IN_RGXKICKSYNCTA_TAG
487 {
488         IMG_HANDLE hRenderContext;
489         IMG_UINT32 ui32ClientTAFenceCount;
490         PRGXFWIF_UFO_ADDR * psClientTAFenceUFOAddress;
491         IMG_UINT32 * pui32ClientTAFenceValue;
492         IMG_UINT32 ui32ClientTAUpdateCount;
493         PRGXFWIF_UFO_ADDR * psClientTAUpdateUFOAddress;
494         IMG_UINT32 * pui32ClientTAUpdateValue;
495         IMG_UINT32 ui32ServerTASyncPrims;
496         IMG_UINT32 * pui32ServerTASyncFlags;
497         IMG_HANDLE * phServerTASyncs;
498         IMG_UINT32 ui32Client3DFenceCount;
499         PRGXFWIF_UFO_ADDR * psClient3DFenceUFOAddress;
500         IMG_UINT32 * pui32Client3DFenceValue;
501         IMG_UINT32 ui32Client3DUpdateCount;
502         PRGXFWIF_UFO_ADDR * psClient3DUpdateUFOAddress;
503         IMG_UINT32 * pui32Client3DUpdateValue;
504         IMG_UINT32 ui32Server3DSyncPrims;
505         IMG_UINT32 * pui32Server3DSyncFlags;
506         IMG_HANDLE * phServer3DSyncs;
507         IMG_UINT32 ui32NumFenceFDs;
508         IMG_INT32 * pi32FenceFDs;
509         IMG_BOOL bbPDumpContinuous;
510 } __attribute__((packed)) PVRSRV_BRIDGE_IN_RGXKICKSYNCTA;
511
512
513 /* Bridge out structure for RGXKickSyncTA */
514 typedef struct PVRSRV_BRIDGE_OUT_RGXKICKSYNCTA_TAG
515 {
516         PVRSRV_ERROR eError;
517 } __attribute__((packed)) PVRSRV_BRIDGE_OUT_RGXKICKSYNCTA;
518
519 #endif /* COMMON_RGXTA3D_BRIDGE_H */