xref: /aosp_15_r20/external/libva/va/va_trace.h (revision 54e60f844a168e9a219354de272cd517ee8cd4b7)
1*54e60f84SAndroid Build Coastguard Worker /*
2*54e60f84SAndroid Build Coastguard Worker  * Copyright (c) 2009 Intel Corporation. All Rights Reserved.
3*54e60f84SAndroid Build Coastguard Worker  *
4*54e60f84SAndroid Build Coastguard Worker  * Permission is hereby granted, free of charge, to any person obtaining a
5*54e60f84SAndroid Build Coastguard Worker  * copy of this software and associated documentation files (the
6*54e60f84SAndroid Build Coastguard Worker  * "Software"), to deal in the Software without restriction, including
7*54e60f84SAndroid Build Coastguard Worker  * without limitation the rights to use, copy, modify, merge, publish,
8*54e60f84SAndroid Build Coastguard Worker  * distribute, sub license, and/or sell copies of the Software, and to
9*54e60f84SAndroid Build Coastguard Worker  * permit persons to whom the Software is furnished to do so, subject to
10*54e60f84SAndroid Build Coastguard Worker  * the following conditions:
11*54e60f84SAndroid Build Coastguard Worker  *
12*54e60f84SAndroid Build Coastguard Worker  * The above copyright notice and this permission notice (including the
13*54e60f84SAndroid Build Coastguard Worker  * next paragraph) shall be included in all copies or substantial portions
14*54e60f84SAndroid Build Coastguard Worker  * of the Software.
15*54e60f84SAndroid Build Coastguard Worker  *
16*54e60f84SAndroid Build Coastguard Worker  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
17*54e60f84SAndroid Build Coastguard Worker  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18*54e60f84SAndroid Build Coastguard Worker  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
19*54e60f84SAndroid Build Coastguard Worker  * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
20*54e60f84SAndroid Build Coastguard Worker  * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21*54e60f84SAndroid Build Coastguard Worker  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22*54e60f84SAndroid Build Coastguard Worker  * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23*54e60f84SAndroid Build Coastguard Worker  */
24*54e60f84SAndroid Build Coastguard Worker 
25*54e60f84SAndroid Build Coastguard Worker #ifndef VA_TRACE_H
26*54e60f84SAndroid Build Coastguard Worker #define VA_TRACE_H
27*54e60f84SAndroid Build Coastguard Worker 
28*54e60f84SAndroid Build Coastguard Worker #ifdef __cplusplus
29*54e60f84SAndroid Build Coastguard Worker extern "C" {
30*54e60f84SAndroid Build Coastguard Worker #endif
31*54e60f84SAndroid Build Coastguard Worker 
32*54e60f84SAndroid Build Coastguard Worker extern int va_trace_flag;
33*54e60f84SAndroid Build Coastguard Worker 
34*54e60f84SAndroid Build Coastguard Worker #define VA_TRACE_FLAG_LOG             0x1
35*54e60f84SAndroid Build Coastguard Worker #define VA_TRACE_FLAG_BUFDATA         0x2
36*54e60f84SAndroid Build Coastguard Worker #define VA_TRACE_FLAG_CODEDBUF        0x4
37*54e60f84SAndroid Build Coastguard Worker #define VA_TRACE_FLAG_SURFACE_DECODE  0x8
38*54e60f84SAndroid Build Coastguard Worker #define VA_TRACE_FLAG_SURFACE_ENCODE  0x10
39*54e60f84SAndroid Build Coastguard Worker #define VA_TRACE_FLAG_SURFACE_JPEG    0x20
40*54e60f84SAndroid Build Coastguard Worker #define VA_TRACE_FLAG_SURFACE         (VA_TRACE_FLAG_SURFACE_DECODE | \
41*54e60f84SAndroid Build Coastguard Worker                                        VA_TRACE_FLAG_SURFACE_ENCODE | \
42*54e60f84SAndroid Build Coastguard Worker                                        VA_TRACE_FLAG_SURFACE_JPEG)
43*54e60f84SAndroid Build Coastguard Worker #define VA_TRACE_FLAG_FTRACE          0x40
44*54e60f84SAndroid Build Coastguard Worker #define VA_TRACE_FLAG_FTRACE_BUFDATA  (VA_TRACE_FLAG_FTRACE | \
45*54e60f84SAndroid Build Coastguard Worker                                        VA_TRACE_FLAG_BUFDATA)
46*54e60f84SAndroid Build Coastguard Worker 
47*54e60f84SAndroid Build Coastguard Worker #define VA_TRACE_LOG(trace_func,...)            \
48*54e60f84SAndroid Build Coastguard Worker     if (va_trace_flag & VA_TRACE_FLAG_LOG) {    \
49*54e60f84SAndroid Build Coastguard Worker         trace_func(__VA_ARGS__);                \
50*54e60f84SAndroid Build Coastguard Worker     }
51*54e60f84SAndroid Build Coastguard Worker #define VA_TRACE_ALL(trace_func,...)            \
52*54e60f84SAndroid Build Coastguard Worker     if (va_trace_flag) {                        \
53*54e60f84SAndroid Build Coastguard Worker         trace_func(__VA_ARGS__);                \
54*54e60f84SAndroid Build Coastguard Worker     }
55*54e60f84SAndroid Build Coastguard Worker #define VA_TRACE_RET(dpy,ret)                   \
56*54e60f84SAndroid Build Coastguard Worker     if (va_trace_flag){                         \
57*54e60f84SAndroid Build Coastguard Worker         va_TraceStatus(dpy, __func__, ret);     \
58*54e60f84SAndroid Build Coastguard Worker     }
59*54e60f84SAndroid Build Coastguard Worker 
60*54e60f84SAndroid Build Coastguard Worker /** \brief event id definition
61*54e60f84SAndroid Build Coastguard Worker  * identifier of trace event, coresponding the task value in the manifest, located in libva-util/tracetool
62*54e60f84SAndroid Build Coastguard Worker  * the trace tool will translate this id to event name, also the trace data carried along.
63*54e60f84SAndroid Build Coastguard Worker  * Note: make sure event id definition backward compatible */
64*54e60f84SAndroid Build Coastguard Worker enum {
65*54e60f84SAndroid Build Coastguard Worker     INVALIDE_ID = 0,
66*54e60f84SAndroid Build Coastguard Worker     CREATE_CONFIG = 1,
67*54e60f84SAndroid Build Coastguard Worker     DESTROY_CONFIG,
68*54e60f84SAndroid Build Coastguard Worker     CREATE_CONTEXT,
69*54e60f84SAndroid Build Coastguard Worker     DESTROY_CONTEXT,
70*54e60f84SAndroid Build Coastguard Worker     CREATE_BUFFER,
71*54e60f84SAndroid Build Coastguard Worker     DESTROY_BUFFER,
72*54e60f84SAndroid Build Coastguard Worker     CREATE_SURFACE,
73*54e60f84SAndroid Build Coastguard Worker     DESTROY_SURFACE,
74*54e60f84SAndroid Build Coastguard Worker     BEGIN_PICTURE,
75*54e60f84SAndroid Build Coastguard Worker     RENDER_PICTURE,
76*54e60f84SAndroid Build Coastguard Worker     END_PICTURE,
77*54e60f84SAndroid Build Coastguard Worker     BUFFER_DATA,
78*54e60f84SAndroid Build Coastguard Worker     SYNC_SURFACE,
79*54e60f84SAndroid Build Coastguard Worker     SYNC_SURFACE2,
80*54e60f84SAndroid Build Coastguard Worker     QUERY_SURFACE_ATTR,
81*54e60f84SAndroid Build Coastguard Worker };
82*54e60f84SAndroid Build Coastguard Worker 
83*54e60f84SAndroid Build Coastguard Worker /** \brief event opcode definition
84*54e60f84SAndroid Build Coastguard Worker  * identifier of trace event operation, coresponding the opcode value in the manifest.
85*54e60f84SAndroid Build Coastguard Worker  * 4 predefined opcode */
86*54e60f84SAndroid Build Coastguard Worker #define TRACE_INFO  0
87*54e60f84SAndroid Build Coastguard Worker #define TRACE_BEGIN 1
88*54e60f84SAndroid Build Coastguard Worker #define TRACE_END   2
89*54e60f84SAndroid Build Coastguard Worker #define TRACE_DATA  3
90*54e60f84SAndroid Build Coastguard Worker 
91*54e60f84SAndroid Build Coastguard Worker /** \brief event data structure
92*54e60f84SAndroid Build Coastguard Worker  * structure list to pass event data without copy, each entry contain the event data address and size.
93*54e60f84SAndroid Build Coastguard Worker  * va_TraceEvent will write these raw data into ftrace entry */
94*54e60f84SAndroid Build Coastguard Worker typedef struct va_event_data {
95*54e60f84SAndroid Build Coastguard Worker     void *buf;
96*54e60f84SAndroid Build Coastguard Worker     unsigned int size;
97*54e60f84SAndroid Build Coastguard Worker } VAEventData;
98*54e60f84SAndroid Build Coastguard Worker 
99*54e60f84SAndroid Build Coastguard Worker 
100*54e60f84SAndroid Build Coastguard Worker /** \brief VA_TRACE
101*54e60f84SAndroid Build Coastguard Worker  * trace interface to send out trace event with empty event data. */
102*54e60f84SAndroid Build Coastguard Worker #define VA_TRACE(dpy,id,op) do {                        \
103*54e60f84SAndroid Build Coastguard Worker         if (va_trace_flag & VA_TRACE_FLAG_FTRACE) {     \
104*54e60f84SAndroid Build Coastguard Worker             va_TraceEvent(dpy, id, op, 0, NULL);        \
105*54e60f84SAndroid Build Coastguard Worker         }                                               \
106*54e60f84SAndroid Build Coastguard Worker     } while (0)
107*54e60f84SAndroid Build Coastguard Worker /** \brief VA_TRACE_V
108*54e60f84SAndroid Build Coastguard Worker  * trace interface to send out trace event with 1 data element from variable. the variable data type could be 8/16/32/64 bitsize */
109*54e60f84SAndroid Build Coastguard Worker #define VA_TRACE_V(dpy,id,op,v) do {                    \
110*54e60f84SAndroid Build Coastguard Worker         if (va_trace_flag & VA_TRACE_FLAG_FTRACE) {     \
111*54e60f84SAndroid Build Coastguard Worker             VAEventData desc[1] = {{&v, sizeof(v)}};    \
112*54e60f84SAndroid Build Coastguard Worker             va_TraceEvent(dpy, id, op, 1, desc);        \
113*54e60f84SAndroid Build Coastguard Worker         }                                               \
114*54e60f84SAndroid Build Coastguard Worker     } while (0)
115*54e60f84SAndroid Build Coastguard Worker /** \brief VA_TRACE_PV
116*54e60f84SAndroid Build Coastguard Worker  * trace interface to send out trace event with 2 data element, from pointer and variable. their data size could be 8/16/32/64 bitsize */
117*54e60f84SAndroid Build Coastguard Worker #define VA_TRACE_PV(dpy,id,op,p,v) do {                 \
118*54e60f84SAndroid Build Coastguard Worker         if (va_trace_flag & VA_TRACE_FLAG_FTRACE) {     \
119*54e60f84SAndroid Build Coastguard Worker             VAEventData desc[2] = {{p, sizeof(*p)},     \
120*54e60f84SAndroid Build Coastguard Worker                                    {&v, sizeof(v)}};    \
121*54e60f84SAndroid Build Coastguard Worker             va_TraceEvent(dpy, id, op, 2, desc);        \
122*54e60f84SAndroid Build Coastguard Worker         }                                               \
123*54e60f84SAndroid Build Coastguard Worker     } while (0)
124*54e60f84SAndroid Build Coastguard Worker /** \brief VA_TRACE_VV
125*54e60f84SAndroid Build Coastguard Worker  * trace interface to send out trace event with 2 data element, both from variable. their data size could be 8/16/32/64 bitsize */
126*54e60f84SAndroid Build Coastguard Worker #define VA_TRACE_VV(dpy,id,op,v1,v2) do {               \
127*54e60f84SAndroid Build Coastguard Worker         if (va_trace_flag & VA_TRACE_FLAG_FTRACE) {     \
128*54e60f84SAndroid Build Coastguard Worker             VAEventData desc[2] = {{&v1, sizeof(v1)},   \
129*54e60f84SAndroid Build Coastguard Worker                                    {&v2, sizeof(v2)}};  \
130*54e60f84SAndroid Build Coastguard Worker             va_TraceEvent(dpy, id, op, 2, desc);        \
131*54e60f84SAndroid Build Coastguard Worker         }                                               \
132*54e60f84SAndroid Build Coastguard Worker     } while (0)
133*54e60f84SAndroid Build Coastguard Worker /** \brief VA_TRACE_VVVV
134*54e60f84SAndroid Build Coastguard Worker  * trace interface to send out trace event with 4 data element, all from variable. their data size could be 8/16/32/64 bitsize */
135*54e60f84SAndroid Build Coastguard Worker #define VA_TRACE_VVVV(dpy,id,op,v1,v2,v3,v4) do {       \
136*54e60f84SAndroid Build Coastguard Worker         if (va_trace_flag & VA_TRACE_FLAG_FTRACE) {     \
137*54e60f84SAndroid Build Coastguard Worker             VAEventData desc[4] = { {&v1, sizeof(v1)},  \
138*54e60f84SAndroid Build Coastguard Worker                                     {&v2, sizeof(v2)},  \
139*54e60f84SAndroid Build Coastguard Worker                                     {&v3, sizeof(v3)},  \
140*54e60f84SAndroid Build Coastguard Worker                                     {&v4, sizeof(v4)}}; \
141*54e60f84SAndroid Build Coastguard Worker             va_TraceEvent(dpy, id, op, 4, desc);        \
142*54e60f84SAndroid Build Coastguard Worker         }                                               \
143*54e60f84SAndroid Build Coastguard Worker     } while (0)
144*54e60f84SAndroid Build Coastguard Worker /** \brief VA_TRACE_VA
145*54e60f84SAndroid Build Coastguard Worker  * trace interface to send out trace event with a dynamic length array data element, array length from variable.
146*54e60f84SAndroid Build Coastguard Worker  * high 16bits of array length is used to set bitssize of array element. */
147*54e60f84SAndroid Build Coastguard Worker #define VA_TRACE_VA(dpy,id,op,n,a) do {                  \
148*54e60f84SAndroid Build Coastguard Worker         if (va_trace_flag & VA_TRACE_FLAG_FTRACE) {      \
149*54e60f84SAndroid Build Coastguard Worker             int num = n | sizeof(*a) << 16;              \
150*54e60f84SAndroid Build Coastguard Worker             VAEventData desc[2] = {{&num, sizeof(num)},  \
151*54e60f84SAndroid Build Coastguard Worker                                    {a, n * sizeof(*a)}}; \
152*54e60f84SAndroid Build Coastguard Worker             va_TraceEvent(dpy, id, op, 2, desc);         \
153*54e60f84SAndroid Build Coastguard Worker         }                                                \
154*54e60f84SAndroid Build Coastguard Worker     } while (0)
155*54e60f84SAndroid Build Coastguard Worker /** \brief VA_TRACE_PA
156*54e60f84SAndroid Build Coastguard Worker  * trace interface to send out trace event with a dynamic length array data element, array length from pointer. need check null before set.
157*54e60f84SAndroid Build Coastguard Worker  * high 16bits of array length is used to set bitssize of array element. */
158*54e60f84SAndroid Build Coastguard Worker #define VA_TRACE_PA(dpy,id,op,pn,a) do {                 \
159*54e60f84SAndroid Build Coastguard Worker         if (va_trace_flag & VA_TRACE_FLAG_FTRACE) {      \
160*54e60f84SAndroid Build Coastguard Worker             int num = sizeof(*a) << 16;                  \
161*54e60f84SAndroid Build Coastguard Worker             VAEventData desc[2] = {{&num, sizeof(num)},  \
162*54e60f84SAndroid Build Coastguard Worker                                    {a, 0}};              \
163*54e60f84SAndroid Build Coastguard Worker             if (pn) {                                    \
164*54e60f84SAndroid Build Coastguard Worker                 num |= *pn;                              \
165*54e60f84SAndroid Build Coastguard Worker                 desc[1].size = (*pn) * sizeof(*a);       \
166*54e60f84SAndroid Build Coastguard Worker             }                                            \
167*54e60f84SAndroid Build Coastguard Worker             va_TraceEvent(dpy, id, op, 2, desc);         \
168*54e60f84SAndroid Build Coastguard Worker         }                                                \
169*54e60f84SAndroid Build Coastguard Worker     } while (0)
170*54e60f84SAndroid Build Coastguard Worker /** \brief VA_TRACE_VVA
171*54e60f84SAndroid Build Coastguard Worker  * trace interface to send out trace event with 1 data element and a dynamic length array data element, array length from variable.
172*54e60f84SAndroid Build Coastguard Worker  * high 16bits of array length is used to set bitssize of array element. */
173*54e60f84SAndroid Build Coastguard Worker #define VA_TRACE_VVA(dpy,id,op,v,n,a) do {               \
174*54e60f84SAndroid Build Coastguard Worker         if (va_trace_flag & VA_TRACE_FLAG_FTRACE) {      \
175*54e60f84SAndroid Build Coastguard Worker             int num = n | (sizeof(*a) << 16);            \
176*54e60f84SAndroid Build Coastguard Worker             VAEventData desc[3] = {{&v, sizeof(v)},      \
177*54e60f84SAndroid Build Coastguard Worker                                    {&num, sizeof(num)},  \
178*54e60f84SAndroid Build Coastguard Worker                                    {a, n*sizeof(*a)}};   \
179*54e60f84SAndroid Build Coastguard Worker             va_TraceEvent(dpy, id, op, 3, desc);         \
180*54e60f84SAndroid Build Coastguard Worker         }                                                \
181*54e60f84SAndroid Build Coastguard Worker     } while (0)
182*54e60f84SAndroid Build Coastguard Worker /** \brief VA_TRACE_VVVA
183*54e60f84SAndroid Build Coastguard Worker  * trace interface to send out trace event with 2 data element and a dynamic length array data element, array length from variable.
184*54e60f84SAndroid Build Coastguard Worker  * high 16bits of array length is used to set bitssize of array element. */
185*54e60f84SAndroid Build Coastguard Worker #define VA_TRACE_VVVA(dpy,id,op,v1,v2,n,a) do {          \
186*54e60f84SAndroid Build Coastguard Worker         if (va_trace_flag & VA_TRACE_FLAG_FTRACE) {      \
187*54e60f84SAndroid Build Coastguard Worker             int num = n | (sizeof(*a) << 16);            \
188*54e60f84SAndroid Build Coastguard Worker             VAEventData desc[4] = {{&v1, sizeof(v1)},    \
189*54e60f84SAndroid Build Coastguard Worker                                    {&v2, sizeof(v2)},    \
190*54e60f84SAndroid Build Coastguard Worker                                    {&num, sizeof(num)},  \
191*54e60f84SAndroid Build Coastguard Worker                                    {a, n*sizeof(*a)}};   \
192*54e60f84SAndroid Build Coastguard Worker             va_TraceEvent(dpy, id, op, 4, desc);         \
193*54e60f84SAndroid Build Coastguard Worker         }                                                \
194*54e60f84SAndroid Build Coastguard Worker     } while (0)
195*54e60f84SAndroid Build Coastguard Worker /** \brief VA_TRACE_VVVVA
196*54e60f84SAndroid Build Coastguard Worker  * trace interface to send out trace event with 3 data element and a dynamic length array data element, array length from variable.
197*54e60f84SAndroid Build Coastguard Worker  * high 16bits of array length is used to set bitssize of array element. */
198*54e60f84SAndroid Build Coastguard Worker #define VA_TRACE_VVVVA(dpy,id,op,v1,v2,v3,n,a) do {      \
199*54e60f84SAndroid Build Coastguard Worker         if (va_trace_flag & VA_TRACE_FLAG_FTRACE) {      \
200*54e60f84SAndroid Build Coastguard Worker             int num = n | (sizeof(*a) << 16);            \
201*54e60f84SAndroid Build Coastguard Worker             VAEventData desc[5] = {{&v1, sizeof(v1)},    \
202*54e60f84SAndroid Build Coastguard Worker                                    {&v2, sizeof(v2)},    \
203*54e60f84SAndroid Build Coastguard Worker                                    {&v3, sizeof(v3)},    \
204*54e60f84SAndroid Build Coastguard Worker                                    {&num, sizeof(num)},  \
205*54e60f84SAndroid Build Coastguard Worker                                    {a, n*sizeof(*a)}};   \
206*54e60f84SAndroid Build Coastguard Worker             va_TraceEvent(dpy, id, op, 5, desc);         \
207*54e60f84SAndroid Build Coastguard Worker         }                                                \
208*54e60f84SAndroid Build Coastguard Worker     } while (0)
209*54e60f84SAndroid Build Coastguard Worker /** \brief VA_TRACE_VVVVVA
210*54e60f84SAndroid Build Coastguard Worker  * trace interface to send out trace event with 4 data elsement and a dynamic length array data element, array length from variable.
211*54e60f84SAndroid Build Coastguard Worker  * high 16bits of array length is used to set bitssize of array element. */
212*54e60f84SAndroid Build Coastguard Worker #define VA_TRACE_VVVVVA(dpy,id,op,v1,v2,v3,v4,n,a) do {  \
213*54e60f84SAndroid Build Coastguard Worker         if (va_trace_flag & VA_TRACE_FLAG_FTRACE) {      \
214*54e60f84SAndroid Build Coastguard Worker             int num = n | (sizeof(*a) << 16);            \
215*54e60f84SAndroid Build Coastguard Worker             VAEventData desc[6] = {{&v1, sizeof(v1)},    \
216*54e60f84SAndroid Build Coastguard Worker                                    {&v2, sizeof(v2)},    \
217*54e60f84SAndroid Build Coastguard Worker                                    {&v3, sizeof(v3)},    \
218*54e60f84SAndroid Build Coastguard Worker                                    {&v4, sizeof(v4)},    \
219*54e60f84SAndroid Build Coastguard Worker                                    {&num, sizeof(num)},  \
220*54e60f84SAndroid Build Coastguard Worker                                    {a, n*sizeof(*a)}};   \
221*54e60f84SAndroid Build Coastguard Worker             va_TraceEvent(dpy, id, op, 6, desc);         \
222*54e60f84SAndroid Build Coastguard Worker         }                                                \
223*54e60f84SAndroid Build Coastguard Worker     } while (0)
224*54e60f84SAndroid Build Coastguard Worker 
225*54e60f84SAndroid Build Coastguard Worker /* add macro interface to support new data type combination */
226*54e60f84SAndroid Build Coastguard Worker 
227*54e60f84SAndroid Build Coastguard Worker 
228*54e60f84SAndroid Build Coastguard Worker /** \brief VA_TRACE_BUFFERS
229*54e60f84SAndroid Build Coastguard Worker  * trace interface to dump all data in va buffer ids into trace.
230*54e60f84SAndroid Build Coastguard Worker  * libva-utils will parse buffer into fields according to buffer type */
231*54e60f84SAndroid Build Coastguard Worker #define VA_TRACE_BUFFERS(dpy,ctx,num,buffers) do {                                            \
232*54e60f84SAndroid Build Coastguard Worker         if ((va_trace_flag & VA_TRACE_FLAG_FTRACE_BUFDATA) == VA_TRACE_FLAG_FTRACE_BUFDATA) { \
233*54e60f84SAndroid Build Coastguard Worker             va_TraceEventBuffers(dpy, ctx, num, buffers);                                     \
234*54e60f84SAndroid Build Coastguard Worker         }                                                                                     \
235*54e60f84SAndroid Build Coastguard Worker     } while (0)
236*54e60f84SAndroid Build Coastguard Worker 
237*54e60f84SAndroid Build Coastguard Worker DLL_HIDDEN
238*54e60f84SAndroid Build Coastguard Worker void va_TraceInit(VADisplay dpy);
239*54e60f84SAndroid Build Coastguard Worker DLL_HIDDEN
240*54e60f84SAndroid Build Coastguard Worker void va_TraceEnd(VADisplay dpy);
241*54e60f84SAndroid Build Coastguard Worker 
242*54e60f84SAndroid Build Coastguard Worker DLL_HIDDEN
243*54e60f84SAndroid Build Coastguard Worker void va_TraceInitialize(
244*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
245*54e60f84SAndroid Build Coastguard Worker     int *major_version,  /* out */
246*54e60f84SAndroid Build Coastguard Worker     int *minor_version   /* out */
247*54e60f84SAndroid Build Coastguard Worker );
248*54e60f84SAndroid Build Coastguard Worker 
249*54e60f84SAndroid Build Coastguard Worker DLL_HIDDEN
250*54e60f84SAndroid Build Coastguard Worker void va_TraceTerminate(
251*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy
252*54e60f84SAndroid Build Coastguard Worker );
253*54e60f84SAndroid Build Coastguard Worker 
254*54e60f84SAndroid Build Coastguard Worker DLL_HIDDEN
255*54e60f84SAndroid Build Coastguard Worker void va_TraceCreateConfig(
256*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
257*54e60f84SAndroid Build Coastguard Worker     VAProfile profile,
258*54e60f84SAndroid Build Coastguard Worker     VAEntrypoint entrypoint,
259*54e60f84SAndroid Build Coastguard Worker     VAConfigAttrib *attrib_list,
260*54e60f84SAndroid Build Coastguard Worker     int num_attribs,
261*54e60f84SAndroid Build Coastguard Worker     VAConfigID *config_id /* out */
262*54e60f84SAndroid Build Coastguard Worker );
263*54e60f84SAndroid Build Coastguard Worker 
264*54e60f84SAndroid Build Coastguard Worker DLL_HIDDEN
265*54e60f84SAndroid Build Coastguard Worker void va_TraceDestroyConfig(
266*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
267*54e60f84SAndroid Build Coastguard Worker     VAConfigID config_id
268*54e60f84SAndroid Build Coastguard Worker );
269*54e60f84SAndroid Build Coastguard Worker 
270*54e60f84SAndroid Build Coastguard Worker DLL_HIDDEN
271*54e60f84SAndroid Build Coastguard Worker void va_TraceCreateSurfaces(
272*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
273*54e60f84SAndroid Build Coastguard Worker     int width,
274*54e60f84SAndroid Build Coastguard Worker     int height,
275*54e60f84SAndroid Build Coastguard Worker     int format,
276*54e60f84SAndroid Build Coastguard Worker     int num_surfaces,
277*54e60f84SAndroid Build Coastguard Worker     VASurfaceID *surfaces,  /* out */
278*54e60f84SAndroid Build Coastguard Worker     VASurfaceAttrib    *attrib_list,
279*54e60f84SAndroid Build Coastguard Worker     unsigned int        num_attribs
280*54e60f84SAndroid Build Coastguard Worker );
281*54e60f84SAndroid Build Coastguard Worker 
282*54e60f84SAndroid Build Coastguard Worker DLL_HIDDEN
283*54e60f84SAndroid Build Coastguard Worker void va_TraceDestroySurfaces(
284*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
285*54e60f84SAndroid Build Coastguard Worker     VASurfaceID *surface_list,
286*54e60f84SAndroid Build Coastguard Worker     int num_surfaces
287*54e60f84SAndroid Build Coastguard Worker );
288*54e60f84SAndroid Build Coastguard Worker 
289*54e60f84SAndroid Build Coastguard Worker DLL_HIDDEN
290*54e60f84SAndroid Build Coastguard Worker void va_TraceCreateContext(
291*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
292*54e60f84SAndroid Build Coastguard Worker     VAConfigID config_id,
293*54e60f84SAndroid Build Coastguard Worker     int picture_width,
294*54e60f84SAndroid Build Coastguard Worker     int picture_height,
295*54e60f84SAndroid Build Coastguard Worker     int flag,
296*54e60f84SAndroid Build Coastguard Worker     VASurfaceID *render_targets,
297*54e60f84SAndroid Build Coastguard Worker     int num_render_targets,
298*54e60f84SAndroid Build Coastguard Worker     VAContextID *context        /* out */
299*54e60f84SAndroid Build Coastguard Worker );
300*54e60f84SAndroid Build Coastguard Worker 
301*54e60f84SAndroid Build Coastguard Worker DLL_HIDDEN
302*54e60f84SAndroid Build Coastguard Worker void va_TraceDestroyContext(
303*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
304*54e60f84SAndroid Build Coastguard Worker     VAContextID context
305*54e60f84SAndroid Build Coastguard Worker );
306*54e60f84SAndroid Build Coastguard Worker 
307*54e60f84SAndroid Build Coastguard Worker DLL_HIDDEN
308*54e60f84SAndroid Build Coastguard Worker void va_TraceCreateMFContext(
309*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
310*54e60f84SAndroid Build Coastguard Worker     VAContextID *mf_context /* out */
311*54e60f84SAndroid Build Coastguard Worker );
312*54e60f84SAndroid Build Coastguard Worker 
313*54e60f84SAndroid Build Coastguard Worker DLL_HIDDEN
314*54e60f84SAndroid Build Coastguard Worker void va_TraceMFAddContext(
315*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
316*54e60f84SAndroid Build Coastguard Worker     VAMFContextID mf_context,
317*54e60f84SAndroid Build Coastguard Worker     VAContextID context
318*54e60f84SAndroid Build Coastguard Worker );
319*54e60f84SAndroid Build Coastguard Worker 
320*54e60f84SAndroid Build Coastguard Worker DLL_HIDDEN
321*54e60f84SAndroid Build Coastguard Worker void va_TraceMFReleaseContext(
322*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
323*54e60f84SAndroid Build Coastguard Worker     VAMFContextID mf_context,
324*54e60f84SAndroid Build Coastguard Worker     VAContextID context
325*54e60f84SAndroid Build Coastguard Worker );
326*54e60f84SAndroid Build Coastguard Worker 
327*54e60f84SAndroid Build Coastguard Worker DLL_HIDDEN
328*54e60f84SAndroid Build Coastguard Worker void va_TraceMFSubmit(
329*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
330*54e60f84SAndroid Build Coastguard Worker     VAMFContextID mf_context,
331*54e60f84SAndroid Build Coastguard Worker     VAContextID *contexts,
332*54e60f84SAndroid Build Coastguard Worker     int num_contexts
333*54e60f84SAndroid Build Coastguard Worker );
334*54e60f84SAndroid Build Coastguard Worker 
335*54e60f84SAndroid Build Coastguard Worker DLL_HIDDEN
336*54e60f84SAndroid Build Coastguard Worker void va_TraceCreateBuffer(
337*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
338*54e60f84SAndroid Build Coastguard Worker     VAContextID context,    /* in */
339*54e60f84SAndroid Build Coastguard Worker     VABufferType type,      /* in */
340*54e60f84SAndroid Build Coastguard Worker     unsigned int size,      /* in */
341*54e60f84SAndroid Build Coastguard Worker     unsigned int num_elements,  /* in */
342*54e60f84SAndroid Build Coastguard Worker     void *data,         /* in */
343*54e60f84SAndroid Build Coastguard Worker     VABufferID *buf_id      /* out */
344*54e60f84SAndroid Build Coastguard Worker );
345*54e60f84SAndroid Build Coastguard Worker 
346*54e60f84SAndroid Build Coastguard Worker DLL_HIDDEN
347*54e60f84SAndroid Build Coastguard Worker void va_TraceDestroyBuffer(
348*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
349*54e60f84SAndroid Build Coastguard Worker     VABufferID buf_id    /* in */
350*54e60f84SAndroid Build Coastguard Worker );
351*54e60f84SAndroid Build Coastguard Worker 
352*54e60f84SAndroid Build Coastguard Worker DLL_HIDDEN
353*54e60f84SAndroid Build Coastguard Worker void va_TraceMapBuffer(
354*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
355*54e60f84SAndroid Build Coastguard Worker     VABufferID buf_id,  /* in */
356*54e60f84SAndroid Build Coastguard Worker     void **pbuf,     /* out */
357*54e60f84SAndroid Build Coastguard Worker     uint32_t flags  /* in */
358*54e60f84SAndroid Build Coastguard Worker );
359*54e60f84SAndroid Build Coastguard Worker 
360*54e60f84SAndroid Build Coastguard Worker 
361*54e60f84SAndroid Build Coastguard Worker DLL_HIDDEN
362*54e60f84SAndroid Build Coastguard Worker void va_TraceBeginPicture(
363*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
364*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
365*54e60f84SAndroid Build Coastguard Worker     VASurfaceID render_target
366*54e60f84SAndroid Build Coastguard Worker );
367*54e60f84SAndroid Build Coastguard Worker 
368*54e60f84SAndroid Build Coastguard Worker DLL_HIDDEN
369*54e60f84SAndroid Build Coastguard Worker void va_TraceRenderPicture(
370*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
371*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
372*54e60f84SAndroid Build Coastguard Worker     VABufferID *buffers,
373*54e60f84SAndroid Build Coastguard Worker     int num_buffers
374*54e60f84SAndroid Build Coastguard Worker );
375*54e60f84SAndroid Build Coastguard Worker 
376*54e60f84SAndroid Build Coastguard Worker DLL_HIDDEN
377*54e60f84SAndroid Build Coastguard Worker void va_TraceEndPicture(
378*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
379*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
380*54e60f84SAndroid Build Coastguard Worker     int endpic_done
381*54e60f84SAndroid Build Coastguard Worker );
382*54e60f84SAndroid Build Coastguard Worker 
383*54e60f84SAndroid Build Coastguard Worker DLL_HIDDEN
384*54e60f84SAndroid Build Coastguard Worker void va_TraceEndPictureExt(
385*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
386*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
387*54e60f84SAndroid Build Coastguard Worker     int endpic_done
388*54e60f84SAndroid Build Coastguard Worker );
389*54e60f84SAndroid Build Coastguard Worker 
390*54e60f84SAndroid Build Coastguard Worker DLL_HIDDEN
391*54e60f84SAndroid Build Coastguard Worker void va_TraceSyncSurface(
392*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
393*54e60f84SAndroid Build Coastguard Worker     VASurfaceID render_target
394*54e60f84SAndroid Build Coastguard Worker );
395*54e60f84SAndroid Build Coastguard Worker 
396*54e60f84SAndroid Build Coastguard Worker DLL_HIDDEN
397*54e60f84SAndroid Build Coastguard Worker void va_TraceSyncSurface2(
398*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
399*54e60f84SAndroid Build Coastguard Worker     VASurfaceID surface,
400*54e60f84SAndroid Build Coastguard Worker     uint64_t timeout_ns
401*54e60f84SAndroid Build Coastguard Worker );
402*54e60f84SAndroid Build Coastguard Worker 
403*54e60f84SAndroid Build Coastguard Worker DLL_HIDDEN
404*54e60f84SAndroid Build Coastguard Worker void va_TraceQuerySurfaceAttributes(
405*54e60f84SAndroid Build Coastguard Worker     VADisplay           dpy,
406*54e60f84SAndroid Build Coastguard Worker     VAConfigID          config,
407*54e60f84SAndroid Build Coastguard Worker     VASurfaceAttrib    *attrib_list,
408*54e60f84SAndroid Build Coastguard Worker     unsigned int       *num_attribs
409*54e60f84SAndroid Build Coastguard Worker );
410*54e60f84SAndroid Build Coastguard Worker 
411*54e60f84SAndroid Build Coastguard Worker DLL_HIDDEN
412*54e60f84SAndroid Build Coastguard Worker void va_TraceQuerySurfaceStatus(
413*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
414*54e60f84SAndroid Build Coastguard Worker     VASurfaceID render_target,
415*54e60f84SAndroid Build Coastguard Worker     VASurfaceStatus *status /* out */
416*54e60f84SAndroid Build Coastguard Worker );
417*54e60f84SAndroid Build Coastguard Worker 
418*54e60f84SAndroid Build Coastguard Worker DLL_HIDDEN
419*54e60f84SAndroid Build Coastguard Worker void va_TraceQuerySurfaceError(
420*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
421*54e60f84SAndroid Build Coastguard Worker     VASurfaceID surface,
422*54e60f84SAndroid Build Coastguard Worker     VAStatus error_status,
423*54e60f84SAndroid Build Coastguard Worker     void **error_info /*out*/
424*54e60f84SAndroid Build Coastguard Worker );
425*54e60f84SAndroid Build Coastguard Worker 
426*54e60f84SAndroid Build Coastguard Worker DLL_HIDDEN
427*54e60f84SAndroid Build Coastguard Worker void va_TraceSyncBuffer(
428*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
429*54e60f84SAndroid Build Coastguard Worker     VABufferID buf_id,
430*54e60f84SAndroid Build Coastguard Worker     uint64_t timeout_ns
431*54e60f84SAndroid Build Coastguard Worker );
432*54e60f84SAndroid Build Coastguard Worker 
433*54e60f84SAndroid Build Coastguard Worker DLL_HIDDEN
434*54e60f84SAndroid Build Coastguard Worker void va_TraceMaxNumDisplayAttributes(
435*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
436*54e60f84SAndroid Build Coastguard Worker     int number
437*54e60f84SAndroid Build Coastguard Worker );
438*54e60f84SAndroid Build Coastguard Worker 
439*54e60f84SAndroid Build Coastguard Worker DLL_HIDDEN
440*54e60f84SAndroid Build Coastguard Worker void va_TraceQueryDisplayAttributes(
441*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
442*54e60f84SAndroid Build Coastguard Worker     VADisplayAttribute *attr_list,  /* out */
443*54e60f84SAndroid Build Coastguard Worker     int *num_attributes         /* out */
444*54e60f84SAndroid Build Coastguard Worker );
445*54e60f84SAndroid Build Coastguard Worker 
446*54e60f84SAndroid Build Coastguard Worker DLL_HIDDEN
447*54e60f84SAndroid Build Coastguard Worker void va_TraceGetDisplayAttributes(
448*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
449*54e60f84SAndroid Build Coastguard Worker     VADisplayAttribute *attr_list,
450*54e60f84SAndroid Build Coastguard Worker     int num_attributes
451*54e60f84SAndroid Build Coastguard Worker );
452*54e60f84SAndroid Build Coastguard Worker 
453*54e60f84SAndroid Build Coastguard Worker DLL_HIDDEN
454*54e60f84SAndroid Build Coastguard Worker void va_TraceSetDisplayAttributes(
455*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
456*54e60f84SAndroid Build Coastguard Worker     VADisplayAttribute *attr_list,
457*54e60f84SAndroid Build Coastguard Worker     int num_attributes
458*54e60f84SAndroid Build Coastguard Worker );
459*54e60f84SAndroid Build Coastguard Worker 
460*54e60f84SAndroid Build Coastguard Worker /* extern function called by display side */
461*54e60f84SAndroid Build Coastguard Worker void va_TracePutSurface(
462*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
463*54e60f84SAndroid Build Coastguard Worker     VASurfaceID surface,
464*54e60f84SAndroid Build Coastguard Worker     void *draw, /* the target Drawable */
465*54e60f84SAndroid Build Coastguard Worker     short srcx,
466*54e60f84SAndroid Build Coastguard Worker     short srcy,
467*54e60f84SAndroid Build Coastguard Worker     unsigned short srcw,
468*54e60f84SAndroid Build Coastguard Worker     unsigned short srch,
469*54e60f84SAndroid Build Coastguard Worker     short destx,
470*54e60f84SAndroid Build Coastguard Worker     short desty,
471*54e60f84SAndroid Build Coastguard Worker     unsigned short destw,
472*54e60f84SAndroid Build Coastguard Worker     unsigned short desth,
473*54e60f84SAndroid Build Coastguard Worker     VARectangle *cliprects, /* client supplied clip list */
474*54e60f84SAndroid Build Coastguard Worker     unsigned int number_cliprects, /* number of clip rects in the clip list */
475*54e60f84SAndroid Build Coastguard Worker     unsigned int flags /* de-interlacing flags */
476*54e60f84SAndroid Build Coastguard Worker );
477*54e60f84SAndroid Build Coastguard Worker 
478*54e60f84SAndroid Build Coastguard Worker void va_TraceStatus(VADisplay dpy, const char * funcName, VAStatus status);
479*54e60f84SAndroid Build Coastguard Worker 
480*54e60f84SAndroid Build Coastguard Worker /** \brief va_TraceEvent
481*54e60f84SAndroid Build Coastguard Worker  * common trace interface to send out trace event with scatterd event data. */
482*54e60f84SAndroid Build Coastguard Worker DLL_HIDDEN
483*54e60f84SAndroid Build Coastguard Worker void va_TraceEvent(
484*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
485*54e60f84SAndroid Build Coastguard Worker     unsigned short id,
486*54e60f84SAndroid Build Coastguard Worker     unsigned short opcode,
487*54e60f84SAndroid Build Coastguard Worker     unsigned int num,
488*54e60f84SAndroid Build Coastguard Worker     VAEventData *desc);
489*54e60f84SAndroid Build Coastguard Worker 
490*54e60f84SAndroid Build Coastguard Worker /** \brief va_TraceEventBuffers
491*54e60f84SAndroid Build Coastguard Worker  * trace buffer interface to send out data in buffers. */
492*54e60f84SAndroid Build Coastguard Worker DLL_HIDDEN
493*54e60f84SAndroid Build Coastguard Worker void va_TraceEventBuffers(
494*54e60f84SAndroid Build Coastguard Worker     VADisplay dpy,
495*54e60f84SAndroid Build Coastguard Worker     VAContextID context,
496*54e60f84SAndroid Build Coastguard Worker     int num_buffers,
497*54e60f84SAndroid Build Coastguard Worker     VABufferID *buffers);
498*54e60f84SAndroid Build Coastguard Worker 
499*54e60f84SAndroid Build Coastguard Worker /** \brief va_TraceExportSurfaceHandle
500*54e60f84SAndroid Build Coastguard Worker  * trace exported surface handle. */
501*54e60f84SAndroid Build Coastguard Worker DLL_HIDDEN
502*54e60f84SAndroid Build Coastguard Worker void va_TraceExportSurfaceHandle(
503*54e60f84SAndroid Build Coastguard Worker     VADisplay        dpy,
504*54e60f84SAndroid Build Coastguard Worker     VASurfaceID      surfaceId,
505*54e60f84SAndroid Build Coastguard Worker     uint32_t         memType,
506*54e60f84SAndroid Build Coastguard Worker     uint32_t         flags,
507*54e60f84SAndroid Build Coastguard Worker     void             *descriptor);
508*54e60f84SAndroid Build Coastguard Worker 
509*54e60f84SAndroid Build Coastguard Worker #ifdef __cplusplus
510*54e60f84SAndroid Build Coastguard Worker }
511*54e60f84SAndroid Build Coastguard Worker #endif
512*54e60f84SAndroid Build Coastguard Worker 
513*54e60f84SAndroid Build Coastguard Worker 
514*54e60f84SAndroid Build Coastguard Worker #endif /* VA_TRACE_H */
515