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