cffb3c23d1fb723bf15b46d211e14ae476a792a1
[platform/core/uifw/coregl.git] / src / modules / tracepath / coregl_tracepath_gl.c
1 #include "coregl_tracepath.h"
2
3 #include <stdlib.h>
4
5 struct _Glbuf_Data
6 {
7         int obj_idx;
8         int width;
9         int height;
10         int bpp;
11         char format[80];
12
13         struct _Glbuf_Data *next;
14 };
15
16 static void
17 __addhash_glbuf_object(Glbuf_Data **glbuf, Glbuf_Data *target)
18 {
19         Glbuf_Data *data = glbuf[target->obj_idx % MTD_GLBUF_HASH_ARRAY];
20         if (data == NULL)
21         {
22                 glbuf[target->obj_idx % MTD_GLBUF_HASH_ARRAY] = target;
23         }
24         else
25         {
26                 while (data->next != NULL)
27                 {
28                         AST(data->obj_idx != target->obj_idx);
29                         data = data->next;
30                 }
31                 AST(data->obj_idx != target->obj_idx);
32                 data->next = target;
33         }
34         goto finish;
35
36 finish:
37         return;
38 }
39
40 static void
41 __removehash_glbuf_object(Glbuf_Data **glbuf, Glbuf_Data **target)
42 {
43         Glbuf_Data *data = glbuf[(*target)->obj_idx % MTD_GLBUF_HASH_ARRAY];
44         Glbuf_Data *prev = NULL;
45         while (data != NULL)
46         {
47                 if (data->obj_idx == (*target)->obj_idx)
48                 {
49                         if (prev != NULL)
50                                 prev->next = data->next;
51                         else
52                                 glbuf[(*target)->obj_idx % MTD_GLBUF_HASH_ARRAY] = data->next;
53
54                         free(*target);
55                         *target = NULL;
56                         break;
57                 }
58                 prev = data;
59                 data = data->next;
60         }
61         goto finish;
62
63 finish:
64         return;
65 }
66
67 static Glbuf_Data *
68 __findhash_glbuf_object(Glbuf_Data **glbuf, int obj_idx)
69 {
70         Glbuf_Data *data = glbuf[obj_idx % MTD_GLBUF_HASH_ARRAY];
71         while (data != NULL)
72         {
73                 if (data->obj_idx == obj_idx)
74                         break;
75                 data = data->next;
76         }
77         goto finish;
78
79 finish:
80         return data;
81 }
82
83 void
84 tracepath_glbuf_clear(Glbuf_Data **glbuf)
85 {
86         int i;
87
88         for (i = 0; i < MTD_GLBUF_HASH_ARRAY; i++)
89         {
90                 Glbuf_Data *data = glbuf[i];
91
92                 while (data)
93                 {
94                         Glbuf_Data *delitm = data;
95                         data = data->next;
96                         free(delitm);
97                         delitm = NULL;
98                 }
99         }
100 }
101
102 static void
103 _add_glbuf_object(Glbuf_Data **glbuf, int obj_idx, const char *obj_type, int width, int height, int bpp, const char *format)
104 {
105         Glbuf_Data *data = __findhash_glbuf_object(glbuf, obj_idx);
106         if (data == NULL)
107         {
108                 data = (Glbuf_Data *)calloc(1, sizeof(Glbuf_Data));
109                 data->obj_idx = obj_idx;
110                 __addhash_glbuf_object(glbuf, data);
111         }
112         else
113         {
114                 // Update
115                 {
116                         char ment[MAX_TRACE_NAME_LENGTH];
117                         sprintf(ment, "%s(%4dx%4d %s)", obj_type, data->width, data->height, data->format);
118                         _COREGL_TRACE_MEM_REMOVE(ment, data->width * data->height * data->bpp);
119                 }
120         }
121
122         data->width = width;
123         data->height = height;
124         data->bpp = bpp;
125         sprintf(data->format, "%s", format);
126
127         {
128                 char ment[MAX_TRACE_NAME_LENGTH];
129                 sprintf(ment, "%s(%4dx%4d %s)", obj_type, data->width, data->height, data->format);
130                 _COREGL_TRACE_MEM_ADD(ment, data->width * data->height * data->bpp);
131         }
132         goto finish;
133
134 finish:
135         return;
136 }
137
138 static void
139 _remove_glbuf_object(Glbuf_Data **glbuf, int obj_idx, const char *obj_type)
140 {
141         Glbuf_Data *data = __findhash_glbuf_object(glbuf, obj_idx);
142         if (data == NULL)
143         {
144                 COREGL_WRN("\E[40;31;1mError deleting %s object %d. (is not created)\E[0m\n", obj_type, obj_idx);
145                 return;
146         }
147
148         {
149                 char ment[MAX_TRACE_NAME_LENGTH];
150                 sprintf(ment, "%s(%4dx%4d %s)", obj_type, data->width, data->height, data->format);
151                 _COREGL_TRACE_MEM_REMOVE(ment, data->width * data->height * data->bpp);
152         }
153
154         __removehash_glbuf_object(glbuf, &data);
155         goto finish;
156
157 finish:
158         return;
159 }
160
161
162 #ifdef COREGL_TRACEPATH_TRACE_SURFACE_INFO
163 void
164 _surface_trace_set(int set, GLint fbname, GLenum attachment, MY_MODULE_TSTATE *tstate)
165 {
166         int atttype = _COREGL_INT_INIT_VALUE;
167    _orig_tracepath_glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, attachment, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, &atttype);
168         AST(atttype != _COREGL_INT_INIT_VALUE);
169         int attname = _COREGL_INT_INIT_VALUE;
170    _orig_tracepath_glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, attachment, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME, &attname);
171         AST(attname != _COREGL_INT_INIT_VALUE);
172         if (set == 1)
173         {
174                 switch (atttype)
175                 {
176                         case GL_TEXTURE:
177                                 //COREGL_LOG("FBO DUMPING BEGIN = (TEX)0x%X\n", attname);
178                                 {
179                                         char name[256];
180                                         sprintf(name, "FBOTEX_0x%X", attname);
181                                         tracepath_surface_trace_add(name, tstate->ctx->dpy, tstate->ctx->handle, tstate->surf_draw, fbname, attname, 0, -1, -1, -1, NULL);
182                                 }
183                                 break;
184                         case GL_RENDERBUFFER:
185                                 //COREGL_LOG("FBO DUMPING BEGIN = (RB)0x%X\n", attname);
186                                 {
187                                         char name[256];
188                                         sprintf(name, "FBORB_0x%X", attname);
189                                         tracepath_surface_trace_add(name, tstate->ctx->dpy, tstate->ctx->handle, tstate->surf_draw, fbname, 0, attname, -1, -1, -1, NULL);
190                                 }
191                                 break;
192                 }
193         }
194         else
195         {
196                 switch (atttype)
197                 {
198                         case GL_TEXTURE:
199                                 //COREGL_LOG("FBO DUMPING END = (TEX)0x%X\n", attname);
200                                 {
201                                         char name[256];
202                                         sprintf(name, "FBOTEX_0x%X", attname);
203                                         tracepath_surface_trace_add(name, tstate->ctx->dpy, tstate->ctx->handle, tstate->surf_draw, 0, attname, 0, -1, -1, -1, NULL);
204                                 }
205                                 break;
206                         case GL_RENDERBUFFER:
207                                 //COREGL_LOG("FBO DUMPING END = (RB)0x%X\n", attname);
208                                 {
209                                         char name[256];
210                                         sprintf(name, "FBORB_0x%X", attname);
211                                         tracepath_surface_trace_add(name, tstate->ctx->dpy, tstate->ctx->handle, tstate->surf_draw, 0, 0, attname, -1, -1, -1, NULL);
212                                 }
213                                 break;
214                 }
215         }
216 }
217
218 void
219 tracepath_fbdump_update(GLint set)
220 {
221         if (trace_surface_flag == 1)
222         {
223                 GLint fbname = _COREGL_INT_INIT_VALUE;
224                 _orig_tracepath_glGetIntegerv(GL_FRAMEBUFFER_BINDING, &fbname);
225                 AST(fbname != _COREGL_INT_INIT_VALUE);
226                 if (fbname != 0)
227                 {
228                         MY_MODULE_TSTATE *tstate = NULL;
229
230                         GET_MY_TSTATE(tstate, get_current_thread_state());
231                         AST(tstate != NULL);
232                         if (tstate->ctx != NULL)
233                         {
234                                 _surface_trace_set(set, fbname, GL_COLOR_ATTACHMENT0, tstate);
235 //                              _surface_trace_set(set, fbname, GL_DEPTH_ATTACHMENT, tstate);
236 //                              _surface_trace_set(set, fbname, GL_STENCIL_ATTACHMENT, tstate);
237                         }
238                 }
239         }
240 }
241 #endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
242
243
244
245
246
247
248 /* OpenGL ES 2.0 */
249
250 void
251 tracepath_glActiveTexture(GLenum texture)
252 {
253         _COREGL_TRACEPATH_FUNC_BEGIN();
254         _orig_tracepath_glActiveTexture(texture);
255
256         goto finish;
257
258 finish:
259         _COREGL_TRACEPATH_FUNC_END();
260 }
261
262 void
263 tracepath_glAttachShader(GLuint program, GLuint shader)
264 {
265         _COREGL_TRACEPATH_FUNC_BEGIN();
266         _orig_tracepath_glAttachShader(program, shader);
267
268         goto finish;
269
270 finish:
271         _COREGL_TRACEPATH_FUNC_END();
272 }
273
274 void
275 tracepath_glBindAttribLocation(GLuint program, GLuint index, const char* name)
276 {
277         _COREGL_TRACEPATH_FUNC_BEGIN();
278         _orig_tracepath_glBindAttribLocation(program, index, name);
279
280         goto finish;
281
282 finish:
283         _COREGL_TRACEPATH_FUNC_END();
284 }
285
286 void
287 tracepath_glBindBuffer(GLenum target, GLuint buffer)
288 {
289         _COREGL_TRACEPATH_FUNC_BEGIN();
290         _orig_tracepath_glBindBuffer(target, buffer);
291
292         goto finish;
293
294 finish:
295         _COREGL_TRACEPATH_FUNC_END();
296 }
297
298 void
299 tracepath_glBindFramebuffer(GLenum target, GLuint framebuffer)
300 {
301         _COREGL_TRACEPATH_FUNC_BEGIN();
302
303 #ifdef COREGL_TRACEPATH_TRACE_SURFACE_INFO
304         if (unlikely(trace_surface_flag == 1))
305         {
306                 GLint oldfb;
307                 _orig_tracepath_glGetIntegerv(GL_FRAMEBUFFER_BINDING, &oldfb);
308                 if (oldfb != 0)
309                 {
310                         _COREGL_TRACE_SURFACE(0, 2, "GLBINDFBO");
311                 }
312
313                 tracepath_fbdump_update(0);
314         }
315 #endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
316
317         _orig_tracepath_glBindFramebuffer(target, framebuffer);
318
319 #ifdef COREGL_TRACEPATH_TRACE_SURFACE_INFO
320         if (unlikely(trace_surface_flag == 1))
321         {
322                 tracepath_fbdump_update(1);
323         }
324 #endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
325
326         goto finish;
327
328 finish:
329         _COREGL_TRACEPATH_FUNC_END();
330 }
331
332 void
333 tracepath_glBindRenderbuffer(GLenum target, GLuint renderbuffer)
334 {
335         _COREGL_TRACEPATH_FUNC_BEGIN();
336         _orig_tracepath_glBindRenderbuffer(target, renderbuffer);
337
338         goto finish;
339
340 finish:
341         _COREGL_TRACEPATH_FUNC_END();
342 }
343
344 void
345 tracepath_glBindTexture(GLenum target, GLuint texture)
346 {
347         _COREGL_TRACEPATH_FUNC_BEGIN();
348
349         _COREGL_TRACE_SURFACE(0, 1, "GLBINDTEXTURE");
350         _orig_tracepath_glBindTexture(target, texture);
351
352         goto finish;
353
354 finish:
355         _COREGL_TRACEPATH_FUNC_END();
356 }
357
358 void
359 tracepath_glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
360 {
361         _COREGL_TRACEPATH_FUNC_BEGIN();
362         _orig_tracepath_glBlendColor(red, green, blue, alpha);
363
364         goto finish;
365
366 finish:
367         _COREGL_TRACEPATH_FUNC_END();
368 }
369
370 void
371 tracepath_glBlendEquation(GLenum mode)
372 {
373         _COREGL_TRACEPATH_FUNC_BEGIN();
374         _orig_tracepath_glBlendEquation(mode);
375
376         goto finish;
377
378 finish:
379         _COREGL_TRACEPATH_FUNC_END();
380 }
381
382 void
383 tracepath_glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha)
384 {
385         _COREGL_TRACEPATH_FUNC_BEGIN();
386         _orig_tracepath_glBlendEquationSeparate(modeRGB, modeAlpha);
387
388         goto finish;
389
390 finish:
391         _COREGL_TRACEPATH_FUNC_END();
392 }
393
394 void
395 tracepath_glBlendFunc(GLenum sfactor, GLenum dfactor)
396 {
397         _COREGL_TRACEPATH_FUNC_BEGIN();
398         _orig_tracepath_glBlendFunc(sfactor, dfactor);
399
400         goto finish;
401
402 finish:
403         _COREGL_TRACEPATH_FUNC_END();
404 }
405
406 void
407 tracepath_glBlendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
408 {
409         _COREGL_TRACEPATH_FUNC_BEGIN();
410         _orig_tracepath_glBlendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha);
411
412         goto finish;
413
414 finish:
415         _COREGL_TRACEPATH_FUNC_END();
416 }
417
418 void
419 tracepath_glBufferData(GLenum target, GLsizeiptr size, const void* data, GLenum usage)
420 {
421         _COREGL_TRACEPATH_FUNC_BEGIN();
422         _orig_tracepath_glBufferData(target, size, data, usage);
423
424         goto finish;
425
426 finish:
427         _COREGL_TRACEPATH_FUNC_END();
428 }
429
430 void
431 tracepath_glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const void* data)
432 {
433         _COREGL_TRACEPATH_FUNC_BEGIN();
434         _orig_tracepath_glBufferSubData(target, offset, size, data);
435
436         goto finish;
437
438 finish:
439         _COREGL_TRACEPATH_FUNC_END();
440 }
441
442 GLenum
443 tracepath_glCheckFramebufferStatus(GLenum target)
444 {
445         GLenum ret = GL_NONE;
446
447         _COREGL_TRACEPATH_FUNC_BEGIN();
448         ret = _orig_tracepath_glCheckFramebufferStatus(target);
449
450         goto finish;
451
452 finish:
453         _COREGL_TRACEPATH_FUNC_END();
454         return ret;
455 }
456
457 void
458 tracepath_glClear(GLbitfield mask)
459 {
460         _COREGL_TRACEPATH_FUNC_BEGIN();
461         _orig_tracepath_glClear(mask);
462
463         goto finish;
464
465 finish:
466         _COREGL_TRACEPATH_FUNC_END();
467 }
468
469 void
470 tracepath_glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
471 {
472         _COREGL_TRACEPATH_FUNC_BEGIN();
473         _orig_tracepath_glClearColor(red, green, blue, alpha);
474
475         goto finish;
476
477 finish:
478         _COREGL_TRACEPATH_FUNC_END();
479 }
480
481 void
482 tracepath_glClearDepthf(GLclampf depth)
483 {
484         _COREGL_TRACEPATH_FUNC_BEGIN();
485         _orig_tracepath_glClearDepthf(depth);
486
487         goto finish;
488
489 finish:
490         _COREGL_TRACEPATH_FUNC_END();
491 }
492
493 void
494 tracepath_glClearStencil(GLint s)
495 {
496         _COREGL_TRACEPATH_FUNC_BEGIN();
497         _orig_tracepath_glClearStencil(s);
498
499         goto finish;
500
501 finish:
502         _COREGL_TRACEPATH_FUNC_END();
503 }
504
505 void
506 tracepath_glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
507 {
508         _COREGL_TRACEPATH_FUNC_BEGIN();
509         _orig_tracepath_glColorMask(red, green, blue, alpha);
510
511         goto finish;
512
513 finish:
514         _COREGL_TRACEPATH_FUNC_END();
515 }
516
517 void
518 tracepath_glCompileShader(GLuint shader)
519 {
520         _COREGL_TRACEPATH_FUNC_BEGIN();
521         _orig_tracepath_glCompileShader(shader);
522
523         goto finish;
524
525 finish:
526         _COREGL_TRACEPATH_FUNC_END();
527 }
528
529 void
530 tracepath_glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data)
531 {
532         _COREGL_TRACEPATH_FUNC_BEGIN();
533         _orig_tracepath_glCompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data);
534
535         goto finish;
536
537 finish:
538         _COREGL_TRACEPATH_FUNC_END();
539 }
540
541 void
542 tracepath_glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* data)
543 {
544         _COREGL_TRACEPATH_FUNC_BEGIN();
545         _orig_tracepath_glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data);
546
547         goto finish;
548
549 finish:
550         _COREGL_TRACEPATH_FUNC_END();
551 }
552
553 void
554 tracepath_glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
555 {
556         _COREGL_TRACEPATH_FUNC_BEGIN();
557         _orig_tracepath_glCopyTexImage2D(target, level, internalformat, x, y, width, height, border);
558
559         goto finish;
560
561 finish:
562         _COREGL_TRACEPATH_FUNC_END();
563 }
564
565 void
566 tracepath_glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
567 {
568         _COREGL_TRACEPATH_FUNC_BEGIN();
569         _orig_tracepath_glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
570
571         goto finish;
572
573 finish:
574         _COREGL_TRACEPATH_FUNC_END();
575 }
576
577 GLuint
578 tracepath_glCreateProgram(void)
579 {
580         GLuint ret = _COREGL_INT_INIT_VALUE;
581
582         _COREGL_TRACEPATH_FUNC_BEGIN();
583         ret = _orig_tracepath_glCreateProgram();
584
585         goto finish;
586
587 finish:
588         _COREGL_TRACEPATH_FUNC_END();
589         return ret;
590 }
591
592 GLuint
593 tracepath_glCreateShader(GLenum type)
594 {
595         GLuint ret = _COREGL_INT_INIT_VALUE;
596         _COREGL_TRACEPATH_FUNC_BEGIN();
597         ret = _orig_tracepath_glCreateShader(type);
598
599         goto finish;
600
601 finish:
602         _COREGL_TRACEPATH_FUNC_END();
603         return ret;
604 }
605
606 void
607 tracepath_glCullFace(GLenum mode)
608 {
609         _COREGL_TRACEPATH_FUNC_BEGIN();
610         _orig_tracepath_glCullFace(mode);
611
612         goto finish;
613
614 finish:
615         _COREGL_TRACEPATH_FUNC_END();
616 }
617
618 void
619 tracepath_glDeleteBuffers(GLsizei n, const GLuint* buffers)
620 {
621         _COREGL_TRACEPATH_FUNC_BEGIN();
622         _orig_tracepath_glDeleteBuffers(n, buffers);
623
624         goto finish;
625
626 finish:
627         _COREGL_TRACEPATH_FUNC_END();
628 }
629
630 void
631 tracepath_glDeleteFramebuffers(GLsizei n, const GLuint* framebuffers)
632 {
633         _COREGL_TRACEPATH_FUNC_BEGIN();
634
635 #ifdef COREGL_TRACEPATH_TRACE_SURFACE_INFO
636         tracepath_fbdump_update(0);
637 #endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
638
639         _orig_tracepath_glDeleteFramebuffers(n, framebuffers);
640
641 #ifdef COREGL_TRACEPATH_TRACE_SURFACE_INFO
642         tracepath_fbdump_update(1);
643 #endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
644
645         goto finish;
646
647 finish:
648         _COREGL_TRACEPATH_FUNC_END();
649 }
650
651 void
652 tracepath_glDeleteProgram(GLuint program)
653 {
654         _COREGL_TRACEPATH_FUNC_BEGIN();
655         _orig_tracepath_glDeleteProgram(program);
656
657         goto finish;
658
659 finish:
660         _COREGL_TRACEPATH_FUNC_END();
661 }
662
663 void
664 tracepath_glDeleteRenderbuffers(GLsizei n, const GLuint* renderbuffers)
665 {
666         _COREGL_TRACEPATH_FUNC_BEGIN();
667
668 #ifdef COREGL_TRACEPATH_TRACE_SURFACE_INFO
669         tracepath_fbdump_update(0);
670 #endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
671
672         _orig_tracepath_glDeleteRenderbuffers(n, renderbuffers);
673
674 #ifdef COREGL_TRACEPATH_TRACE_SURFACE_INFO
675         tracepath_fbdump_update(1);
676 #endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
677
678         goto finish;
679
680 finish:
681         _COREGL_TRACEPATH_FUNC_END();
682 #ifdef COREGL_TRACEPATH_TRACE_MEMUSE_INFO
683         if (trace_mem_flag == 1)
684         {
685                 MY_MODULE_TSTATE *tstate = NULL;
686
687                 GET_MY_TSTATE(tstate, get_current_thread_state());
688                 AST(tstate != NULL);
689                 if (tstate->ctx != NULL)
690                 {
691                         for (int i = 0; i < n; i++)
692                         {
693                                 if (renderbuffers[i] == 0) continue;
694                                 _remove_glbuf_object(tstate->ctx->sostate->glbuf_rb, renderbuffers[i], "Renderbuffer");
695                         }
696                 }
697         }
698 #endif // COREGL_TRACEPATH_TRACE_MEMUSE_INFO
699 }
700
701 void
702 tracepath_glDeleteShader(GLuint shader)
703 {
704         _COREGL_TRACEPATH_FUNC_BEGIN();
705         _orig_tracepath_glDeleteShader(shader);
706
707         goto finish;
708
709 finish:
710         _COREGL_TRACEPATH_FUNC_END();
711 }
712
713 void
714 tracepath_glDeleteTextures(GLsizei n, const GLuint* textures)
715 {
716         _COREGL_TRACEPATH_FUNC_BEGIN();
717
718 #ifdef COREGL_TRACEPATH_TRACE_SURFACE_INFO
719         tracepath_fbdump_update(0);
720 #endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
721
722         _orig_tracepath_glDeleteTextures(n, textures);
723
724 #ifdef COREGL_TRACEPATH_TRACE_SURFACE_INFO
725         tracepath_fbdump_update(1);
726 #endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
727
728         goto finish;
729
730 finish:
731         _COREGL_TRACEPATH_FUNC_END();
732 #ifdef COREGL_TRACEPATH_TRACE_MEMUSE_INFO
733         if (trace_mem_flag == 1)
734         {
735                 MY_MODULE_TSTATE *tstate = NULL;
736
737                 GET_MY_TSTATE(tstate, get_current_thread_state());
738                 AST(tstate != NULL);
739                 if (tstate->ctx != NULL)
740                 {
741                         for (int i = 0; i < n; i++)
742                         {
743                                 if (textures[i] == 0) continue;
744                                 _remove_glbuf_object(tstate->ctx->sostate->glbuf_tex, textures[i], "Texture");
745                         }
746                 }
747         }
748 #endif // COREGL_TRACEPATH_TRACE_MEMUSE_INFO
749 }
750
751 void
752 tracepath_glDepthFunc(GLenum func)
753 {
754         _COREGL_TRACEPATH_FUNC_BEGIN();
755         _orig_tracepath_glDepthFunc(func);
756
757         goto finish;
758
759 finish:
760         _COREGL_TRACEPATH_FUNC_END();
761 }
762
763 void
764 tracepath_glDepthMask(GLboolean flag)
765 {
766         _COREGL_TRACEPATH_FUNC_BEGIN();
767         _orig_tracepath_glDepthMask(flag);
768
769         goto finish;
770
771 finish:
772         _COREGL_TRACEPATH_FUNC_END();
773 }
774
775 void
776 tracepath_glDepthRangef(GLclampf zNear, GLclampf zFar)
777 {
778         _COREGL_TRACEPATH_FUNC_BEGIN();
779         _orig_tracepath_glDepthRangef(zNear, zFar);
780
781         goto finish;
782
783 finish:
784         _COREGL_TRACEPATH_FUNC_END();
785 }
786
787 void
788 tracepath_glDetachShader(GLuint program, GLuint shader)
789 {
790         _COREGL_TRACEPATH_FUNC_BEGIN();
791         _orig_tracepath_glDetachShader(program, shader);
792
793         goto finish;
794
795 finish:
796         _COREGL_TRACEPATH_FUNC_END();
797 }
798
799 void
800 tracepath_glDisable(GLenum cap)
801 {
802         _COREGL_TRACEPATH_FUNC_BEGIN();
803         _orig_tracepath_glDisable(cap);
804
805         goto finish;
806
807 finish:
808         _COREGL_TRACEPATH_FUNC_END();
809 }
810
811 void
812 tracepath_glDisableVertexAttribArray(GLuint index)
813 {
814         _COREGL_TRACEPATH_FUNC_BEGIN();
815         _orig_tracepath_glDisableVertexAttribArray(index);
816
817         goto finish;
818
819 finish:
820         _COREGL_TRACEPATH_FUNC_END();
821 }
822
823 void
824 tracepath_glDrawArrays(GLenum mode, GLint first, GLsizei count)
825 {
826         _COREGL_TRACEPATH_FUNC_BEGIN();
827         _orig_tracepath_glDrawArrays(mode, first, count);
828
829         goto finish;
830
831 finish:
832         _COREGL_TRACEPATH_FUNC_END();
833 #ifdef COREGL_TRACEPATH_TRACE_SURFACE_INFO
834         if (trace_surface_flag == 1)
835         {
836                 GLint fbname = _COREGL_INT_INIT_VALUE;
837                 _orig_tracepath_glGetIntegerv(GL_FRAMEBUFFER_BINDING, &fbname);
838                 AST(fbname != _COREGL_INT_INIT_VALUE);
839                 if (fbname == 0)
840                 {
841                         char name[256];
842                         EGLint btype;
843                         _orig_tracepath_eglQuerySurface(_orig_tracepath_eglGetCurrentDisplay(), _orig_tracepath_eglGetCurrentSurface(EGL_DRAW), EGL_RENDER_BUFFER, &btype);
844                         if (btype == EGL_SINGLE_BUFFER)
845                                 sprintf(name, "EGLPIXMAP_%p", _orig_tracepath_eglGetCurrentSurface(EGL_DRAW));
846                         else
847                                 sprintf(name, "EGLWINDOW_%p", _orig_tracepath_eglGetCurrentSurface(EGL_DRAW));
848                         tracepath_surface_trace_add(name, _orig_tracepath_eglGetCurrentDisplay(), _orig_tracepath_eglGetCurrentContext(), _orig_tracepath_eglGetCurrentSurface(EGL_DRAW), 0, 0, 0, 0, 0, 0, NULL);
849                 }
850    }
851 #endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
852 }
853
854 void
855 tracepath_glDrawElements(GLenum mode, GLsizei count, GLenum type, const void* indices)
856 {
857         _COREGL_TRACEPATH_FUNC_BEGIN();
858         _orig_tracepath_glDrawElements(mode, count, type, indices);
859
860         goto finish;
861
862 finish:
863         _COREGL_TRACEPATH_FUNC_END();
864 #ifdef COREGL_TRACEPATH_TRACE_SURFACE_INFO
865         if (trace_surface_flag == 1)
866         {
867                 GLint fbname = _COREGL_INT_INIT_VALUE;
868                 _orig_tracepath_glGetIntegerv(GL_FRAMEBUFFER_BINDING, &fbname);
869                 AST(fbname != _COREGL_INT_INIT_VALUE);
870                 if (fbname == 0)
871                 {
872                         char name[256];
873                         EGLint btype;
874                         _orig_tracepath_eglQuerySurface(_orig_tracepath_eglGetCurrentDisplay(), _orig_tracepath_eglGetCurrentSurface(EGL_DRAW), EGL_RENDER_BUFFER, &btype);
875                         if (btype == EGL_SINGLE_BUFFER)
876                                 sprintf(name, "EGLPIXMAP_%p", _orig_tracepath_eglGetCurrentSurface(EGL_DRAW));
877                         else
878                                 sprintf(name, "EGLWINDOW_%p", _orig_tracepath_eglGetCurrentSurface(EGL_DRAW));
879                         tracepath_surface_trace_add(name, _orig_tracepath_eglGetCurrentDisplay(), _orig_tracepath_eglGetCurrentContext(), _orig_tracepath_eglGetCurrentSurface(EGL_DRAW), 0, 0, 0, 0, 0, 0, NULL);
880                 }
881    }
882 #endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
883 }
884
885 void
886 tracepath_glEnable(GLenum cap)
887 {
888         _COREGL_TRACEPATH_FUNC_BEGIN();
889         _orig_tracepath_glEnable(cap);
890
891         goto finish;
892
893 finish:
894         _COREGL_TRACEPATH_FUNC_END();
895 }
896
897 void
898 tracepath_glEnableVertexAttribArray(GLuint index)
899 {
900         _COREGL_TRACEPATH_FUNC_BEGIN();
901         _orig_tracepath_glEnableVertexAttribArray(index);
902
903         goto finish;
904
905 finish:
906         _COREGL_TRACEPATH_FUNC_END();
907 }
908
909 void
910 tracepath_glFinish(void)
911 {
912         _COREGL_TRACEPATH_FUNC_BEGIN();
913         _orig_tracepath_glFinish();
914
915         _COREGL_TRACE_SURFACE(0, 0, "GLFINISH");
916
917         goto finish;
918
919 finish:
920         _COREGL_TRACEPATH_FUNC_END();
921         _COREGL_TRACE_API_OUTPUT(0);
922         _COREGL_TRACE_MEM_OUTPUT(0);
923 }
924
925 void
926 tracepath_glFlush(void)
927 {
928         _COREGL_TRACEPATH_FUNC_BEGIN();
929         _orig_tracepath_glFlush();
930
931         _COREGL_TRACE_SURFACE(0, 0, "GLFLUSH");
932
933         goto finish;
934
935 finish:
936         _COREGL_TRACEPATH_FUNC_END();
937         _COREGL_TRACE_API_OUTPUT(0);
938         _COREGL_TRACE_MEM_OUTPUT(0);
939 }
940
941 void
942 tracepath_glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
943 {
944         _COREGL_TRACEPATH_FUNC_BEGIN();
945
946 #ifdef COREGL_TRACEPATH_TRACE_SURFACE_INFO
947         tracepath_fbdump_update(0);
948 #endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
949
950         _orig_tracepath_glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer);
951
952 #ifdef COREGL_TRACEPATH_TRACE_SURFACE_INFO
953         tracepath_fbdump_update(1);
954 #endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
955
956         goto finish;
957
958 finish:
959         _COREGL_TRACEPATH_FUNC_END();
960 }
961
962 void
963 tracepath_glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
964 {
965         _COREGL_TRACEPATH_FUNC_BEGIN();
966
967 #ifdef COREGL_TRACEPATH_TRACE_SURFACE_INFO
968         tracepath_fbdump_update(0);
969 #endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
970
971         _orig_tracepath_glFramebufferTexture2D(target, attachment, textarget, texture, level);
972
973 #ifdef COREGL_TRACEPATH_TRACE_SURFACE_INFO
974         tracepath_fbdump_update(1);
975 #endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
976
977         goto finish;
978
979 finish:
980         _COREGL_TRACEPATH_FUNC_END();
981 }
982
983 void
984 tracepath_glFrontFace(GLenum mode)
985 {
986         _COREGL_TRACEPATH_FUNC_BEGIN();
987         _orig_tracepath_glFrontFace(mode);
988
989         goto finish;
990
991 finish:
992         _COREGL_TRACEPATH_FUNC_END();
993 }
994
995 void
996 tracepath_glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat* params)
997 {
998         _COREGL_TRACEPATH_FUNC_BEGIN();
999         _orig_tracepath_glGetVertexAttribfv(index, pname, params);
1000
1001
1002         goto finish;
1003
1004 finish:
1005         _COREGL_TRACEPATH_FUNC_END();
1006 }
1007
1008 void
1009 tracepath_glGetVertexAttribiv(GLuint index, GLenum pname, GLint* params)
1010 {
1011         _COREGL_TRACEPATH_FUNC_BEGIN();
1012         _orig_tracepath_glGetVertexAttribiv(index, pname, params);
1013
1014
1015         goto finish;
1016
1017 finish:
1018         _COREGL_TRACEPATH_FUNC_END();
1019 }
1020
1021 void
1022 tracepath_glGetVertexAttribPointerv(GLuint index, GLenum pname, void** pointer)
1023 {
1024         _COREGL_TRACEPATH_FUNC_BEGIN();
1025         _orig_tracepath_glGetVertexAttribPointerv(index, pname, pointer);
1026
1027
1028
1029         goto finish;
1030
1031 finish:
1032         _COREGL_TRACEPATH_FUNC_END();
1033 }
1034
1035 void
1036 tracepath_glHint(GLenum target, GLenum mode)
1037 {
1038         _COREGL_TRACEPATH_FUNC_BEGIN();
1039         _orig_tracepath_glHint(target, mode);
1040
1041         goto finish;
1042
1043 finish:
1044         _COREGL_TRACEPATH_FUNC_END();
1045 }
1046
1047 void
1048 tracepath_glGenBuffers(GLsizei n, GLuint* buffers)
1049 {
1050         _COREGL_TRACEPATH_FUNC_BEGIN();
1051         _orig_tracepath_glGenBuffers(n, buffers);
1052
1053         goto finish;
1054
1055 finish:
1056         _COREGL_TRACEPATH_FUNC_END();
1057 }
1058
1059 void
1060 tracepath_glGenerateMipmap(GLenum target)
1061 {
1062         _COREGL_TRACEPATH_FUNC_BEGIN();
1063         _orig_tracepath_glGenerateMipmap(target);
1064
1065         goto finish;
1066
1067 finish:
1068         _COREGL_TRACEPATH_FUNC_END();
1069 }
1070
1071 void
1072 tracepath_glGenFramebuffers(GLsizei n, GLuint* framebuffers)
1073 {
1074         _COREGL_TRACEPATH_FUNC_BEGIN();
1075         _orig_tracepath_glGenFramebuffers(n, framebuffers);
1076
1077         goto finish;
1078
1079 finish:
1080         _COREGL_TRACEPATH_FUNC_END();
1081 }
1082
1083 void
1084 tracepath_glGenRenderbuffers(GLsizei n, GLuint* renderbuffers)
1085 {
1086         _COREGL_TRACEPATH_FUNC_BEGIN();
1087         _orig_tracepath_glGenRenderbuffers(n, renderbuffers);
1088
1089         goto finish;
1090
1091 finish:
1092         _COREGL_TRACEPATH_FUNC_END();
1093 #ifdef COREGL_TRACEPATH_TRACE_MEMUSE_INFO
1094         if (trace_mem_flag == 1)
1095         {
1096                 MY_MODULE_TSTATE *tstate = NULL;
1097
1098                 GET_MY_TSTATE(tstate, get_current_thread_state());
1099                 AST(tstate != NULL);
1100                 if (tstate->ctx != NULL)
1101                 {
1102                         for (int i = 0; i < n; i++)
1103                         {
1104                                 if (renderbuffers[i] == 0) continue;
1105                                 _add_glbuf_object(tstate->ctx->sostate->glbuf_rb, renderbuffers[i], "Renderbuffer", 0, 0, 0, "Unknown");
1106                         }
1107                 }
1108         }
1109 #endif // COREGL_TRACEPATH_TRACE_MEMUSE_INFO
1110 }
1111
1112 void
1113 tracepath_glGenTextures(GLsizei n, GLuint* textures)
1114 {
1115         _COREGL_TRACEPATH_FUNC_BEGIN();
1116         _orig_tracepath_glGenTextures(n, textures);
1117
1118         goto finish;
1119
1120 finish:
1121         _COREGL_TRACEPATH_FUNC_END();
1122 #ifdef COREGL_TRACEPATH_TRACE_MEMUSE_INFO
1123         if (trace_mem_flag == 1)
1124         {
1125                 MY_MODULE_TSTATE *tstate = NULL;
1126
1127                 GET_MY_TSTATE(tstate, get_current_thread_state());
1128                 AST(tstate != NULL);
1129                 if (tstate->ctx != NULL)
1130                 {
1131                         for (int i = 0; i < n; i++)
1132                         {
1133                                 if (textures[i] == 0) continue;
1134                                 _add_glbuf_object(tstate->ctx->sostate->glbuf_tex, textures[i], "Texture", 0, 0, 0, "Unknown");
1135                         }
1136                 }
1137         }
1138 #endif // COREGL_TRACEPATH_TRACE_MEMUSE_INFO
1139 }
1140
1141 void
1142 tracepath_glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, char* name)
1143 {
1144         _COREGL_TRACEPATH_FUNC_BEGIN();
1145         _orig_tracepath_glGetActiveAttrib(program, index, bufsize, length, size, type, name);
1146
1147         goto finish;
1148
1149 finish:
1150         _COREGL_TRACEPATH_FUNC_END();
1151 }
1152
1153 void
1154 tracepath_glGetActiveUniform(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, char* name)
1155 {
1156         _COREGL_TRACEPATH_FUNC_BEGIN();
1157         _orig_tracepath_glGetActiveUniform(program, index, bufsize, length, size, type, name);
1158
1159         goto finish;
1160
1161 finish:
1162         _COREGL_TRACEPATH_FUNC_END();
1163 }
1164
1165 void
1166 tracepath_glGetAttachedShaders(GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders)
1167 {
1168         _COREGL_TRACEPATH_FUNC_BEGIN();
1169         _orig_tracepath_glGetAttachedShaders(program, maxcount, count, shaders);
1170
1171         goto finish;
1172
1173 finish:
1174         _COREGL_TRACEPATH_FUNC_END();
1175 }
1176
1177 int
1178 tracepath_glGetAttribLocation(GLuint program, const char* name)
1179 {
1180         int ret = _COREGL_INT_INIT_VALUE;
1181         _COREGL_TRACEPATH_FUNC_BEGIN();
1182         ret = _orig_tracepath_glGetAttribLocation(program, name);
1183
1184         goto finish;
1185
1186 finish:
1187         _COREGL_TRACEPATH_FUNC_END();
1188         return ret;
1189 }
1190
1191 void
1192 tracepath_glGetBooleanv(GLenum pname, GLboolean* params)
1193 {
1194         _COREGL_TRACEPATH_FUNC_BEGIN();
1195         _orig_tracepath_glGetBooleanv(pname, params);
1196
1197         goto finish;
1198
1199 finish:
1200         _COREGL_TRACEPATH_FUNC_END();
1201 }
1202
1203 void
1204 tracepath_glGetBufferParameteriv(GLenum target, GLenum pname, GLint* params)
1205 {
1206         _COREGL_TRACEPATH_FUNC_BEGIN();
1207         _orig_tracepath_glGetBufferParameteriv(target, pname, params);
1208
1209         goto finish;
1210
1211 finish:
1212         _COREGL_TRACEPATH_FUNC_END();
1213 }
1214
1215 GLenum
1216 tracepath_glGetError(void)
1217 {
1218         GLenum ret = GL_NONE;
1219
1220         _COREGL_TRACEPATH_FUNC_BEGIN();
1221         ret = _orig_tracepath_glGetError();
1222         goto finish;
1223
1224 finish:
1225         _COREGL_TRACEPATH_FUNC_END();
1226         return ret;
1227 }
1228
1229 void
1230 tracepath_glGetFloatv(GLenum pname, GLfloat* params)
1231 {
1232         _COREGL_TRACEPATH_FUNC_BEGIN();
1233         _orig_tracepath_glGetFloatv(pname, params);
1234
1235         goto finish;
1236
1237 finish:
1238         _COREGL_TRACEPATH_FUNC_END();
1239 }
1240
1241 void
1242 tracepath_glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint* params)
1243 {
1244         _COREGL_TRACEPATH_FUNC_BEGIN();
1245         _orig_tracepath_glGetFramebufferAttachmentParameteriv(target, attachment, pname, params);
1246
1247         goto finish;
1248
1249 finish:
1250         _COREGL_TRACEPATH_FUNC_END();
1251 }
1252
1253 void
1254 tracepath_glGetIntegerv(GLenum pname, GLint* params)
1255 {
1256         _COREGL_TRACEPATH_FUNC_BEGIN();
1257         _orig_tracepath_glGetIntegerv(pname, params);
1258
1259         goto finish;
1260
1261 finish:
1262         _COREGL_TRACEPATH_FUNC_END();
1263 }
1264
1265 void
1266 tracepath_glGetProgramiv(GLuint program, GLenum pname, GLint* params)
1267 {
1268         _COREGL_TRACEPATH_FUNC_BEGIN();
1269         _orig_tracepath_glGetProgramiv(program, pname, params);
1270
1271         goto finish;
1272
1273 finish:
1274         _COREGL_TRACEPATH_FUNC_END();
1275 }
1276
1277 void
1278 tracepath_glGetProgramInfoLog(GLuint program, GLsizei bufsize, GLsizei* length, char* infolog)
1279 {
1280         _COREGL_TRACEPATH_FUNC_BEGIN();
1281         _orig_tracepath_glGetProgramInfoLog(program, bufsize, length, infolog);
1282
1283         goto finish;
1284
1285 finish:
1286         _COREGL_TRACEPATH_FUNC_END();
1287 }
1288
1289 void
1290 tracepath_glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint* params)
1291 {
1292         _COREGL_TRACEPATH_FUNC_BEGIN();
1293         _orig_tracepath_glGetRenderbufferParameteriv(target, pname, params);
1294
1295         goto finish;
1296
1297 finish:
1298         _COREGL_TRACEPATH_FUNC_END();
1299 }
1300
1301 void
1302 tracepath_glGetShaderiv(GLuint shader, GLenum pname, GLint* params)
1303 {
1304         _COREGL_TRACEPATH_FUNC_BEGIN();
1305         _orig_tracepath_glGetShaderiv(shader, pname, params);
1306
1307         goto finish;
1308
1309 finish:
1310         _COREGL_TRACEPATH_FUNC_END();
1311 }
1312
1313 void
1314 tracepath_glGetShaderInfoLog(GLuint shader, GLsizei bufsize, GLsizei* length, char* infolog)
1315 {
1316         _COREGL_TRACEPATH_FUNC_BEGIN();
1317         _orig_tracepath_glGetShaderInfoLog(shader, bufsize, length, infolog);
1318
1319         goto finish;
1320
1321 finish:
1322         _COREGL_TRACEPATH_FUNC_END();
1323 }
1324
1325 void
1326 tracepath_glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision)
1327 {
1328         _COREGL_TRACEPATH_FUNC_BEGIN();
1329         _orig_tracepath_glGetShaderPrecisionFormat(shadertype, precisiontype, range, precision);
1330
1331         goto finish;
1332
1333 finish:
1334         _COREGL_TRACEPATH_FUNC_END();
1335 }
1336
1337 void
1338 tracepath_glGetShaderSource(GLuint shader, GLsizei bufsize, GLsizei* length, char* source)
1339 {
1340         _COREGL_TRACEPATH_FUNC_BEGIN();
1341         _orig_tracepath_glGetShaderSource(shader, bufsize, length, source);
1342
1343         goto finish;
1344
1345 finish:
1346         _COREGL_TRACEPATH_FUNC_END();
1347 }
1348
1349 const GLubyte *
1350 tracepath_glGetString(GLenum name)
1351 {
1352         const GLubyte *ret = NULL;
1353
1354         _COREGL_TRACEPATH_FUNC_BEGIN();
1355         ret = _orig_tracepath_glGetString(name);
1356
1357         goto finish;
1358
1359 finish:
1360         _COREGL_TRACEPATH_FUNC_END();
1361         return ret;
1362 }
1363
1364 void
1365 tracepath_glGetTexParameterfv(GLenum target, GLenum pname, GLfloat* params)
1366 {
1367         _COREGL_TRACEPATH_FUNC_BEGIN();
1368         _orig_tracepath_glGetTexParameterfv(target, pname, params);
1369
1370         goto finish;
1371
1372 finish:
1373         _COREGL_TRACEPATH_FUNC_END();
1374 }
1375
1376 void
1377 tracepath_glGetTexParameteriv(GLenum target, GLenum pname, GLint* params)
1378 {
1379         _COREGL_TRACEPATH_FUNC_BEGIN();
1380         _orig_tracepath_glGetTexParameteriv(target, pname, params);
1381
1382         goto finish;
1383
1384 finish:
1385         _COREGL_TRACEPATH_FUNC_END();
1386 }
1387
1388 void
1389 tracepath_glGetUniformfv(GLuint program, GLint location, GLfloat* params)
1390 {
1391         _COREGL_TRACEPATH_FUNC_BEGIN();
1392         _orig_tracepath_glGetUniformfv(program, location, params);
1393
1394         goto finish;
1395
1396 finish:
1397         _COREGL_TRACEPATH_FUNC_END();
1398 }
1399
1400 void
1401 tracepath_glGetUniformiv(GLuint program, GLint location, GLint* params)
1402 {
1403         _COREGL_TRACEPATH_FUNC_BEGIN();
1404         _orig_tracepath_glGetUniformiv(program, location, params);
1405
1406         goto finish;
1407
1408 finish:
1409         _COREGL_TRACEPATH_FUNC_END();
1410 }
1411 int
1412 tracepath_glGetUniformLocation(GLuint program, const char* name)
1413 {
1414         int ret = _COREGL_INT_INIT_VALUE;
1415
1416         _COREGL_TRACEPATH_FUNC_BEGIN();
1417         ret = _orig_tracepath_glGetUniformLocation(program, name);
1418
1419         goto finish;
1420
1421 finish:
1422         _COREGL_TRACEPATH_FUNC_END();
1423         return ret;
1424 }
1425
1426 GLboolean
1427 tracepath_glIsBuffer(GLuint buffer)
1428 {
1429         GLboolean ret = GL_FALSE;
1430
1431         _COREGL_TRACEPATH_FUNC_BEGIN();
1432         ret = _orig_tracepath_glIsBuffer(buffer);
1433
1434         goto finish;
1435
1436 finish:
1437         _COREGL_TRACEPATH_FUNC_END();
1438         return ret;
1439 }
1440
1441 GLboolean
1442 tracepath_glIsEnabled(GLenum cap)
1443 {
1444         GLboolean ret = GL_FALSE;
1445
1446         _COREGL_TRACEPATH_FUNC_BEGIN();
1447         ret = _orig_tracepath_glIsEnabled(cap);
1448
1449         goto finish;
1450
1451 finish:
1452         _COREGL_TRACEPATH_FUNC_END();
1453         return ret;
1454 }
1455
1456 GLboolean
1457 tracepath_glIsFramebuffer(GLuint framebuffer)
1458 {
1459         GLboolean ret = GL_FALSE;
1460
1461         _COREGL_TRACEPATH_FUNC_BEGIN();
1462         ret = _orig_tracepath_glIsFramebuffer(framebuffer);
1463
1464         goto finish;
1465
1466 finish:
1467         _COREGL_TRACEPATH_FUNC_END();
1468         return ret;
1469 }
1470
1471 GLboolean
1472 tracepath_glIsProgram(GLuint program)
1473 {
1474         GLboolean ret;
1475         _COREGL_TRACEPATH_FUNC_BEGIN();
1476         ret = _orig_tracepath_glIsProgram(program);
1477
1478         goto finish;
1479
1480 finish:
1481         _COREGL_TRACEPATH_FUNC_END();
1482         return ret;
1483 }
1484
1485 GLboolean
1486 tracepath_glIsRenderbuffer(GLuint renderbuffer)
1487 {
1488         GLboolean ret;
1489         _COREGL_TRACEPATH_FUNC_BEGIN();
1490         ret = _orig_tracepath_glIsRenderbuffer(renderbuffer);
1491
1492         goto finish;
1493
1494 finish:
1495         _COREGL_TRACEPATH_FUNC_END();
1496         return ret;
1497 }
1498
1499 GLboolean
1500 tracepath_glIsShader(GLuint shader)
1501 {
1502         GLboolean ret;
1503         _COREGL_TRACEPATH_FUNC_BEGIN();
1504         ret = _orig_tracepath_glIsShader(shader);
1505
1506         goto finish;
1507
1508 finish:
1509         _COREGL_TRACEPATH_FUNC_END();
1510         return ret;
1511 }
1512
1513 GLboolean
1514 tracepath_glIsTexture(GLuint texture)
1515 {
1516         GLboolean ret;
1517         _COREGL_TRACEPATH_FUNC_BEGIN();
1518         ret = _orig_tracepath_glIsTexture(texture);
1519
1520         goto finish;
1521
1522 finish:
1523         _COREGL_TRACEPATH_FUNC_END();
1524         return ret;
1525 }
1526
1527 void
1528 tracepath_glLineWidth(GLfloat width)
1529 {
1530         _COREGL_TRACEPATH_FUNC_BEGIN();
1531         _orig_tracepath_glLineWidth(width);
1532
1533         goto finish;
1534
1535 finish:
1536         _COREGL_TRACEPATH_FUNC_END();
1537 }
1538
1539 void
1540 tracepath_glLinkProgram(GLuint program)
1541 {
1542         _COREGL_TRACEPATH_FUNC_BEGIN();
1543         _orig_tracepath_glLinkProgram(program);
1544
1545         goto finish;
1546
1547 finish:
1548         _COREGL_TRACEPATH_FUNC_END();
1549 }
1550
1551 void
1552 tracepath_glPixelStorei(GLenum pname, GLint param)
1553 {
1554         _COREGL_TRACEPATH_FUNC_BEGIN();
1555         _orig_tracepath_glPixelStorei(pname, param);
1556
1557         goto finish;
1558
1559 finish:
1560         _COREGL_TRACEPATH_FUNC_END();
1561 }
1562
1563 void
1564 tracepath_glPolygonOffset(GLfloat factor, GLfloat units)
1565 {
1566         _COREGL_TRACEPATH_FUNC_BEGIN();
1567         _orig_tracepath_glPolygonOffset(factor, units);
1568
1569         goto finish;
1570
1571 finish:
1572         _COREGL_TRACEPATH_FUNC_END();
1573 }
1574
1575 void
1576 tracepath_glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void* pixels)
1577 {
1578         _COREGL_TRACEPATH_FUNC_BEGIN();
1579         _orig_tracepath_glReadPixels(x, y, width, height, format, type, pixels);
1580
1581         goto finish;
1582
1583 finish:
1584         _COREGL_TRACEPATH_FUNC_END();
1585 }
1586
1587 void
1588 tracepath_glReleaseShaderCompiler(void)
1589 {
1590         _COREGL_TRACEPATH_FUNC_BEGIN();
1591         _orig_tracepath_glReleaseShaderCompiler();
1592
1593         goto finish;
1594
1595 finish:
1596         _COREGL_TRACEPATH_FUNC_END();
1597 }
1598
1599 void
1600 tracepath_glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
1601 {
1602         _COREGL_TRACEPATH_FUNC_BEGIN();
1603
1604         _orig_tracepath_glRenderbufferStorage(target, internalformat, width, height);
1605
1606         goto finish;
1607
1608 finish:
1609         _COREGL_TRACEPATH_FUNC_END();
1610 #ifdef COREGL_TRACEPATH_TRACE_MEMUSE_INFO
1611         if (trace_mem_flag == 1)
1612         {
1613                 MY_MODULE_TSTATE *tstate = NULL;
1614
1615                 GET_MY_TSTATE(tstate, get_current_thread_state());
1616                 AST(tstate != NULL);
1617                 if (tstate->ctx != NULL)
1618                 {
1619                         int objidx = _COREGL_INT_INIT_VALUE;
1620                         _orig_tracepath_glGetIntegerv(GL_RENDERBUFFER_BINDING, &objidx);
1621                         AST(objidx != _COREGL_INT_INIT_VALUE);
1622
1623                         // Detect byte per pixel
1624                         int bpp = 0;
1625                         char formatment[80];
1626                         switch (internalformat)
1627                         {
1628                                 case GL_ALPHA: sprintf(formatment, "ALPHA"); bpp = 1; break;
1629                                 case GL_LUMINANCE: sprintf(formatment, "LUMINANCE"); bpp = 1; break;
1630                                 case GL_LUMINANCE_ALPHA: sprintf(formatment, "LUMINANCE_ALPHA"); bpp = 1; break;
1631                                 case GL_RGB: sprintf(formatment, "RGB"); bpp = 2; break;
1632                                 case GL_RGBA: sprintf(formatment, "RGBA"); bpp = 4; break;
1633                                 case 0x80E1: sprintf(formatment, "BGRA_EXT"); bpp = 4; break;
1634                                 case 0x84F9: sprintf(formatment, "DEPTH_STENCIL_OES"); bpp = 4; break;
1635                                 case GL_DEPTH_COMPONENT : sprintf(formatment, "DEPTH_COMPONENT"); bpp = 1; break;
1636                                 case 0x81A5: sprintf(formatment, "DEPTH_COMPONENT16_ARB"); bpp = 2; break;
1637                                 case 0x81A6: sprintf(formatment, "DEPTH_COMPONENT24_ARB"); bpp = 3; break;
1638                                 case 0x81A7: sprintf(formatment, "DEPTH_COMPONENT32_ARB"); bpp = 4; break;
1639                                 case 0x8D46 : sprintf(formatment, "STENCIL_INDEX1_OES"); bpp = 1; break;
1640                                 case 0x8D47 : sprintf(formatment, "STENCIL_INDEX4_OES"); bpp = 1; break;
1641                                 case 0x8D48 : sprintf(formatment, "STENCIL_INDEX8_OES"); bpp = 1; break;
1642                                 default: sprintf(formatment, "0x%X", internalformat); bpp = 0; break;
1643                         }
1644
1645                         _add_glbuf_object(tstate->ctx->sostate->glbuf_rb, objidx, "Renderbuffer", width, height, bpp, formatment);
1646                 }
1647         }
1648 #endif // COREGL_TRACEPATH_TRACE_MEMUSE_INFO
1649 #ifdef COREGL_TRACEPATH_TRACE_SURFACE_INFO
1650         if (trace_surface_flag == 1)
1651         {
1652                 MY_MODULE_TSTATE *tstate = NULL;
1653
1654                 GET_MY_TSTATE(tstate, get_current_thread_state());
1655                 AST(tstate != NULL);
1656                 if (tstate->ctx != NULL)
1657                 {
1658                         int objidx = _COREGL_INT_INIT_VALUE;
1659                         _orig_tracepath_glGetIntegerv(GL_RENDERBUFFER_BINDING, &objidx);
1660                         AST(objidx != _COREGL_INT_INIT_VALUE);
1661
1662                         {
1663                                 int channel = 0;
1664                                 switch (internalformat)
1665                                 {
1666                                         case GL_ALPHA:
1667                                         case GL_LUMINANCE:
1668                                         case GL_DEPTH_COMPONENT :
1669                                         case 0x81A5:
1670                                         case 0x81A6:
1671                                         case 0x81A7:
1672                                         case 0x8D46 :
1673                                         case 0x8D47 :
1674                                         case 0x8D48 : channel = 1; break;
1675                                         case GL_LUMINANCE_ALPHA:
1676                                         case 0x84F9: channel = 2; break;
1677                                         case GL_RGB: channel = 3; break;
1678                                         case GL_RGBA:
1679                                         case 0x80E1: channel = 4; break;
1680                                 }
1681
1682                                 char name[256];
1683                                 sprintf(name, "FBORB_%d", objidx);
1684                                 tracepath_surface_trace_add(name, tstate->ctx->dpy, tstate->ctx->handle, tstate->surf_draw, -1, 0, objidx, width, height, channel, NULL);
1685                         }
1686                 }
1687         }
1688 #endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
1689 }
1690
1691 void
1692 tracepath_glSampleCoverage(GLclampf value, GLboolean invert)
1693 {
1694         _COREGL_TRACEPATH_FUNC_BEGIN();
1695         _orig_tracepath_glSampleCoverage(value, invert);
1696
1697         goto finish;
1698
1699 finish:
1700         _COREGL_TRACEPATH_FUNC_END();
1701 }
1702
1703 void
1704 tracepath_glScissor(GLint x, GLint y, GLsizei width, GLsizei height)
1705 {
1706         _COREGL_TRACEPATH_FUNC_BEGIN();
1707         _orig_tracepath_glScissor(x, y, width, height);
1708
1709         goto finish;
1710
1711 finish:
1712         _COREGL_TRACEPATH_FUNC_END();
1713 }
1714
1715 void
1716 tracepath_glShaderBinary(GLsizei n, const GLuint* shaders, GLenum binaryformat, const void* binary, GLsizei length)
1717 {
1718         _COREGL_TRACEPATH_FUNC_BEGIN();
1719         _orig_tracepath_glShaderBinary(n, shaders, binaryformat, binary, length);
1720
1721         goto finish;
1722
1723 finish:
1724         _COREGL_TRACEPATH_FUNC_END();
1725 }
1726
1727 void
1728 tracepath_glShaderSource(GLuint shader, GLsizei count, const char** string, const GLint* length)
1729 {
1730         _COREGL_TRACEPATH_FUNC_BEGIN();
1731         _orig_tracepath_glShaderSource(shader, count, string, length);
1732
1733         goto finish;
1734
1735 finish:
1736         _COREGL_TRACEPATH_FUNC_END();
1737 }
1738
1739 void
1740 tracepath_glStencilFunc(GLenum func, GLint ref, GLuint mask)
1741 {
1742         _COREGL_TRACEPATH_FUNC_BEGIN();
1743         _orig_tracepath_glStencilFunc(func, ref, mask);
1744
1745         goto finish;
1746
1747 finish:
1748         _COREGL_TRACEPATH_FUNC_END();
1749 }
1750
1751 void
1752 tracepath_glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask)
1753 {
1754         _COREGL_TRACEPATH_FUNC_BEGIN();
1755         _orig_tracepath_glStencilFuncSeparate(face, func, ref, mask);
1756
1757         goto finish;
1758
1759 finish:
1760         _COREGL_TRACEPATH_FUNC_END();
1761 }
1762
1763 void
1764 tracepath_glStencilMask(GLuint mask)
1765 {
1766         _COREGL_TRACEPATH_FUNC_BEGIN();
1767         _orig_tracepath_glStencilMask(mask);
1768
1769         goto finish;
1770
1771 finish:
1772         _COREGL_TRACEPATH_FUNC_END();
1773 }
1774
1775 void
1776 tracepath_glStencilMaskSeparate(GLenum face, GLuint mask)
1777 {
1778         _COREGL_TRACEPATH_FUNC_BEGIN();
1779         _orig_tracepath_glStencilMaskSeparate(face, mask);
1780
1781         goto finish;
1782
1783 finish:
1784         _COREGL_TRACEPATH_FUNC_END();
1785 }
1786
1787 void
1788 tracepath_glStencilOp(GLenum fail, GLenum zfail, GLenum zpass)
1789 {
1790         _COREGL_TRACEPATH_FUNC_BEGIN();
1791         _orig_tracepath_glStencilOp(fail, zfail, zpass);
1792
1793         goto finish;
1794
1795 finish:
1796         _COREGL_TRACEPATH_FUNC_END();
1797 }
1798
1799 void
1800 tracepath_glStencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass)
1801 {
1802         _COREGL_TRACEPATH_FUNC_BEGIN();
1803         _orig_tracepath_glStencilOpSeparate(face, fail, zfail, zpass);
1804
1805         goto finish;
1806
1807 finish:
1808         _COREGL_TRACEPATH_FUNC_END();
1809 }
1810
1811 void
1812 tracepath_glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void* pixels)
1813 {
1814         _COREGL_TRACEPATH_FUNC_BEGIN();
1815         _orig_tracepath_glTexImage2D(target, level, internalformat, width, height, border, format, type, pixels);
1816
1817         goto finish;
1818
1819 finish:
1820         _COREGL_TRACEPATH_FUNC_END();
1821 #ifdef COREGL_TRACEPATH_TRACE_MEMUSE_INFO
1822         if (trace_mem_flag == 1)
1823         {
1824                 MY_MODULE_TSTATE *tstate = NULL;
1825
1826                 GET_MY_TSTATE(tstate, get_current_thread_state());
1827                 AST(tstate != NULL);
1828                 if (tstate->ctx != NULL)
1829                 {
1830                         int objidx = _COREGL_INT_INIT_VALUE;
1831                         _orig_tracepath_glGetIntegerv(GL_TEXTURE_BINDING_2D, &objidx);
1832                         AST(objidx != _COREGL_INT_INIT_VALUE);
1833
1834                         // Detect byte per pixel
1835                         int bpp = 0;
1836                         char formatment[80];
1837                         switch (internalformat)
1838                         {
1839                                 case GL_ALPHA: sprintf(formatment, "ALPHA"); bpp = 1; break;
1840                                 case GL_LUMINANCE: sprintf(formatment, "LUMINANCE"); bpp = 1; break;
1841                                 case GL_LUMINANCE_ALPHA: sprintf(formatment, "LUMINANCE_ALPHA"); bpp = 1; break;
1842                                 case GL_RGB: sprintf(formatment, "RGB"); bpp = 2; break;
1843                                 case GL_RGBA: sprintf(formatment, "RGBA"); bpp = 4; break;
1844                                 case 0x80E1: sprintf(formatment, "BGRA_EXT"); bpp = 4; break;
1845                                 case 0x84F9: sprintf(formatment, "DEPTH_STENCIL_OES"); bpp = 4; break;
1846                                 case GL_DEPTH_COMPONENT : sprintf(formatment, "DEPTH_COMPONENT"); bpp = 1; break;
1847                                 case 0x81A5: sprintf(formatment, "DEPTH_COMPONENT16_ARB"); bpp = 2; break;
1848                                 case 0x81A6: sprintf(formatment, "DEPTH_COMPONENT24_ARB"); bpp = 3; break;
1849                                 case 0x81A7: sprintf(formatment, "DEPTH_COMPONENT32_ARB"); bpp = 4; break;
1850                                 case 0x8D46 : sprintf(formatment, "STENCIL_INDEX1_OES"); bpp = 1; break;
1851                                 case 0x8D47 : sprintf(formatment, "STENCIL_INDEX4_OES"); bpp = 1; break;
1852                                 case 0x8D48 : sprintf(formatment, "STENCIL_INDEX8_OES"); bpp = 1; break;
1853                                 default: sprintf(formatment, "0x%X", internalformat); bpp = 0; break;
1854                         }
1855
1856                         _add_glbuf_object(tstate->ctx->sostate->glbuf_tex, objidx, "Texture", width, height, bpp, formatment);
1857                 }
1858         }
1859 #endif // COREGL_TRACEPATH_TRACE_MEMUSE_INFO
1860 #ifdef COREGL_TRACEPATH_TRACE_SURFACE_INFO
1861         if (trace_surface_flag == 1)
1862         {
1863                 MY_MODULE_TSTATE *tstate = NULL;
1864
1865                 GET_MY_TSTATE(tstate, get_current_thread_state());
1866                 AST(tstate != NULL);
1867                 if (tstate->ctx != NULL)
1868                 {
1869                         int objidx = _COREGL_INT_INIT_VALUE;
1870                         _orig_tracepath_glGetIntegerv(GL_TEXTURE_BINDING_2D, &objidx);
1871                         AST(objidx != _COREGL_INT_INIT_VALUE);
1872
1873                         {
1874                                 int channel = 0;
1875                                 switch (internalformat)
1876                                 {
1877                                         case GL_ALPHA:
1878                                         case GL_LUMINANCE:
1879                                         case GL_DEPTH_COMPONENT :
1880                                         case 0x81A5:
1881                                         case 0x81A6:
1882                                         case 0x81A7:
1883                                         case 0x8D46 :
1884                                         case 0x8D47 :
1885                                         case 0x8D48 : channel = 1; break;
1886                                         case GL_LUMINANCE_ALPHA:
1887                                         case 0x84F9: channel = 2; break;
1888                                         case GL_RGB: channel = 3; break;
1889                                         case GL_RGBA:
1890                                         case 0x80E1: channel = 4; break;
1891                                 }
1892
1893                                 char name[256];
1894                                 sprintf(name, "FBOTEX_0x%X", objidx);
1895                                 tracepath_surface_trace_add(name, tstate->ctx->dpy, tstate->ctx->handle, tstate->surf_draw, -1, objidx, 0, width, height, channel, NULL);
1896                         }
1897                 }
1898         }
1899 #endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
1900 }
1901
1902 void
1903 tracepath_glTexParameterf(GLenum target, GLenum pname, GLfloat param)
1904 {
1905         _COREGL_TRACEPATH_FUNC_BEGIN();
1906         _orig_tracepath_glTexParameterf(target, pname, param);
1907
1908         goto finish;
1909
1910 finish:
1911         _COREGL_TRACEPATH_FUNC_END();
1912 }
1913
1914 void
1915 tracepath_glTexParameterfv(GLenum target, GLenum pname, const GLfloat* params)
1916 {
1917         _COREGL_TRACEPATH_FUNC_BEGIN();
1918         _orig_tracepath_glTexParameterfv(target, pname, params);
1919
1920         goto finish;
1921
1922 finish:
1923         _COREGL_TRACEPATH_FUNC_END();
1924 }
1925
1926 void
1927 tracepath_glTexParameteri(GLenum target, GLenum pname, GLint param)
1928 {
1929         _COREGL_TRACEPATH_FUNC_BEGIN();
1930         _orig_tracepath_glTexParameteri(target, pname, param);
1931
1932         goto finish;
1933
1934 finish:
1935         _COREGL_TRACEPATH_FUNC_END();
1936 }
1937
1938 void
1939 tracepath_glTexParameteriv(GLenum target, GLenum pname, const GLint* params)
1940 {
1941         _COREGL_TRACEPATH_FUNC_BEGIN();
1942         _orig_tracepath_glTexParameteriv(target, pname, params);
1943
1944         goto finish;
1945
1946 finish:
1947         _COREGL_TRACEPATH_FUNC_END();
1948 }
1949
1950 void
1951 tracepath_glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void* pixels)
1952 {
1953         _COREGL_TRACEPATH_FUNC_BEGIN();
1954         _orig_tracepath_glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels);
1955
1956         goto finish;
1957
1958 finish:
1959         _COREGL_TRACEPATH_FUNC_END();
1960 }
1961
1962 void
1963 tracepath_glUniform1f(GLint location, GLfloat x)
1964 {
1965         _COREGL_TRACEPATH_FUNC_BEGIN();
1966         _orig_tracepath_glUniform1f(location, x);
1967
1968         goto finish;
1969
1970 finish:
1971         _COREGL_TRACEPATH_FUNC_END();
1972 }
1973
1974 void
1975 tracepath_glUniform1fv(GLint location, GLsizei count, const GLfloat* v)
1976 {
1977         _COREGL_TRACEPATH_FUNC_BEGIN();
1978         _orig_tracepath_glUniform1fv(location, count, v);
1979
1980         goto finish;
1981
1982 finish:
1983         _COREGL_TRACEPATH_FUNC_END();
1984 }
1985
1986 void
1987 tracepath_glUniform1i(GLint location, GLint x)
1988 {
1989         _COREGL_TRACEPATH_FUNC_BEGIN();
1990         _orig_tracepath_glUniform1i(location, x);
1991
1992         goto finish;
1993
1994 finish:
1995         _COREGL_TRACEPATH_FUNC_END();
1996 }
1997
1998 void
1999 tracepath_glUniform1iv(GLint location, GLsizei count, const GLint* v)
2000 {
2001         _COREGL_TRACEPATH_FUNC_BEGIN();
2002         _orig_tracepath_glUniform1iv(location, count, v);
2003
2004         goto finish;
2005
2006 finish:
2007         _COREGL_TRACEPATH_FUNC_END();
2008 }
2009
2010 void
2011 tracepath_glUniform2f(GLint location, GLfloat x, GLfloat y)
2012 {
2013         _COREGL_TRACEPATH_FUNC_BEGIN();
2014         _orig_tracepath_glUniform2f(location, x, y);
2015
2016         goto finish;
2017
2018 finish:
2019         _COREGL_TRACEPATH_FUNC_END();
2020 }
2021
2022 void
2023 tracepath_glUniform2fv(GLint location, GLsizei count, const GLfloat* v)
2024 {
2025         _COREGL_TRACEPATH_FUNC_BEGIN();
2026         _orig_tracepath_glUniform2fv(location, count, v);
2027
2028         goto finish;
2029
2030 finish:
2031         _COREGL_TRACEPATH_FUNC_END();
2032 }
2033
2034 void
2035 tracepath_glUniform2i(GLint location, GLint x, GLint y)
2036 {
2037         _COREGL_TRACEPATH_FUNC_BEGIN();
2038         _orig_tracepath_glUniform2i(location, x, y);
2039
2040         goto finish;
2041
2042 finish:
2043         _COREGL_TRACEPATH_FUNC_END();
2044 }
2045
2046 void
2047 tracepath_glUniform2iv(GLint location, GLsizei count, const GLint* v)
2048 {
2049         _COREGL_TRACEPATH_FUNC_BEGIN();
2050         _orig_tracepath_glUniform2iv(location, count, v);
2051
2052         goto finish;
2053
2054 finish:
2055         _COREGL_TRACEPATH_FUNC_END();
2056 }
2057
2058 void
2059 tracepath_glUniform3f(GLint location, GLfloat x, GLfloat y, GLfloat z)
2060 {
2061         _COREGL_TRACEPATH_FUNC_BEGIN();
2062         _orig_tracepath_glUniform3f(location, x, y, z);
2063
2064         goto finish;
2065
2066 finish:
2067         _COREGL_TRACEPATH_FUNC_END();
2068 }
2069
2070 void
2071 tracepath_glUniform3fv(GLint location, GLsizei count, const GLfloat* v)
2072 {
2073         _COREGL_TRACEPATH_FUNC_BEGIN();
2074         _orig_tracepath_glUniform3fv(location, count, v);
2075
2076         goto finish;
2077
2078 finish:
2079         _COREGL_TRACEPATH_FUNC_END();
2080 }
2081
2082 void
2083 tracepath_glUniform3i(GLint location, GLint x, GLint y, GLint z)
2084 {
2085         _COREGL_TRACEPATH_FUNC_BEGIN();
2086         _orig_tracepath_glUniform3i(location, x, y, z);
2087
2088         goto finish;
2089
2090 finish:
2091         _COREGL_TRACEPATH_FUNC_END();
2092 }
2093
2094 void
2095 tracepath_glUniform3iv(GLint location, GLsizei count, const GLint* v)
2096 {
2097         _COREGL_TRACEPATH_FUNC_BEGIN();
2098         _orig_tracepath_glUniform3iv(location, count, v);
2099
2100         goto finish;
2101
2102 finish:
2103         _COREGL_TRACEPATH_FUNC_END();
2104 }
2105
2106 void
2107 tracepath_glUniform4f(GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
2108 {
2109         _COREGL_TRACEPATH_FUNC_BEGIN();
2110         _orig_tracepath_glUniform4f(location, x, y, z, w);
2111
2112         goto finish;
2113
2114 finish:
2115         _COREGL_TRACEPATH_FUNC_END();
2116 }
2117
2118 void
2119 tracepath_glUniform4fv(GLint location, GLsizei count, const GLfloat* v)
2120 {
2121         _COREGL_TRACEPATH_FUNC_BEGIN();
2122         _orig_tracepath_glUniform4fv(location, count, v);
2123
2124         goto finish;
2125
2126 finish:
2127         _COREGL_TRACEPATH_FUNC_END();
2128 }
2129
2130 void
2131 tracepath_glUniform4i(GLint location, GLint x, GLint y, GLint z, GLint w)
2132 {
2133         _COREGL_TRACEPATH_FUNC_BEGIN();
2134         _orig_tracepath_glUniform4i(location, x, y, z, w);
2135
2136         goto finish;
2137
2138 finish:
2139         _COREGL_TRACEPATH_FUNC_END();
2140 }
2141
2142 void
2143 tracepath_glUniform4iv(GLint location, GLsizei count, const GLint* v)
2144 {
2145         _COREGL_TRACEPATH_FUNC_BEGIN();
2146         _orig_tracepath_glUniform4iv(location, count, v);
2147
2148         goto finish;
2149
2150 finish:
2151         _COREGL_TRACEPATH_FUNC_END();
2152 }
2153
2154 void
2155 tracepath_glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
2156 {
2157         _COREGL_TRACEPATH_FUNC_BEGIN();
2158         _orig_tracepath_glUniformMatrix2fv(location, count, transpose, value);
2159
2160         goto finish;
2161
2162 finish:
2163         _COREGL_TRACEPATH_FUNC_END();
2164 }
2165
2166 void
2167 tracepath_glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
2168 {
2169         _COREGL_TRACEPATH_FUNC_BEGIN();
2170         _orig_tracepath_glUniformMatrix3fv(location, count, transpose, value);
2171
2172         goto finish;
2173
2174 finish:
2175         _COREGL_TRACEPATH_FUNC_END();
2176 }
2177
2178 void
2179 tracepath_glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
2180 {
2181         _COREGL_TRACEPATH_FUNC_BEGIN();
2182         _orig_tracepath_glUniformMatrix4fv(location, count, transpose, value);
2183
2184         goto finish;
2185
2186 finish:
2187         _COREGL_TRACEPATH_FUNC_END();
2188 }
2189
2190 void
2191 tracepath_glUseProgram(GLuint program)
2192 {
2193         _COREGL_TRACEPATH_FUNC_BEGIN();
2194         _orig_tracepath_glUseProgram(program);
2195
2196         goto finish;
2197
2198 finish:
2199         _COREGL_TRACEPATH_FUNC_END();
2200 }
2201
2202 void
2203 tracepath_glValidateProgram(GLuint program)
2204 {
2205         _COREGL_TRACEPATH_FUNC_BEGIN();
2206         _orig_tracepath_glValidateProgram(program);
2207
2208         goto finish;
2209
2210 finish:
2211         _COREGL_TRACEPATH_FUNC_END();
2212 }
2213
2214 void
2215 tracepath_glVertexAttrib1f(GLuint index, GLfloat x)
2216 {
2217         _COREGL_TRACEPATH_FUNC_BEGIN();
2218         _orig_tracepath_glVertexAttrib1f(index, x);
2219
2220         goto finish;
2221
2222 finish:
2223         _COREGL_TRACEPATH_FUNC_END();
2224 }
2225
2226 void
2227 tracepath_glVertexAttrib1fv(GLuint index, const GLfloat* values)
2228 {
2229         _COREGL_TRACEPATH_FUNC_BEGIN();
2230         _orig_tracepath_glVertexAttrib1fv(index, values);
2231
2232         goto finish;
2233
2234 finish:
2235         _COREGL_TRACEPATH_FUNC_END();
2236 }
2237
2238 void
2239 tracepath_glVertexAttrib2f(GLuint index, GLfloat x, GLfloat y)
2240 {
2241         _COREGL_TRACEPATH_FUNC_BEGIN();
2242         _orig_tracepath_glVertexAttrib2f(index, x, y);
2243
2244         goto finish;
2245
2246 finish:
2247         _COREGL_TRACEPATH_FUNC_END();
2248 }
2249
2250 void
2251 tracepath_glVertexAttrib2fv(GLuint index, const GLfloat* values)
2252 {
2253         _COREGL_TRACEPATH_FUNC_BEGIN();
2254         _orig_tracepath_glVertexAttrib2fv(index, values);
2255
2256         goto finish;
2257
2258 finish:
2259         _COREGL_TRACEPATH_FUNC_END();
2260 }
2261
2262 void
2263 tracepath_glVertexAttrib3f(GLuint index, GLfloat x, GLfloat y, GLfloat z)
2264 {
2265         _COREGL_TRACEPATH_FUNC_BEGIN();
2266         _orig_tracepath_glVertexAttrib3f(index, x, y, z);
2267
2268         goto finish;
2269
2270 finish:
2271         _COREGL_TRACEPATH_FUNC_END();
2272 }
2273
2274 void
2275 tracepath_glVertexAttrib3fv(GLuint index, const GLfloat* values)
2276 {
2277         _COREGL_TRACEPATH_FUNC_BEGIN();
2278         _orig_tracepath_glVertexAttrib3fv(index, values);
2279
2280         goto finish;
2281
2282 finish:
2283         _COREGL_TRACEPATH_FUNC_END();
2284 }
2285
2286 void
2287 tracepath_glVertexAttrib4f(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
2288 {
2289         _COREGL_TRACEPATH_FUNC_BEGIN();
2290         _orig_tracepath_glVertexAttrib4f(index, x, y, z, w);
2291
2292         goto finish;
2293
2294 finish:
2295         _COREGL_TRACEPATH_FUNC_END();
2296 }
2297
2298 void
2299 tracepath_glVertexAttrib4fv(GLuint index, const GLfloat* values)
2300 {
2301         _COREGL_TRACEPATH_FUNC_BEGIN();
2302         _orig_tracepath_glVertexAttrib4fv(index, values);
2303
2304         goto finish;
2305
2306 finish:
2307         _COREGL_TRACEPATH_FUNC_END();
2308 }
2309
2310 void
2311 tracepath_glVertexAttribPointer(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* pointer)
2312 {
2313         _COREGL_TRACEPATH_FUNC_BEGIN();
2314         _orig_tracepath_glVertexAttribPointer(index, size, type, normalized, stride, pointer);
2315
2316         goto finish;
2317
2318 finish:
2319         _COREGL_TRACEPATH_FUNC_END();
2320 }
2321
2322 void
2323 tracepath_glViewport(GLint x, GLint y, GLsizei width, GLsizei height)
2324 {
2325         _COREGL_TRACEPATH_FUNC_BEGIN();
2326         _orig_tracepath_glViewport(x, y, width, height);
2327
2328         goto finish;
2329
2330 finish:
2331         _COREGL_TRACEPATH_FUNC_END();
2332 }
2333
2334
2335 /* OpenGL ES 3.0 */
2336 void
2337 tracepath_glReadBuffer(GLenum mode)
2338 {
2339         _COREGL_TRACEPATH_FUNC_BEGIN();
2340         _orig_tracepath_glReadBuffer(mode);
2341
2342         goto finish;
2343
2344 finish:
2345         _COREGL_TRACEPATH_FUNC_END();
2346 }
2347
2348 void
2349 tracepath_glDrawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid* indices)
2350 {
2351         _COREGL_TRACEPATH_FUNC_BEGIN();
2352         _orig_tracepath_glDrawRangeElements(mode, start, end, count, type, indices);
2353
2354         goto finish;
2355
2356 finish:
2357         _COREGL_TRACEPATH_FUNC_END();
2358 }
2359
2360 void
2361 tracepath_glTexImage3D(GLenum target, GLint level, GLint GLinternalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels)
2362 {
2363         _COREGL_TRACEPATH_FUNC_BEGIN();
2364         _orig_tracepath_glTexImage3D(target, level, GLinternalFormat, width, height, depth, border, format, type, pixels);
2365
2366         goto finish;
2367
2368 finish:
2369         _COREGL_TRACEPATH_FUNC_END();
2370 }
2371
2372 void
2373 tracepath_glTexImage3DOES(GLenum target, GLint level, GLenum GLinternalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels)
2374 {
2375         _COREGL_TRACEPATH_FUNC_BEGIN();
2376         _orig_tracepath_glTexImage3DOES(target, level, GLinternalFormat, width, height, depth, border, format, type, pixels);
2377
2378         goto finish;
2379
2380 finish:
2381         _COREGL_TRACEPATH_FUNC_END();
2382 }
2383
2384 void
2385 tracepath_glTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels)
2386 {
2387         _COREGL_TRACEPATH_FUNC_BEGIN();
2388         _orig_tracepath_glTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels);
2389
2390         goto finish;
2391
2392 finish:
2393         _COREGL_TRACEPATH_FUNC_END();
2394 }
2395
2396 void
2397 tracepath_glTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels)
2398 {
2399         _COREGL_TRACEPATH_FUNC_BEGIN();
2400         _orig_tracepath_glTexSubImage3DOES(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels);
2401
2402         goto finish;
2403
2404 finish:
2405         _COREGL_TRACEPATH_FUNC_END();
2406 }
2407
2408 void
2409 tracepath_glCopyTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
2410 {
2411         _COREGL_TRACEPATH_FUNC_BEGIN();
2412         _orig_tracepath_glCopyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height);
2413
2414         goto finish;
2415
2416 finish:
2417         _COREGL_TRACEPATH_FUNC_END();
2418 }
2419
2420 void
2421 tracepath_glCopyTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
2422 {
2423         _COREGL_TRACEPATH_FUNC_BEGIN();
2424         _orig_tracepath_glCopyTexSubImage3DOES(target, level, xoffset, yoffset, zoffset, x, y, width, height);
2425
2426         goto finish;
2427
2428 finish:
2429         _COREGL_TRACEPATH_FUNC_END();
2430 }
2431
2432 void
2433 tracepath_glCompressedTexImage3D(GLenum target, GLint level, GLenum GLinternalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data)
2434 {
2435         _COREGL_TRACEPATH_FUNC_BEGIN();
2436         _orig_tracepath_glCompressedTexImage3D(target, level, GLinternalformat, width, height, depth, border, imageSize, data);
2437
2438         goto finish;
2439
2440 finish:
2441         _COREGL_TRACEPATH_FUNC_END();
2442 }
2443
2444 void
2445 tracepath_glCompressedTexImage3DOES(GLenum target, GLint level, GLenum GLinternalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data)
2446 {
2447         _COREGL_TRACEPATH_FUNC_BEGIN();
2448         _orig_tracepath_glCompressedTexImage3DOES(target, level, GLinternalformat, width, height, depth, border, imageSize, data);
2449
2450         goto finish;
2451
2452 finish:
2453         _COREGL_TRACEPATH_FUNC_END();
2454 }
2455
2456 void
2457 tracepath_glCompressedTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data)
2458 {
2459         _COREGL_TRACEPATH_FUNC_BEGIN();
2460         _orig_tracepath_glCompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
2461
2462         goto finish;
2463
2464 finish:
2465         _COREGL_TRACEPATH_FUNC_END();
2466 }
2467
2468 void
2469 tracepath_glCompressedTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data)
2470 {
2471         _COREGL_TRACEPATH_FUNC_BEGIN();
2472         _orig_tracepath_glCompressedTexSubImage3DOES(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
2473
2474         goto finish;
2475
2476 finish:
2477         _COREGL_TRACEPATH_FUNC_END();
2478 }
2479
2480 void
2481 tracepath_glGenQueries(GLsizei n, GLuint* ids)
2482 {
2483         _COREGL_TRACEPATH_FUNC_BEGIN();
2484         _orig_tracepath_glGenQueries(n, ids);
2485
2486         goto finish;
2487
2488 finish:
2489         _COREGL_TRACEPATH_FUNC_END();
2490 }
2491
2492 void
2493 tracepath_glDeleteQueries(GLsizei n, const GLuint* ids)
2494 {
2495         _COREGL_TRACEPATH_FUNC_BEGIN();
2496         _orig_tracepath_glDeleteQueries(n, ids);
2497
2498         goto finish;
2499
2500 finish:
2501         _COREGL_TRACEPATH_FUNC_END();
2502 }
2503
2504 GLboolean
2505 tracepath_glIsQuery(GLuint id)
2506 {
2507         GLboolean ret = GL_FALSE;
2508
2509         _COREGL_TRACEPATH_FUNC_BEGIN();
2510         ret = _orig_tracepath_glIsQuery(id);
2511
2512         goto finish;
2513
2514 finish:
2515         _COREGL_TRACEPATH_FUNC_END();
2516         return ret;
2517 }
2518
2519 void
2520 tracepath_glBeginQuery(GLenum target, GLuint id)
2521 {
2522         _COREGL_TRACEPATH_FUNC_BEGIN();
2523         _orig_tracepath_glBeginQuery(target, id);
2524
2525         goto finish;
2526
2527 finish:
2528         _COREGL_TRACEPATH_FUNC_END();
2529 }
2530
2531 void
2532 tracepath_glEndQuery(GLenum target)
2533 {
2534         _COREGL_TRACEPATH_FUNC_BEGIN();
2535         _orig_tracepath_glEndQuery(target);
2536
2537         goto finish;
2538
2539 finish:
2540         _COREGL_TRACEPATH_FUNC_END();
2541 }
2542
2543 void
2544 tracepath_glGetQueryiv(GLenum target, GLenum pname, GLint* params)
2545 {
2546         _COREGL_TRACEPATH_FUNC_BEGIN();
2547         _orig_tracepath_glGetQueryiv(target, pname, params);
2548
2549         goto finish;
2550
2551 finish:
2552         _COREGL_TRACEPATH_FUNC_END();
2553 }
2554
2555 void
2556 tracepath_glGetQueryObjectuiv(GLuint id, GLenum pname, GLuint* params)
2557 {
2558         _COREGL_TRACEPATH_FUNC_BEGIN();
2559         _orig_tracepath_glGetQueryObjectuiv(id, pname, params);
2560
2561         goto finish;
2562
2563 finish:
2564         _COREGL_TRACEPATH_FUNC_END();
2565 }
2566
2567 GLboolean
2568 tracepath_glUnmapBuffer(GLenum target)
2569 {
2570         GLboolean ret = GL_FALSE;
2571
2572         _COREGL_TRACEPATH_FUNC_BEGIN();
2573         ret = _orig_tracepath_glUnmapBuffer(target);
2574
2575         goto finish;
2576
2577 finish:
2578         _COREGL_TRACEPATH_FUNC_END();
2579         return ret;
2580 }
2581
2582 void
2583 tracepath_glGetBufferPointerv(GLenum target, GLenum pname, GLvoid** params)
2584 {
2585         _COREGL_TRACEPATH_FUNC_BEGIN();
2586         _orig_tracepath_glGetBufferPointerv(target, pname, params);
2587
2588         goto finish;
2589
2590 finish:
2591         _COREGL_TRACEPATH_FUNC_END();
2592 }
2593
2594 void
2595 tracepath_glDrawBuffers(GLsizei n, const GLenum* bufs)
2596 {
2597         _COREGL_TRACEPATH_FUNC_BEGIN();
2598         _orig_tracepath_glDrawBuffers(n, bufs);
2599
2600         goto finish;
2601
2602 finish:
2603         _COREGL_TRACEPATH_FUNC_END();
2604 }
2605
2606 void
2607 tracepath_glUniformMatrix2x3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
2608 {
2609         _COREGL_TRACEPATH_FUNC_BEGIN();
2610         _orig_tracepath_glUniformMatrix2x3fv(location, count, transpose, value);
2611
2612         goto finish;
2613
2614 finish:
2615         _COREGL_TRACEPATH_FUNC_END();
2616 }
2617
2618 void
2619 tracepath_glUniformMatrix3x2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
2620 {
2621         _COREGL_TRACEPATH_FUNC_BEGIN();
2622         _orig_tracepath_glUniformMatrix3x2fv(location, count, transpose, value);
2623
2624         goto finish;
2625
2626 finish:
2627         _COREGL_TRACEPATH_FUNC_END();
2628 }
2629
2630 void
2631 tracepath_glUniformMatrix2x4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
2632 {
2633         _COREGL_TRACEPATH_FUNC_BEGIN();
2634         _orig_tracepath_glUniformMatrix2x4fv(location, count, transpose, value);
2635
2636         goto finish;
2637
2638 finish:
2639         _COREGL_TRACEPATH_FUNC_END();
2640 }
2641
2642 void
2643 tracepath_glUniformMatrix4x2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
2644 {
2645         _COREGL_TRACEPATH_FUNC_BEGIN();
2646         _orig_tracepath_glUniformMatrix4x2fv(location, count, transpose, value);
2647
2648         goto finish;
2649
2650 finish:
2651         _COREGL_TRACEPATH_FUNC_END();
2652 }
2653
2654 void
2655 tracepath_glUniformMatrix3x4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
2656 {
2657         _COREGL_TRACEPATH_FUNC_BEGIN();
2658         _orig_tracepath_glUniformMatrix3x4fv(location, count, transpose, value);
2659
2660         goto finish;
2661
2662 finish:
2663         _COREGL_TRACEPATH_FUNC_END();
2664 }
2665
2666 void
2667 tracepath_glUniformMatrix4x3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
2668 {
2669         _COREGL_TRACEPATH_FUNC_BEGIN();
2670         _orig_tracepath_glUniformMatrix4x3fv(location, count, transpose, value);
2671
2672         goto finish;
2673
2674 finish:
2675         _COREGL_TRACEPATH_FUNC_END();
2676 }
2677
2678 void
2679 tracepath_glBlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)
2680 {
2681         _COREGL_TRACEPATH_FUNC_BEGIN();
2682         _orig_tracepath_glBlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
2683
2684         goto finish;
2685
2686 finish:
2687         _COREGL_TRACEPATH_FUNC_END();
2688 }
2689
2690 void
2691 tracepath_glRenderbufferStorageMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
2692 {
2693         _COREGL_TRACEPATH_FUNC_BEGIN();
2694         _orig_tracepath_glRenderbufferStorageMultisample(target, samples, internalformat, width, height);
2695
2696         goto finish;
2697
2698 finish:
2699         _COREGL_TRACEPATH_FUNC_END();
2700 #ifdef COREGL_TRACEPATH_TRACE_MEMUSE_INFO
2701         if (trace_mem_flag == 1)
2702         {
2703                 MY_MODULE_TSTATE *tstate = NULL;
2704
2705                 GET_MY_TSTATE(tstate, get_current_thread_state());
2706                 AST(tstate != NULL);
2707                 if (tstate->ctx != NULL)
2708                 {
2709                         int objidx = _COREGL_INT_INIT_VALUE;
2710                         _orig_tracepath_glGetIntegerv(GL_RENDERBUFFER_BINDING, &objidx);
2711                         AST(objidx != _COREGL_INT_INIT_VALUE);
2712
2713                         // Detect byte per pixel
2714                         int bpp = 0;
2715                         char formatment[80];
2716                         switch (internalformat)
2717                         {
2718                                 case GL_ALPHA: sprintf(formatment, "ALPHA"); bpp = 1; break;
2719                                 case GL_LUMINANCE: sprintf(formatment, "LUMINANCE"); bpp = 1; break;
2720                                 case GL_LUMINANCE_ALPHA: sprintf(formatment, "LUMINANCE_ALPHA"); bpp = 1; break;
2721                                 case GL_RGB: sprintf(formatment, "RGB"); bpp = 2; break;
2722                                 case GL_RGBA: sprintf(formatment, "RGBA"); bpp = 4; break;
2723                                 case 0x80E1: sprintf(formatment, "BGRA_EXT"); bpp = 4; break;
2724                                 case 0x84F9: sprintf(formatment, "DEPTH_STENCIL_OES"); bpp = 4; break;
2725                                 case GL_DEPTH_COMPONENT : sprintf(formatment, "DEPTH_COMPONENT"); bpp = 1; break;
2726                                 case 0x81A5: sprintf(formatment, "DEPTH_COMPONENT16_ARB"); bpp = 2; break;
2727                                 case 0x81A6: sprintf(formatment, "DEPTH_COMPONENT24_ARB"); bpp = 3; break;
2728                                 case 0x81A7: sprintf(formatment, "DEPTH_COMPONENT32_ARB"); bpp = 4; break;
2729                                 case 0x8D46 : sprintf(formatment, "STENCIL_INDEX1_OES"); bpp = 1; break;
2730                                 case 0x8D47 : sprintf(formatment, "STENCIL_INDEX4_OES"); bpp = 1; break;
2731                                 case 0x8D48 : sprintf(formatment, "STENCIL_INDEX8_OES"); bpp = 1; break;
2732                                 default: sprintf(formatment, "0x%X", internalformat); bpp = 0; break;
2733                         }
2734
2735                         _add_glbuf_object(tstate->ctx->sostate->glbuf_rb, objidx, "Renderbuffer", width, height, bpp, formatment);
2736                 }
2737         }
2738 #endif // COREGL_TRACEPATH_TRACE_MEMUSE_INFO
2739 #ifdef COREGL_TRACEPATH_TRACE_SURFACE_INFO
2740         if (trace_surface_flag == 1)
2741         {
2742                 MY_MODULE_TSTATE *tstate = NULL;
2743
2744                 GET_MY_TSTATE(tstate, get_current_thread_state());
2745                 AST(tstate != NULL);
2746                 if (tstate->ctx != NULL)
2747                 {
2748                         int objidx = _COREGL_INT_INIT_VALUE;
2749                         _orig_tracepath_glGetIntegerv(GL_RENDERBUFFER_BINDING, &objidx);
2750                         AST(objidx != _COREGL_INT_INIT_VALUE);
2751
2752                         {
2753                                 int channel = 0;
2754                                 switch (internalformat)
2755                                 {
2756                                         case GL_ALPHA:
2757                                         case GL_LUMINANCE:
2758                                         case GL_DEPTH_COMPONENT :
2759                                         case 0x81A5:
2760                                         case 0x81A6:
2761                                         case 0x81A7:
2762                                         case 0x8D46 :
2763                                         case 0x8D47 :
2764                                         case 0x8D48 : channel = 1; break;
2765                                         case GL_LUMINANCE_ALPHA:
2766                                         case 0x84F9: channel = 2; break;
2767                                         case GL_RGB: channel = 3; break;
2768                                         case GL_RGBA:
2769                                         case 0x80E1: channel = 4; break;
2770                                 }
2771
2772                                 char name[256];
2773                                 sprintf(name, "FBORB_0x%X", objidx);
2774                                 tracepath_surface_trace_add(name, tstate->ctx->dpy, tstate->ctx->handle, tstate->surf_draw, -1, 0, objidx, width, height, channel, NULL);
2775                         }
2776                 }
2777         }
2778 #endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
2779 }
2780
2781 void
2782 tracepath_glRenderbufferStorageMultisampleEXT(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
2783 {
2784         _COREGL_TRACEPATH_FUNC_BEGIN();
2785         _orig_tracepath_glRenderbufferStorageMultisampleEXT(target, samples, internalformat, width, height);
2786
2787         goto finish;
2788
2789 finish:
2790         _COREGL_TRACEPATH_FUNC_END();
2791 #ifdef COREGL_TRACEPATH_TRACE_MEMUSE_INFO
2792         if (trace_mem_flag == 1)
2793         {
2794                 MY_MODULE_TSTATE *tstate = NULL;
2795
2796                 GET_MY_TSTATE(tstate, get_current_thread_state());
2797                 AST(tstate != NULL);
2798                 if (tstate->ctx != NULL)
2799                 {
2800                         int objidx = _COREGL_INT_INIT_VALUE;
2801                         _orig_tracepath_glGetIntegerv(GL_RENDERBUFFER_BINDING, &objidx);
2802                         AST(objidx != _COREGL_INT_INIT_VALUE);
2803
2804                         // Detect byte per pixel
2805                         int bpp = 0;
2806                         char formatment[80];
2807                         switch (internalformat)
2808                         {
2809                                 case GL_ALPHA: sprintf(formatment, "ALPHA"); bpp = 1; break;
2810                                 case GL_LUMINANCE: sprintf(formatment, "LUMINANCE"); bpp = 1; break;
2811                                 case GL_LUMINANCE_ALPHA: sprintf(formatment, "LUMINANCE_ALPHA"); bpp = 1; break;
2812                                 case GL_RGB: sprintf(formatment, "RGB"); bpp = 2; break;
2813                                 case GL_RGBA: sprintf(formatment, "RGBA"); bpp = 4; break;
2814                                 case 0x80E1: sprintf(formatment, "BGRA_EXT"); bpp = 4; break;
2815                                 case 0x84F9: sprintf(formatment, "DEPTH_STENCIL_OES"); bpp = 4; break;
2816                                 case GL_DEPTH_COMPONENT : sprintf(formatment, "DEPTH_COMPONENT"); bpp = 1; break;
2817                                 case 0x81A5: sprintf(formatment, "DEPTH_COMPONENT16_ARB"); bpp = 2; break;
2818                                 case 0x81A6: sprintf(formatment, "DEPTH_COMPONENT24_ARB"); bpp = 3; break;
2819                                 case 0x81A7: sprintf(formatment, "DEPTH_COMPONENT32_ARB"); bpp = 4; break;
2820                                 case 0x8D46 : sprintf(formatment, "STENCIL_INDEX1_OES"); bpp = 1; break;
2821                                 case 0x8D47 : sprintf(formatment, "STENCIL_INDEX4_OES"); bpp = 1; break;
2822                                 case 0x8D48 : sprintf(formatment, "STENCIL_INDEX8_OES"); bpp = 1; break;
2823                                 default: sprintf(formatment, "0x%X", internalformat); bpp = 0; break;
2824                         }
2825
2826                         _add_glbuf_object(tstate->ctx->sostate->glbuf_rb, objidx, "Renderbuffer", width, height, bpp, formatment);
2827                 }
2828         }
2829 #endif // COREGL_TRACEPATH_TRACE_MEMUSE_INFO
2830 #ifdef COREGL_TRACEPATH_TRACE_SURFACE_INFO
2831         if (trace_surface_flag == 1)
2832         {
2833                 MY_MODULE_TSTATE *tstate = NULL;
2834
2835                 GET_MY_TSTATE(tstate, get_current_thread_state());
2836                 AST(tstate != NULL);
2837                 if (tstate->ctx != NULL)
2838                 {
2839                         int objidx = _COREGL_INT_INIT_VALUE;
2840                         _orig_tracepath_glGetIntegerv(GL_RENDERBUFFER_BINDING, &objidx);
2841                         AST(objidx != _COREGL_INT_INIT_VALUE);
2842
2843                         {
2844                                 int channel = 0;
2845                                 switch (internalformat)
2846                                 {
2847                                         case GL_ALPHA:
2848                                         case GL_LUMINANCE:
2849                                         case GL_DEPTH_COMPONENT :
2850                                         case 0x81A5:
2851                                         case 0x81A6:
2852                                         case 0x81A7:
2853                                         case 0x8D46 :
2854                                         case 0x8D47 :
2855                                         case 0x8D48 : channel = 1; break;
2856                                         case GL_LUMINANCE_ALPHA:
2857                                         case 0x84F9: channel = 2; break;
2858                                         case GL_RGB: channel = 3; break;
2859                                         case GL_RGBA:
2860                                         case 0x80E1: channel = 4; break;
2861                                 }
2862
2863                                 char name[256];
2864                                 sprintf(name, "FBORB_0x%X", objidx);
2865                                 tracepath_surface_trace_add(name, tstate->ctx->dpy, tstate->ctx->handle, tstate->surf_draw, -1, 0, objidx, width, height, channel, NULL);
2866                         }
2867                 }
2868         }
2869 #endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
2870 }
2871
2872 void
2873 tracepath_glFramebufferTextureLayer(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer)
2874 {
2875         _COREGL_TRACEPATH_FUNC_BEGIN();
2876
2877 #ifdef COREGL_TRACEPATH_TRACE_SURFACE_INFO
2878         tracepath_fbdump_update(0);
2879 #endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
2880
2881         _orig_tracepath_glFramebufferTextureLayer(target, attachment, texture, level, layer);
2882
2883 #ifdef COREGL_TRACEPATH_TRACE_SURFACE_INFO
2884         tracepath_fbdump_update(1);
2885 #endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
2886
2887         goto finish;
2888
2889 finish:
2890         _COREGL_TRACEPATH_FUNC_END();
2891 }
2892
2893 GLvoid*
2894 tracepath_glMapBufferRange(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access)
2895 {
2896         GLvoid* ret = NULL;
2897
2898         _COREGL_TRACEPATH_FUNC_BEGIN();
2899         ret = _orig_tracepath_glMapBufferRange(target, offset, length, access);
2900
2901         goto finish;
2902
2903 finish:
2904         _COREGL_TRACEPATH_FUNC_END();
2905         return ret;
2906 }
2907
2908 void
2909 tracepath_glFlushMappedBufferRange(GLenum target, GLintptr offset, GLsizeiptr length)
2910 {
2911         _COREGL_TRACEPATH_FUNC_BEGIN();
2912         _orig_tracepath_glFlushMappedBufferRange(target, offset, length);
2913
2914         goto finish;
2915
2916 finish:
2917         _COREGL_TRACEPATH_FUNC_END();
2918 }
2919
2920 void
2921 tracepath_glBindVertexArray(GLuint array)
2922 {
2923         _COREGL_TRACEPATH_FUNC_BEGIN();
2924         _orig_tracepath_glBindVertexArray(array);
2925
2926         goto finish;
2927
2928 finish:
2929         _COREGL_TRACEPATH_FUNC_END();
2930 }
2931
2932 void
2933 tracepath_glDeleteVertexArrays(GLsizei n, const GLuint* arrays)
2934 {
2935         _COREGL_TRACEPATH_FUNC_BEGIN();
2936         _orig_tracepath_glDeleteVertexArrays(n, arrays);
2937
2938         goto finish;
2939
2940 finish:
2941         _COREGL_TRACEPATH_FUNC_END();
2942 }
2943
2944 void
2945 tracepath_glGenVertexArrays(GLsizei n, GLuint* arrays)
2946 {
2947         _COREGL_TRACEPATH_FUNC_BEGIN();
2948         _orig_tracepath_glGenVertexArrays(n, arrays);
2949
2950         goto finish;
2951
2952 finish:
2953         _COREGL_TRACEPATH_FUNC_END();
2954 }
2955
2956 GLboolean
2957 tracepath_glIsVertexArray(GLuint array)
2958 {
2959         GLboolean ret = GL_FALSE;
2960
2961         _COREGL_TRACEPATH_FUNC_BEGIN();
2962         ret = _orig_tracepath_glIsVertexArray(array);
2963
2964         goto finish;
2965
2966 finish:
2967         _COREGL_TRACEPATH_FUNC_END();
2968         return ret;
2969 }
2970
2971 void
2972 tracepath_glGetIntegeri_v(GLenum target, GLuint index, GLint* data)
2973 {
2974         _COREGL_TRACEPATH_FUNC_BEGIN();
2975         _orig_tracepath_glGetIntegeri_v(target, index, data);
2976
2977         goto finish;
2978
2979 finish:
2980         _COREGL_TRACEPATH_FUNC_END();
2981 }
2982
2983 void
2984 tracepath_glBeginTransformFeedback(GLenum primitiveMode)
2985 {
2986         _COREGL_TRACEPATH_FUNC_BEGIN();
2987         _orig_tracepath_glBeginTransformFeedback(primitiveMode);
2988
2989         goto finish;
2990
2991 finish:
2992         _COREGL_TRACEPATH_FUNC_END();
2993 }
2994
2995 void
2996 tracepath_glEndTransformFeedback()
2997 {
2998         _COREGL_TRACEPATH_FUNC_BEGIN();
2999         _orig_tracepath_glEndTransformFeedback();
3000
3001         goto finish;
3002
3003 finish:
3004         _COREGL_TRACEPATH_FUNC_END();
3005 }
3006
3007 void
3008 tracepath_glBindBufferRange(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size)
3009 {
3010         _COREGL_TRACEPATH_FUNC_BEGIN();
3011         _orig_tracepath_glBindBufferRange(target, index, buffer, offset, size);
3012
3013         goto finish;
3014
3015 finish:
3016         _COREGL_TRACEPATH_FUNC_END();
3017 }
3018
3019 void
3020 tracepath_glBindBufferBase(GLenum target, GLuint index, GLuint buffer)
3021 {
3022         _COREGL_TRACEPATH_FUNC_BEGIN();
3023         _orig_tracepath_glBindBufferBase(target, index, buffer);
3024
3025         goto finish;
3026
3027 finish:
3028         _COREGL_TRACEPATH_FUNC_END();
3029 }
3030
3031 void
3032 tracepath_glTransformFeedbackVaryings(GLuint program, GLsizei count, const GLchar* const* varyings, GLenum bufferMode)
3033 {
3034         _COREGL_TRACEPATH_FUNC_BEGIN();
3035         _orig_tracepath_glTransformFeedbackVaryings(program, count, varyings, bufferMode);
3036
3037         goto finish;
3038
3039 finish:
3040         _COREGL_TRACEPATH_FUNC_END();
3041 }
3042
3043 void
3044 tracepath_glGetTransformFeedbackVarying(GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* type, GLchar* name)
3045 {
3046         _COREGL_TRACEPATH_FUNC_BEGIN();
3047         _orig_tracepath_glGetTransformFeedbackVarying(program, index, bufSize, length, size, type, name);
3048
3049         goto finish;
3050
3051 finish:
3052         _COREGL_TRACEPATH_FUNC_END();
3053 }
3054
3055 void
3056 tracepath_glVertexAttribIPointer(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid* pointer)
3057 {
3058         _COREGL_TRACEPATH_FUNC_BEGIN();
3059         _orig_tracepath_glVertexAttribIPointer(index, size, type, stride, pointer);
3060
3061         goto finish;
3062
3063 finish:
3064         _COREGL_TRACEPATH_FUNC_END();
3065 }
3066
3067 void
3068 tracepath_glGetVertexAttribIiv(GLuint index, GLenum pname, GLint* params)
3069 {
3070         _COREGL_TRACEPATH_FUNC_BEGIN();
3071         _orig_tracepath_glGetVertexAttribIiv(index, pname, params);
3072
3073         goto finish;
3074
3075 finish:
3076         _COREGL_TRACEPATH_FUNC_END();
3077 }
3078
3079 void
3080 tracepath_glGetVertexAttribIuiv(GLuint index, GLenum pname, GLuint* params)
3081 {
3082         _COREGL_TRACEPATH_FUNC_BEGIN();
3083         _orig_tracepath_glGetVertexAttribIuiv(index, pname, params);
3084
3085         goto finish;
3086
3087 finish:
3088         _COREGL_TRACEPATH_FUNC_END();
3089 }
3090
3091 void
3092 tracepath_glVertexAttribI4i(GLuint index, GLint x, GLint y, GLint z, GLint w)
3093 {
3094         _COREGL_TRACEPATH_FUNC_BEGIN();
3095         _orig_tracepath_glVertexAttribI4i(index, x, y, z, w);
3096
3097         goto finish;
3098
3099 finish:
3100         _COREGL_TRACEPATH_FUNC_END();
3101 }
3102
3103 void
3104 tracepath_glVertexAttribI4ui(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w)
3105 {
3106         _COREGL_TRACEPATH_FUNC_BEGIN();
3107         _orig_tracepath_glVertexAttribI4ui(index, x, y, z, w);
3108
3109         goto finish;
3110
3111 finish:
3112         _COREGL_TRACEPATH_FUNC_END();
3113 }
3114
3115 void
3116 tracepath_glVertexAttribI4iv(GLuint index, const GLint* v)
3117 {
3118         _COREGL_TRACEPATH_FUNC_BEGIN();
3119         _orig_tracepath_glVertexAttribI4iv(index, v);
3120
3121         goto finish;
3122
3123 finish:
3124         _COREGL_TRACEPATH_FUNC_END();
3125 }
3126
3127 void
3128 tracepath_glVertexAttribI4uiv(GLuint index, const GLuint* v)
3129 {
3130         _COREGL_TRACEPATH_FUNC_BEGIN();
3131         _orig_tracepath_glVertexAttribI4uiv(index, v);
3132
3133         goto finish;
3134
3135 finish:
3136         _COREGL_TRACEPATH_FUNC_END();
3137 }
3138
3139 void
3140 tracepath_glGetUniformuiv(GLuint program, GLint location, GLuint* params)
3141 {
3142         _COREGL_TRACEPATH_FUNC_BEGIN();
3143         _orig_tracepath_glGetUniformuiv(program, location, params);
3144
3145         goto finish;
3146
3147 finish:
3148         _COREGL_TRACEPATH_FUNC_END();
3149 }
3150
3151 GLint
3152 tracepath_glGetFragDataLocation(GLuint program, const GLchar *name)
3153 {
3154         GLint ret = _COREGL_INT_INIT_VALUE;
3155
3156         _COREGL_TRACEPATH_FUNC_BEGIN();
3157         ret = _orig_tracepath_glGetFragDataLocation(program, name);
3158
3159         goto finish;
3160
3161 finish:
3162         _COREGL_TRACEPATH_FUNC_END();
3163         return ret;
3164 }
3165
3166 void
3167 tracepath_glUniform1ui(GLint location, GLuint v0)
3168 {
3169         _COREGL_TRACEPATH_FUNC_BEGIN();
3170         _orig_tracepath_glUniform1ui(location, v0);
3171
3172         goto finish;
3173
3174 finish:
3175         _COREGL_TRACEPATH_FUNC_END();
3176 }
3177
3178 void
3179 tracepath_glUniform2ui(GLint location, GLuint v0, GLuint v1)
3180 {
3181         _COREGL_TRACEPATH_FUNC_BEGIN();
3182         _orig_tracepath_glUniform2ui(location, v0, v1);
3183
3184         goto finish;
3185
3186 finish:
3187         _COREGL_TRACEPATH_FUNC_END();
3188 }
3189
3190 void
3191 tracepath_glUniform3ui(GLint location, GLuint v0, GLuint v1, GLuint v2)
3192 {
3193         _COREGL_TRACEPATH_FUNC_BEGIN();
3194         _orig_tracepath_glUniform3ui(location, v0, v1, v2);
3195
3196         goto finish;
3197
3198 finish:
3199         _COREGL_TRACEPATH_FUNC_END();
3200 }
3201
3202 void
3203 tracepath_glUniform4ui(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)
3204 {
3205         _COREGL_TRACEPATH_FUNC_BEGIN();
3206         _orig_tracepath_glUniform4ui(location, v0, v1, v2, v3);
3207
3208         goto finish;
3209
3210 finish:
3211         _COREGL_TRACEPATH_FUNC_END();
3212 }
3213
3214 void
3215 tracepath_glUniform1uiv(GLint location, GLsizei count, const GLuint* value)
3216 {
3217         _COREGL_TRACEPATH_FUNC_BEGIN();
3218         _orig_tracepath_glUniform1uiv(location, count, value);
3219
3220         goto finish;
3221
3222 finish:
3223         _COREGL_TRACEPATH_FUNC_END();
3224 }
3225
3226 void
3227 tracepath_glUniform2uiv(GLint location, GLsizei count, const GLuint* value)
3228 {
3229         _COREGL_TRACEPATH_FUNC_BEGIN();
3230         _orig_tracepath_glUniform2uiv(location, count, value);
3231
3232         goto finish;
3233
3234 finish:
3235         _COREGL_TRACEPATH_FUNC_END();
3236 }
3237
3238 void
3239 tracepath_glUniform3uiv(GLint location, GLsizei count, const GLuint* value)
3240 {
3241         _COREGL_TRACEPATH_FUNC_BEGIN();
3242         _orig_tracepath_glUniform3uiv(location, count, value);
3243
3244         goto finish;
3245
3246 finish:
3247         _COREGL_TRACEPATH_FUNC_END();
3248 }
3249
3250 void
3251 tracepath_glUniform4uiv(GLint location, GLsizei count, const GLuint* value)
3252 {
3253         _COREGL_TRACEPATH_FUNC_BEGIN();
3254         _orig_tracepath_glUniform4uiv(location, count, value);
3255
3256         goto finish;
3257
3258 finish:
3259         _COREGL_TRACEPATH_FUNC_END();
3260 }
3261
3262 void
3263 tracepath_glClearBufferiv(GLenum buffer, GLint drawbuffer, const GLint* value)
3264 {
3265         _COREGL_TRACEPATH_FUNC_BEGIN();
3266         _orig_tracepath_glClearBufferiv(buffer, drawbuffer, value);
3267
3268         goto finish;
3269
3270 finish:
3271         _COREGL_TRACEPATH_FUNC_END();
3272 }
3273
3274 void
3275 tracepath_glClearBufferuiv(GLenum buffer, GLint drawbuffer, const GLuint* value)
3276 {
3277         _COREGL_TRACEPATH_FUNC_BEGIN();
3278         _orig_tracepath_glClearBufferuiv(buffer, drawbuffer, value);
3279
3280         goto finish;
3281
3282 finish:
3283         _COREGL_TRACEPATH_FUNC_END();
3284 }
3285
3286 void
3287 tracepath_glClearBufferfv(GLenum buffer, GLint drawbuffer, const GLfloat* value)
3288 {
3289         _COREGL_TRACEPATH_FUNC_BEGIN();
3290         _orig_tracepath_glClearBufferfv(buffer, drawbuffer, value);
3291
3292         goto finish;
3293
3294 finish:
3295         _COREGL_TRACEPATH_FUNC_END();
3296 }
3297
3298 void
3299 tracepath_glClearBufferfi(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil)
3300 {
3301         _COREGL_TRACEPATH_FUNC_BEGIN();
3302         _orig_tracepath_glClearBufferfi(buffer, drawbuffer, depth, stencil);
3303
3304         goto finish;
3305
3306 finish:
3307         _COREGL_TRACEPATH_FUNC_END();
3308 }
3309
3310 const GLubyte*
3311 tracepath_glGetStringi(GLenum name, GLuint index)
3312 {
3313         const GLubyte* ret = NULL;
3314
3315         _COREGL_TRACEPATH_FUNC_BEGIN();
3316         ret = _orig_tracepath_glGetStringi(name, index);
3317
3318         goto finish;
3319
3320 finish:
3321         _COREGL_TRACEPATH_FUNC_END();
3322         return ret;
3323 }
3324
3325 void
3326 tracepath_glCopyBufferSubData(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size)
3327 {
3328         _COREGL_TRACEPATH_FUNC_BEGIN();
3329         _orig_tracepath_glCopyBufferSubData(readTarget, writeTarget, readOffset, writeOffset, size);
3330
3331         goto finish;
3332
3333 finish:
3334         _COREGL_TRACEPATH_FUNC_END();
3335 }
3336
3337 void
3338 tracepath_glGetUniformIndices(GLuint program, GLsizei uniformCount, const GLchar* const* uniformNames, GLuint* uniformIndices)
3339 {
3340         _COREGL_TRACEPATH_FUNC_BEGIN();
3341         _orig_tracepath_glGetUniformIndices(program, uniformCount, uniformNames, uniformIndices);
3342
3343         goto finish;
3344
3345 finish:
3346         _COREGL_TRACEPATH_FUNC_END();
3347 }
3348
3349 void
3350 tracepath_glGetActiveUniformsiv(GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params)
3351 {
3352         _COREGL_TRACEPATH_FUNC_BEGIN();
3353         _orig_tracepath_glGetActiveUniformsiv(program, uniformCount, uniformIndices, pname, params);
3354
3355         goto finish;
3356
3357 finish:
3358         _COREGL_TRACEPATH_FUNC_END();
3359 }
3360
3361 GLuint
3362 tracepath_glGetUniformBlockIndex(GLuint program, const GLchar* uniformBlockName)
3363 {
3364         GLuint ret = _COREGL_INT_INIT_VALUE;
3365
3366         _COREGL_TRACEPATH_FUNC_BEGIN();
3367         ret = _orig_tracepath_glGetUniformBlockIndex(program, uniformBlockName);
3368
3369         goto finish;
3370
3371 finish:
3372         _COREGL_TRACEPATH_FUNC_END();
3373         return ret;
3374 }
3375
3376 void
3377 tracepath_glGetActiveUniformBlockiv(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params)
3378 {
3379         _COREGL_TRACEPATH_FUNC_BEGIN();
3380         _orig_tracepath_glGetActiveUniformBlockiv(program, uniformBlockIndex, pname, params);
3381
3382         goto finish;
3383
3384 finish:
3385         _COREGL_TRACEPATH_FUNC_END();
3386 }
3387
3388 void
3389 tracepath_glGetActiveUniformBlockName(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName)
3390 {
3391         _COREGL_TRACEPATH_FUNC_BEGIN();
3392         _orig_tracepath_glGetActiveUniformBlockName(program, uniformBlockIndex, bufSize, length, uniformBlockName);
3393
3394         goto finish;
3395
3396 finish:
3397         _COREGL_TRACEPATH_FUNC_END();
3398 }
3399
3400 void
3401 tracepath_glUniformBlockBinding(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding)
3402 {
3403         _COREGL_TRACEPATH_FUNC_BEGIN();
3404         _orig_tracepath_glUniformBlockBinding(program, uniformBlockIndex, uniformBlockBinding);
3405
3406         goto finish;
3407
3408 finish:
3409         _COREGL_TRACEPATH_FUNC_END();
3410 }
3411
3412 void
3413 tracepath_glDrawArraysInstanced(GLenum mode, GLint first, GLsizei count, GLsizei instanceCount)
3414 {
3415         _COREGL_TRACEPATH_FUNC_BEGIN();
3416         _orig_tracepath_glDrawArraysInstanced(mode, first, count, instanceCount);
3417
3418         goto finish;
3419
3420 finish:
3421         _COREGL_TRACEPATH_FUNC_END();
3422 }
3423
3424 void
3425 tracepath_glDrawElementsInstanced(GLenum mode, GLsizei count, GLenum type, const GLvoid* indices, GLsizei instanceCount)
3426 {
3427         _COREGL_TRACEPATH_FUNC_BEGIN();
3428         _orig_tracepath_glDrawElementsInstanced(mode, count, type, indices, instanceCount);
3429
3430         goto finish;
3431
3432 finish:
3433         _COREGL_TRACEPATH_FUNC_END();
3434 }
3435
3436 GLsync
3437 tracepath_glFenceSync(GLenum condition, GLbitfield flags)
3438 {
3439         GLsync ret = NULL;
3440
3441         _COREGL_TRACEPATH_FUNC_BEGIN();
3442         ret = _orig_tracepath_glFenceSync(condition, flags);
3443
3444         goto finish;
3445
3446 finish:
3447         _COREGL_TRACEPATH_FUNC_END();
3448         return ret;
3449 }
3450
3451 GLboolean
3452 tracepath_glIsSync(GLsync sync)
3453 {
3454         GLboolean ret = GL_FALSE;
3455
3456         _COREGL_TRACEPATH_FUNC_BEGIN();
3457         ret = _orig_tracepath_glIsSync(sync);
3458
3459         goto finish;
3460
3461 finish:
3462         _COREGL_TRACEPATH_FUNC_END();
3463         return ret;
3464 }
3465
3466 void
3467 tracepath_glDeleteSync(GLsync sync)
3468 {
3469         _COREGL_TRACEPATH_FUNC_BEGIN();
3470         _orig_tracepath_glDeleteSync(sync);
3471
3472         goto finish;
3473
3474 finish:
3475         _COREGL_TRACEPATH_FUNC_END();
3476 }
3477
3478 GLenum
3479 tracepath_glClientWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout)
3480 {
3481         GLenum ret = _COREGL_INT_INIT_VALUE;
3482
3483         _COREGL_TRACEPATH_FUNC_BEGIN();
3484         ret = _orig_tracepath_glClientWaitSync(sync, flags, timeout);
3485
3486         goto finish;
3487
3488 finish:
3489         _COREGL_TRACEPATH_FUNC_END();
3490         return ret;
3491 }
3492
3493 void
3494 tracepath_glWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout)
3495 {
3496         _COREGL_TRACEPATH_FUNC_BEGIN();
3497         _orig_tracepath_glWaitSync(sync, flags, timeout);
3498
3499         goto finish;
3500
3501 finish:
3502         _COREGL_TRACEPATH_FUNC_END();
3503 }
3504
3505 void
3506 tracepath_glGetInteger64v(GLenum pname, GLint64* params)
3507 {
3508         _COREGL_TRACEPATH_FUNC_BEGIN();
3509         _orig_tracepath_glGetInteger64v(pname, params);
3510
3511         goto finish;
3512
3513 finish:
3514         _COREGL_TRACEPATH_FUNC_END();
3515 }
3516
3517 void
3518 tracepath_glGetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values)
3519 {
3520         _COREGL_TRACEPATH_FUNC_BEGIN();
3521         _orig_tracepath_glGetSynciv(sync, pname, bufSize, length, values);
3522
3523         goto finish;
3524
3525 finish:
3526         _COREGL_TRACEPATH_FUNC_END();
3527 }
3528
3529 void
3530 tracepath_glGetInteger64i_v(GLenum target, GLuint index, GLint64* data)
3531 {
3532         _COREGL_TRACEPATH_FUNC_BEGIN();
3533         _orig_tracepath_glGetInteger64i_v(target, index, data);
3534
3535         goto finish;
3536
3537 finish:
3538         _COREGL_TRACEPATH_FUNC_END();
3539 }
3540
3541 void
3542 tracepath_glGetBufferParameteri64v(GLenum target, GLenum pname, GLint64* params)
3543 {
3544         _COREGL_TRACEPATH_FUNC_BEGIN();
3545         _orig_tracepath_glGetBufferParameteri64v(target, pname, params);
3546
3547         goto finish;
3548
3549 finish:
3550         _COREGL_TRACEPATH_FUNC_END();
3551 }
3552
3553 void
3554 tracepath_glGenSamplers(GLsizei n, GLuint* samplers)
3555 {
3556         _COREGL_TRACEPATH_FUNC_BEGIN();
3557         _orig_tracepath_glGenSamplers(n, samplers);
3558
3559         goto finish;
3560
3561 finish:
3562         _COREGL_TRACEPATH_FUNC_END();
3563 }
3564
3565 void
3566 tracepath_glDeleteSamplers(GLsizei n, const GLuint* samplers)
3567 {
3568         _COREGL_TRACEPATH_FUNC_BEGIN();
3569         _orig_tracepath_glDeleteSamplers(n, samplers);
3570
3571         goto finish;
3572
3573 finish:
3574         _COREGL_TRACEPATH_FUNC_END();
3575 }
3576
3577 GLboolean
3578 tracepath_glIsSampler(GLuint sampler)
3579 {
3580         GLboolean ret = GL_FALSE;
3581
3582         _COREGL_TRACEPATH_FUNC_BEGIN();
3583         ret = _orig_tracepath_glIsSampler(sampler);
3584
3585         goto finish;
3586
3587 finish:
3588         _COREGL_TRACEPATH_FUNC_END();
3589         return ret;
3590 }
3591
3592 void
3593 tracepath_glBindSampler(GLuint unit, GLuint sampler)
3594 {
3595         _COREGL_TRACEPATH_FUNC_BEGIN();
3596         _orig_tracepath_glBindSampler(unit, sampler);
3597
3598         goto finish;
3599
3600 finish:
3601         _COREGL_TRACEPATH_FUNC_END();
3602 }
3603
3604 void
3605 tracepath_glSamplerParameteri(GLuint sampler, GLenum pname, GLint param)
3606 {
3607         _COREGL_TRACEPATH_FUNC_BEGIN();
3608         _orig_tracepath_glSamplerParameteri(sampler, pname, param);
3609
3610         goto finish;
3611
3612 finish:
3613         _COREGL_TRACEPATH_FUNC_END();
3614 }
3615
3616 void
3617 tracepath_glSamplerParameteriv(GLuint sampler, GLenum pname, const GLint* param)
3618 {
3619         _COREGL_TRACEPATH_FUNC_BEGIN();
3620         _orig_tracepath_glSamplerParameteriv(sampler, pname, param);
3621
3622         goto finish;
3623
3624 finish:
3625         _COREGL_TRACEPATH_FUNC_END();
3626 }
3627
3628 void
3629 tracepath_glSamplerParameterf(GLuint sampler, GLenum pname, GLfloat param)
3630 {
3631         _COREGL_TRACEPATH_FUNC_BEGIN();
3632         _orig_tracepath_glSamplerParameterf(sampler, pname, param);
3633
3634         goto finish;
3635
3636 finish:
3637         _COREGL_TRACEPATH_FUNC_END();
3638 }
3639
3640 void
3641 tracepath_glSamplerParameterfv(GLuint sampler, GLenum pname, const GLfloat* param)
3642 {
3643         _COREGL_TRACEPATH_FUNC_BEGIN();
3644         _orig_tracepath_glSamplerParameterfv(sampler, pname, param);
3645
3646         goto finish;
3647
3648 finish:
3649         _COREGL_TRACEPATH_FUNC_END();
3650 }
3651
3652 void
3653 tracepath_glGetSamplerParameteriv(GLuint sampler, GLenum pname, GLint* params)
3654 {
3655         _COREGL_TRACEPATH_FUNC_BEGIN();
3656         _orig_tracepath_glGetSamplerParameteriv(sampler, pname, params);
3657
3658         goto finish;
3659
3660 finish:
3661         _COREGL_TRACEPATH_FUNC_END();
3662 }
3663
3664 void
3665 tracepath_glGetSamplerParameterfv(GLuint sampler, GLenum pname, GLfloat* params)
3666 {
3667         _COREGL_TRACEPATH_FUNC_BEGIN();
3668         _orig_tracepath_glGetSamplerParameterfv(sampler, pname, params);
3669
3670         goto finish;
3671
3672 finish:
3673         _COREGL_TRACEPATH_FUNC_END();
3674 }
3675
3676 void
3677 tracepath_glVertexAttribDivisor(GLuint index, GLuint divisor)
3678 {
3679         _COREGL_TRACEPATH_FUNC_BEGIN();
3680         _orig_tracepath_glVertexAttribDivisor(index, divisor);
3681
3682         goto finish;
3683
3684 finish:
3685         _COREGL_TRACEPATH_FUNC_END();
3686 }
3687
3688 void
3689 tracepath_glBindTransformFeedback(GLenum target, GLuint id)
3690 {
3691         _COREGL_TRACEPATH_FUNC_BEGIN();
3692         _orig_tracepath_glBindTransformFeedback(target, id);
3693
3694         goto finish;
3695
3696 finish:
3697         _COREGL_TRACEPATH_FUNC_END();
3698 }
3699
3700 void
3701 tracepath_glDeleteTransformFeedbacks(GLsizei n, const GLuint* ids)
3702 {
3703         _COREGL_TRACEPATH_FUNC_BEGIN();
3704         _orig_tracepath_glDeleteTransformFeedbacks(n, ids);
3705
3706         goto finish;
3707
3708 finish:
3709         _COREGL_TRACEPATH_FUNC_END();
3710 }
3711
3712 void
3713 tracepath_glGenTransformFeedbacks(GLsizei n, GLuint* ids)
3714 {
3715         _COREGL_TRACEPATH_FUNC_BEGIN();
3716         _orig_tracepath_glGenTransformFeedbacks(n, ids);
3717
3718         goto finish;
3719
3720 finish:
3721         _COREGL_TRACEPATH_FUNC_END();
3722 }
3723
3724 GLboolean
3725 tracepath_glIsTransformFeedback(GLuint id)
3726 {
3727         GLboolean ret = GL_FALSE;
3728
3729         _COREGL_TRACEPATH_FUNC_BEGIN();
3730         ret = _orig_tracepath_glIsTransformFeedback(id);
3731
3732         goto finish;
3733
3734 finish:
3735         _COREGL_TRACEPATH_FUNC_END();
3736         return ret;
3737 }
3738
3739 void
3740 tracepath_glPauseTransformFeedback()
3741 {
3742         _COREGL_TRACEPATH_FUNC_BEGIN();
3743         _orig_tracepath_glPauseTransformFeedback();
3744
3745         goto finish;
3746
3747 finish:
3748         _COREGL_TRACEPATH_FUNC_END();
3749 }
3750
3751 void
3752 tracepath_glResumeTransformFeedback()
3753 {
3754         _COREGL_TRACEPATH_FUNC_BEGIN();
3755         _orig_tracepath_glResumeTransformFeedback();
3756
3757         goto finish;
3758
3759 finish:
3760         _COREGL_TRACEPATH_FUNC_END();
3761 }
3762
3763 void
3764 tracepath_glGetProgramBinary(GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, GLvoid* binary)
3765 {
3766         _COREGL_TRACEPATH_FUNC_BEGIN();
3767         _orig_tracepath_glGetProgramBinary(program, bufSize, length, binaryFormat, binary);
3768
3769         goto finish;
3770
3771 finish:
3772         _COREGL_TRACEPATH_FUNC_END();
3773 }
3774
3775 void
3776 tracepath_glGetProgramBinaryOES(GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, GLvoid* binary)
3777 {
3778         _COREGL_TRACEPATH_FUNC_BEGIN();
3779         _orig_tracepath_glGetProgramBinaryOES(program, bufSize, length, binaryFormat, binary);
3780
3781         goto finish;
3782
3783 finish:
3784         _COREGL_TRACEPATH_FUNC_END();
3785 }
3786
3787 void
3788 tracepath_glProgramBinary(GLuint program, GLenum binaryFormat, const GLvoid* binary, GLsizei length)
3789 {
3790         _COREGL_TRACEPATH_FUNC_BEGIN();
3791         _orig_tracepath_glProgramBinary(program, binaryFormat, binary, length);
3792
3793         goto finish;
3794
3795 finish:
3796         _COREGL_TRACEPATH_FUNC_END();
3797 }
3798
3799 void
3800 tracepath_glProgramBinaryOES(GLuint program, GLenum binaryFormat, const GLvoid* binary, GLsizei length)
3801 {
3802         _COREGL_TRACEPATH_FUNC_BEGIN();
3803         _orig_tracepath_glProgramBinaryOES(program, binaryFormat, binary, length);
3804
3805         goto finish;
3806
3807 finish:
3808         _COREGL_TRACEPATH_FUNC_END();
3809 }
3810
3811 void
3812 tracepath_glProgramParameteri(GLuint program, GLenum pname, GLint value)
3813 {
3814         _COREGL_TRACEPATH_FUNC_BEGIN();
3815         _orig_tracepath_glProgramParameteri(program, pname, value);
3816
3817         goto finish;
3818
3819 finish:
3820         _COREGL_TRACEPATH_FUNC_END();
3821 }
3822
3823 void
3824 tracepath_glInvalidateFramebuffer(GLenum target, GLsizei numAttachments, const GLenum* attachments)
3825 {
3826         _COREGL_TRACEPATH_FUNC_BEGIN();
3827         _orig_tracepath_glInvalidateFramebuffer(target, numAttachments, attachments);
3828
3829         goto finish;
3830
3831 finish:
3832         _COREGL_TRACEPATH_FUNC_END();
3833 }
3834
3835 void
3836 tracepath_glDiscardFramebufferEXT(GLenum target, GLsizei numAttachments, const GLenum* attachments)
3837 {
3838         _COREGL_TRACEPATH_FUNC_BEGIN();
3839         _orig_tracepath_glDiscardFramebufferEXT(target, numAttachments, attachments);
3840
3841         goto finish;
3842
3843 finish:
3844         _COREGL_TRACEPATH_FUNC_END();
3845 }
3846
3847 void
3848 tracepath_glInvalidateSubFramebuffer(GLenum target, GLsizei numAttachments, const GLenum* attachments, GLint x, GLint y, GLsizei width, GLsizei height)
3849 {
3850         _COREGL_TRACEPATH_FUNC_BEGIN();
3851         _orig_tracepath_glInvalidateSubFramebuffer(target, numAttachments, attachments, x, y, width, height);
3852
3853         goto finish;
3854
3855 finish:
3856         _COREGL_TRACEPATH_FUNC_END();
3857 }
3858
3859 void
3860 tracepath_glTexStorage2D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height)
3861 {
3862         _COREGL_TRACEPATH_FUNC_BEGIN();
3863         _orig_tracepath_glTexStorage2D(target, levels, internalformat, width, height);
3864
3865         goto finish;
3866
3867 finish:
3868         _COREGL_TRACEPATH_FUNC_END();
3869 }
3870
3871 void
3872 tracepath_glTexStorage3D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth)
3873 {
3874         _COREGL_TRACEPATH_FUNC_BEGIN();
3875         _orig_tracepath_glTexStorage3D(target, levels, internalformat, width, height, depth);
3876
3877         goto finish;
3878
3879 finish:
3880         _COREGL_TRACEPATH_FUNC_END();
3881 }
3882
3883 void
3884 tracepath_glGetInternalformativ(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint* params)
3885 {
3886         _COREGL_TRACEPATH_FUNC_BEGIN();
3887         _orig_tracepath_glGetInternalformativ(target, internalformat, pname, bufSize, params);
3888
3889         goto finish;
3890
3891 finish:
3892         _COREGL_TRACEPATH_FUNC_END();
3893 }
3894
3895
3896 /* GLES Extensions */
3897 void
3898 tracepath_glEGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image)
3899 {
3900         _COREGL_TRACEPATH_FUNC_BEGIN();
3901         _COREGL_TRACE_SURFACE(0, 1, "TEXTURE2DOES");
3902         _orig_tracepath_glEGLImageTargetTexture2DOES(target, image);
3903         goto finish;
3904
3905 finish:
3906         _COREGL_TRACEPATH_FUNC_END();
3907 #ifdef COREGL_TRACEPATH_TRACE_MEMUSE_INFO
3908         if (trace_mem_flag == 1)
3909         {
3910                 MY_MODULE_TSTATE *tstate = NULL;
3911
3912                 GET_MY_TSTATE(tstate, get_current_thread_state());
3913                 AST(tstate != NULL);
3914                 if (tstate->ctx != NULL)
3915                 {
3916                         int objidx = _COREGL_INT_INIT_VALUE;
3917                         _orig_tracepath_glGetIntegerv(GL_TEXTURE_BINDING_2D, &objidx);
3918                         AST(objidx != _COREGL_INT_INIT_VALUE);
3919
3920                         _add_glbuf_object(tstate->ctx->sostate->glbuf_tex, objidx, "Texture", 0, 0, 0, "Unknown");
3921                 }
3922         }
3923 #endif // COREGL_TRACEPATH_TRACE_MEMUSE_INFO
3924 }
3925
3926 void
3927 tracepath_glEGLImageTargetRenderbufferStorageOES(GLenum target, GLeglImageOES image)
3928 {
3929         _COREGL_TRACEPATH_FUNC_BEGIN();
3930         _orig_tracepath_glEGLImageTargetRenderbufferStorageOES(target, image);
3931         goto finish;
3932
3933 finish:
3934         _COREGL_TRACEPATH_FUNC_END();
3935 #ifdef COREGL_TRACEPATH_TRACE_MEMUSE_INFO
3936         if (trace_mem_flag == 1)
3937         {
3938                 MY_MODULE_TSTATE *tstate = NULL;
3939
3940                 GET_MY_TSTATE(tstate, get_current_thread_state());
3941                 AST(tstate != NULL);
3942                 if (tstate->ctx != NULL)
3943                 {
3944                         int objidx = _COREGL_INT_INIT_VALUE;
3945                         _orig_tracepath_glGetIntegerv(GL_RENDERBUFFER_BINDING, &objidx);
3946                         AST(objidx != _COREGL_INT_INIT_VALUE);
3947
3948                         _add_glbuf_object(tstate->ctx->sostate->glbuf_rb, objidx, "Renderbuffer", 0, 0, 0, "Unknown");
3949                 }
3950         }
3951 #endif // COREGL_TRACEPATH_TRACE_MEMUSE_INFO
3952 }
3953
3954 void
3955 tracepath_glUseProgramStagesEXT(GLuint pipeline, GLbitfield stages, GLuint program)
3956 {
3957         _COREGL_TRACEPATH_FUNC_BEGIN();
3958         _orig_tracepath_glUseProgramStagesEXT(pipeline, stages, program);
3959
3960         goto finish;
3961
3962 finish:
3963         _COREGL_TRACEPATH_FUNC_END();
3964 }
3965
3966 void
3967 tracepath_glActiveShaderProgramEXT(GLuint pipeline, GLuint program)
3968 {
3969         _COREGL_TRACEPATH_FUNC_BEGIN();
3970         _orig_tracepath_glActiveShaderProgramEXT(pipeline, program);
3971
3972         goto finish;
3973
3974 finish:
3975         _COREGL_TRACEPATH_FUNC_END();
3976 }
3977
3978 GLuint
3979 tracepath_glCreateShaderProgramvEXT(GLenum type, GLsizei count, const char **strings)
3980 {
3981         GLuint ret = _COREGL_INT_INIT_VALUE;
3982
3983         _COREGL_TRACEPATH_FUNC_BEGIN();
3984         ret = _orig_tracepath_glCreateShaderProgramvEXT(type, count, strings);
3985
3986         goto finish;
3987
3988 finish:
3989         _COREGL_TRACEPATH_FUNC_END();
3990    return ret;
3991 }
3992
3993 void
3994 tracepath_glBindProgramPipelineEXT(GLuint pipeline)
3995 {
3996         _COREGL_TRACEPATH_FUNC_BEGIN();
3997         _orig_tracepath_glBindProgramPipelineEXT(pipeline);
3998
3999         goto finish;
4000
4001 finish:
4002         _COREGL_TRACEPATH_FUNC_END();
4003 }
4004
4005 void
4006 tracepath_glDeleteProgramPipelinesEXT(GLsizei n, const GLuint *pipelines)
4007 {
4008         _COREGL_TRACEPATH_FUNC_BEGIN();
4009         _orig_tracepath_glDeleteProgramPipelinesEXT(n, pipelines);
4010
4011         goto finish;
4012
4013 finish:
4014         _COREGL_TRACEPATH_FUNC_END();
4015 }
4016
4017 void
4018 tracepath_glGenProgramPipelinesEXT(GLsizei n, GLuint *pipelines)
4019 {
4020         _COREGL_TRACEPATH_FUNC_BEGIN();
4021         _orig_tracepath_glGenProgramPipelinesEXT(n, pipelines);
4022
4023         goto finish;
4024
4025 finish:
4026         _COREGL_TRACEPATH_FUNC_END();
4027 }
4028
4029 GLboolean
4030 tracepath_glIsProgramPipelineEXT(GLuint pipeline)
4031 {
4032         GLboolean ret = _COREGL_INT_INIT_VALUE;
4033
4034         _COREGL_TRACEPATH_FUNC_BEGIN();
4035         ret = _orig_tracepath_glIsProgramPipelineEXT(pipeline);
4036
4037         goto finish;
4038
4039 finish:
4040         _COREGL_TRACEPATH_FUNC_END();
4041    return ret;
4042 }
4043
4044 void
4045 tracepath_glProgramParameteriEXT(GLuint program, GLenum pname, GLint value)
4046 {
4047         _COREGL_TRACEPATH_FUNC_BEGIN();
4048         _orig_tracepath_glProgramParameteriEXT(program, pname, value);
4049
4050         goto finish;
4051
4052 finish:
4053         _COREGL_TRACEPATH_FUNC_END();
4054 }
4055
4056 void
4057 tracepath_glGetProgramPipelineivEXT(GLuint pipeline, GLenum pname, GLint *params)
4058 {
4059         _COREGL_TRACEPATH_FUNC_BEGIN();
4060         _orig_tracepath_glGetProgramPipelineivEXT(pipeline, pname, params);
4061
4062         goto finish;
4063
4064 finish:
4065         _COREGL_TRACEPATH_FUNC_END();
4066 }
4067
4068 void
4069 tracepath_glProgramUniform1iEXT(GLuint program, GLint location, GLint x)
4070 {
4071         _COREGL_TRACEPATH_FUNC_BEGIN();
4072         _orig_tracepath_glProgramUniform1iEXT(program, location, x);
4073
4074         goto finish;
4075
4076 finish:
4077         _COREGL_TRACEPATH_FUNC_END();
4078 }
4079
4080 void
4081 tracepath_glProgramUniform2iEXT(GLuint program, GLint location, GLint x, GLint y)
4082 {
4083         _COREGL_TRACEPATH_FUNC_BEGIN();
4084         _orig_tracepath_glProgramUniform2iEXT(program, location, x, y);
4085
4086         goto finish;
4087
4088 finish:
4089         _COREGL_TRACEPATH_FUNC_END();
4090 }
4091
4092 void
4093 tracepath_glProgramUniform3iEXT(GLuint program, GLint location, GLint x, GLint y, GLint z)
4094 {
4095         _COREGL_TRACEPATH_FUNC_BEGIN();
4096         _orig_tracepath_glProgramUniform3iEXT(program, location, x, y, z);
4097
4098         goto finish;
4099
4100 finish:
4101         _COREGL_TRACEPATH_FUNC_END();
4102 }
4103
4104 void
4105 tracepath_glProgramUniform4iEXT(GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w)
4106 {
4107         _COREGL_TRACEPATH_FUNC_BEGIN();
4108         _orig_tracepath_glProgramUniform4iEXT(program, location, x, y, z, w);
4109
4110         goto finish;
4111
4112 finish:
4113         _COREGL_TRACEPATH_FUNC_END();
4114 }
4115
4116 void
4117 tracepath_glProgramUniform1fEXT(GLuint program, GLint location, GLfloat x)
4118 {
4119         _COREGL_TRACEPATH_FUNC_BEGIN();
4120         _orig_tracepath_glProgramUniform1fEXT(program, location, x);
4121
4122         goto finish;
4123
4124 finish:
4125         _COREGL_TRACEPATH_FUNC_END();
4126 }
4127
4128 void
4129 tracepath_glProgramUniform2fEXT(GLuint program, GLint location, GLfloat x, GLfloat y)
4130 {
4131         _COREGL_TRACEPATH_FUNC_BEGIN();
4132         _orig_tracepath_glProgramUniform2fEXT(program, location, x, y);
4133
4134         goto finish;
4135
4136 finish:
4137         _COREGL_TRACEPATH_FUNC_END();
4138 }
4139
4140 void
4141 tracepath_glProgramUniform3fEXT(GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z)
4142 {
4143         _COREGL_TRACEPATH_FUNC_BEGIN();
4144         _orig_tracepath_glProgramUniform3fEXT(program, location, x, y, z);
4145
4146         goto finish;
4147
4148 finish:
4149         _COREGL_TRACEPATH_FUNC_END();
4150 }
4151
4152 void
4153 tracepath_glProgramUniform4fEXT(GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
4154 {
4155         _COREGL_TRACEPATH_FUNC_BEGIN();
4156         _orig_tracepath_glProgramUniform4fEXT(program, location, x, y, z, w);
4157
4158         goto finish;
4159
4160 finish:
4161         _COREGL_TRACEPATH_FUNC_END();
4162 }
4163
4164 void
4165 tracepath_glProgramUniform1ivEXT(GLuint program, GLint location, GLsizei count, const GLint *value)
4166 {
4167         _COREGL_TRACEPATH_FUNC_BEGIN();
4168         _orig_tracepath_glProgramUniform1ivEXT(program, location, count, value);
4169
4170         goto finish;
4171
4172 finish:
4173         _COREGL_TRACEPATH_FUNC_END();
4174 }
4175
4176 void
4177 tracepath_glProgramUniform2ivEXT(GLuint program, GLint location, GLsizei count, const GLint *value)
4178 {
4179         _COREGL_TRACEPATH_FUNC_BEGIN();
4180         _orig_tracepath_glProgramUniform2ivEXT(program, location, count, value);
4181
4182         goto finish;
4183
4184 finish:
4185         _COREGL_TRACEPATH_FUNC_END();
4186 }
4187
4188 void
4189 tracepath_glProgramUniform3ivEXT(GLuint program, GLint location, GLsizei count, const GLint *value)
4190 {
4191         _COREGL_TRACEPATH_FUNC_BEGIN();
4192         _orig_tracepath_glProgramUniform3ivEXT(program, location, count, value);
4193
4194         goto finish;
4195
4196 finish:
4197         _COREGL_TRACEPATH_FUNC_END();
4198 }
4199
4200 void
4201 tracepath_glProgramUniform4ivEXT(GLuint program, GLint location, GLsizei count, const GLint *value)
4202 {
4203         _COREGL_TRACEPATH_FUNC_BEGIN();
4204         _orig_tracepath_glProgramUniform4ivEXT(program, location, count, value);
4205
4206         goto finish;
4207
4208 finish:
4209         _COREGL_TRACEPATH_FUNC_END();
4210 }
4211
4212 void
4213 tracepath_glProgramUniform1fvEXT(GLuint program, GLint location, GLsizei count, const GLfloat *value)
4214 {
4215         _COREGL_TRACEPATH_FUNC_BEGIN();
4216         _orig_tracepath_glProgramUniform1fvEXT(program, location, count, value);
4217
4218         goto finish;
4219
4220 finish:
4221         _COREGL_TRACEPATH_FUNC_END();
4222 }
4223
4224 void
4225 tracepath_glProgramUniform2fvEXT(GLuint program, GLint location, GLsizei count, const GLfloat *value)
4226 {
4227         _COREGL_TRACEPATH_FUNC_BEGIN();
4228         _orig_tracepath_glProgramUniform2fvEXT(program, location, count, value);
4229
4230         goto finish;
4231
4232 finish:
4233         _COREGL_TRACEPATH_FUNC_END();
4234 }
4235
4236 void
4237 tracepath_glProgramUniform3fvEXT(GLuint program, GLint location, GLsizei count, const GLfloat *value)
4238 {
4239         _COREGL_TRACEPATH_FUNC_BEGIN();
4240         _orig_tracepath_glProgramUniform3fvEXT(program, location, count, value);
4241
4242         goto finish;
4243
4244 finish:
4245         _COREGL_TRACEPATH_FUNC_END();
4246 }
4247
4248 void
4249 tracepath_glProgramUniform4fvEXT(GLuint program, GLint location, GLsizei count, const GLfloat *value)
4250 {
4251         _COREGL_TRACEPATH_FUNC_BEGIN();
4252         _orig_tracepath_glProgramUniform4fvEXT(program, location, count, value);
4253
4254         goto finish;
4255
4256 finish:
4257         _COREGL_TRACEPATH_FUNC_END();
4258 }
4259
4260 void
4261 tracepath_glProgramUniformMatrix2fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
4262 {
4263         _COREGL_TRACEPATH_FUNC_BEGIN();
4264         _orig_tracepath_glProgramUniformMatrix2fvEXT(program, location, count, transpose, value);
4265
4266         goto finish;
4267
4268 finish:
4269         _COREGL_TRACEPATH_FUNC_END();
4270 }
4271
4272 void
4273 tracepath_glProgramUniformMatrix3fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
4274 {
4275         _COREGL_TRACEPATH_FUNC_BEGIN();
4276         _orig_tracepath_glProgramUniformMatrix3fvEXT(program, location, count, transpose, value);
4277
4278         goto finish;
4279
4280 finish:
4281         _COREGL_TRACEPATH_FUNC_END();
4282 }
4283
4284 void
4285 tracepath_glProgramUniformMatrix4fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
4286 {
4287         _COREGL_TRACEPATH_FUNC_BEGIN();
4288         _orig_tracepath_glProgramUniformMatrix4fvEXT(program, location, count, transpose, value);
4289
4290         goto finish;
4291
4292 finish:
4293         _COREGL_TRACEPATH_FUNC_END();
4294 }
4295
4296 void
4297 tracepath_glValidateProgramPipelineEXT(GLuint pipeline)
4298 {
4299         _COREGL_TRACEPATH_FUNC_BEGIN();
4300         _orig_tracepath_glValidateProgramPipelineEXT(pipeline);
4301
4302         goto finish;
4303
4304 finish:
4305         _COREGL_TRACEPATH_FUNC_END();
4306 }
4307
4308 void
4309 tracepath_glGetProgramPipelineInfoLogEXT(GLuint pipeline, GLsizei bufSize, GLsizei *length, char *infoLog)
4310 {
4311         _COREGL_TRACEPATH_FUNC_BEGIN();
4312         _orig_tracepath_glGetProgramPipelineInfoLogEXT(pipeline, bufSize, length, infoLog);
4313
4314         goto finish;
4315
4316 finish:
4317         _COREGL_TRACEPATH_FUNC_END();
4318 }
4319
4320
4321 void
4322 tracepath_glFramebufferTexture2DMultisampleEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples)
4323 {
4324         _COREGL_TRACEPATH_FUNC_BEGIN();
4325
4326 #ifdef COREGL_TRACEPATH_TRACE_SURFACE_INFO
4327         tracepath_fbdump_update(0);
4328 #endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
4329
4330         _orig_tracepath_glFramebufferTexture2DMultisampleEXT(target, attachment, textarget, texture, level, samples);
4331
4332 #ifdef COREGL_TRACEPATH_TRACE_SURFACE_INFO
4333         tracepath_fbdump_update(1);
4334 #endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
4335
4336         goto finish;
4337
4338 finish:
4339         _COREGL_TRACEPATH_FUNC_END();
4340 }
4341
4342 void
4343 tracepath_glFramebufferTexture3DOES(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset)
4344 {
4345         _COREGL_TRACEPATH_FUNC_BEGIN();
4346         _orig_tracepath_glFramebufferTexture3DOES(target, attachment, textarget, texture, level, zoffset);
4347
4348         goto finish;
4349
4350 finish:
4351         _COREGL_TRACEPATH_FUNC_END();
4352 }
4353 /*
4354 void
4355 tracepath_glBlitFramebufferANGLE(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)
4356 {
4357         _COREGL_TRACEPATH_FUNC_BEGIN();
4358         _orig_tracepath_glBlitFramebufferANGLE(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
4359
4360         goto finish;
4361
4362 finish:
4363         _COREGL_TRACEPATH_FUNC_END();
4364 }
4365
4366 void
4367 tracepath_glRenderbufferStorageMultisampleANGLE(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
4368 {
4369         _COREGL_TRACEPATH_FUNC_BEGIN();
4370
4371         _orig_tracepath_glRenderbufferStorageMultisampleANGLE(target, samples, internalformat, width, height);
4372
4373         goto finish;
4374
4375 finish:
4376         _COREGL_TRACEPATH_FUNC_END();
4377 #ifdef COREGL_TRACEPATH_TRACE_MEMUSE_INFO
4378         if (trace_mem_flag == 1)
4379         {
4380                 MY_MODULE_TSTATE *tstate = NULL;
4381
4382                 GET_MY_TSTATE(tstate, get_current_thread_state());
4383                 AST(tstate != NULL);
4384                 if (tstate->ctx != NULL)
4385                 {
4386                         int objidx = _COREGL_INT_INIT_VALUE;
4387                         _orig_tracepath_glGetIntegerv(GL_RENDERBUFFER_BINDING, &objidx);
4388                         AST(objidx != _COREGL_INT_INIT_VALUE);
4389
4390                         // Detect byte per pixel
4391                         int bpp = 0;
4392                         char formatment[80];
4393                         switch (internalformat)
4394                         {
4395                                 case GL_ALPHA: sprintf(formatment, "ALPHA"); bpp = 1; break;
4396                                 case GL_LUMINANCE: sprintf(formatment, "LUMINANCE"); bpp = 1; break;
4397                                 case GL_LUMINANCE_ALPHA: sprintf(formatment, "LUMINANCE_ALPHA"); bpp = 1; break;
4398                                 case GL_RGB: sprintf(formatment, "RGB"); bpp = 2; break;
4399                                 case GL_RGBA: sprintf(formatment, "RGBA"); bpp = 4; break;
4400                                 case 0x80E1: sprintf(formatment, "BGRA_EXT"); bpp = 4; break;
4401                                 case 0x84F9: sprintf(formatment, "DEPTH_STENCIL_OES"); bpp = 4; break;
4402                                 case GL_DEPTH_COMPONENT : sprintf(formatment, "DEPTH_COMPONENT"); bpp = 1; break;
4403                                 case 0x81A5: sprintf(formatment, "DEPTH_COMPONENT16_ARB"); bpp = 2; break;
4404                                 case 0x81A6: sprintf(formatment, "DEPTH_COMPONENT24_ARB"); bpp = 3; break;
4405                                 case 0x81A7: sprintf(formatment, "DEPTH_COMPONENT32_ARB"); bpp = 4; break;
4406                                 case 0x8D46 : sprintf(formatment, "STENCIL_INDEX1_OES"); bpp = 1; break;
4407                                 case 0x8D47 : sprintf(formatment, "STENCIL_INDEX4_OES"); bpp = 1; break;
4408                                 case 0x8D48 : sprintf(formatment, "STENCIL_INDEX8_OES"); bpp = 1; break;
4409                                 default: sprintf(formatment, "0x%X", internalformat); bpp = 0; break;
4410                         }
4411
4412                         _add_glbuf_object(tstate->ctx->sostate->glbuf_rb, objidx, "Renderbuffer", width, height, bpp, formatment);
4413                 }
4414         }
4415 #endif // COREGL_TRACEPATH_TRACE_MEMUSE_INFO
4416 #ifdef COREGL_TRACEPATH_TRACE_SURFACE_INFO
4417         if (trace_surface_flag == 1)
4418         {
4419                 MY_MODULE_TSTATE *tstate = NULL;
4420
4421                 GET_MY_TSTATE(tstate, get_current_thread_state());
4422                 AST(tstate != NULL);
4423                 if (tstate->ctx != NULL)
4424                 {
4425                         int objidx = _COREGL_INT_INIT_VALUE;
4426                         _orig_tracepath_glGetIntegerv(GL_RENDERBUFFER_BINDING, &objidx);
4427                         AST(objidx != _COREGL_INT_INIT_VALUE);
4428
4429                         {
4430                                 int channel = 0;
4431                                 switch (internalformat)
4432                                 {
4433                                         case GL_ALPHA:
4434                                         case GL_LUMINANCE:
4435                                         case GL_DEPTH_COMPONENT :
4436                                         case 0x81A5:
4437                                         case 0x81A6:
4438                                         case 0x81A7:
4439                                         case 0x8D46 :
4440                                         case 0x8D47 :
4441                                         case 0x8D48 : channel = 1; break;
4442                                         case GL_LUMINANCE_ALPHA:
4443                                         case 0x84F9: channel = 2; break;
4444                                         case GL_RGB: channel = 3; break;
4445                                         case GL_RGBA:
4446                                         case 0x80E1: channel = 4; break;
4447                                 }
4448
4449                                 char name[256];
4450                                 sprintf(name, "FBORB_%d", objidx);
4451                                 tracepath_surface_trace_add(name, tstate->ctx->dpy, tstate->ctx->handle, tstate->surf_draw, -1, 0, objidx, width, height, channel, NULL);
4452                         }
4453                 }
4454         }
4455 #endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
4456 }
4457 */
4458
4459
4460 void
4461 tracepath_glGetBufferPointervOES(GLenum target, GLenum pname, GLvoid** params)
4462 {
4463         _COREGL_TRACEPATH_FUNC_BEGIN();
4464         _orig_tracepath_glGetBufferPointervOES(target, pname, params);
4465
4466         goto finish;
4467
4468 finish:
4469         _COREGL_TRACEPATH_FUNC_END();
4470 }
4471
4472
4473 void *
4474 tracepath_glMapBufferOES(GLenum target, GLenum access)
4475 {
4476         void *ret = NULL;
4477
4478         _COREGL_TRACEPATH_FUNC_BEGIN();
4479         ret = _orig_tracepath_glMapBufferOES(target, access);
4480
4481         goto finish;
4482
4483 finish:
4484         _COREGL_TRACEPATH_FUNC_END();
4485    return ret;
4486 }
4487
4488
4489 GLboolean
4490 tracepath_glUnmapBufferOES(GLenum target)
4491 {
4492         GLboolean ret = GL_FALSE;
4493
4494         _COREGL_TRACEPATH_FUNC_BEGIN();
4495         ret = _orig_tracepath_glUnmapBufferOES(target);
4496
4497         goto finish;
4498
4499 finish:
4500         _COREGL_TRACEPATH_FUNC_END();
4501    return ret;
4502 }
4503
4504 /* GLES3.1 API */
4505 void
4506 tracepath_glGetProgramPipelineInfoLog(GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog)
4507 {
4508         _COREGL_TRACEPATH_FUNC_BEGIN();
4509         _orig_tracepath_glGetProgramPipelineInfoLog(pipeline, bufSize, length, infoLog);
4510
4511         goto finish;
4512
4513 finish:
4514         _COREGL_TRACEPATH_FUNC_END();
4515 }
4516
4517 GLuint
4518 tracepath_glCreateShaderProgramv(GLenum type,  GLsizei count,  const GLchar *const*strings)
4519 {
4520         GLboolean ret = GL_FALSE;
4521         _COREGL_TRACEPATH_FUNC_BEGIN();
4522         ret = _orig_tracepath_glCreateShaderProgramv(type, count, strings);
4523
4524         goto finish;
4525
4526 finish:
4527         _COREGL_TRACEPATH_FUNC_END();
4528    return ret;
4529 }
4530
4531 void
4532 tracepath_glGenProgramPipelines( GLsizei n,  GLuint *pipelines)
4533 {
4534         _COREGL_TRACEPATH_FUNC_BEGIN();
4535         _orig_tracepath_glGenProgramPipelines(n, pipelines);
4536
4537         goto finish;
4538
4539 finish:
4540         _COREGL_TRACEPATH_FUNC_END();
4541 }
4542
4543 void
4544 tracepath_glBindProgramPipeline( GLuint pipeline)
4545 {
4546         _COREGL_TRACEPATH_FUNC_BEGIN();
4547         _orig_tracepath_glBindProgramPipeline(pipeline);
4548
4549         goto finish;
4550
4551 finish:
4552         _COREGL_TRACEPATH_FUNC_END();
4553 }
4554
4555 void
4556 tracepath_glGetProgramPipelineiv(GLuint pipeline, GLenum pname, GLint *params)
4557 {
4558         _COREGL_TRACEPATH_FUNC_BEGIN();
4559         _orig_tracepath_glGetProgramPipelineiv(pipeline, pname, params);
4560
4561         goto finish;
4562
4563 finish:
4564         _COREGL_TRACEPATH_FUNC_END();
4565 }
4566
4567 void
4568 tracepath_glDeleteProgramPipelines(GLsizei n, GLuint const *pipelines)
4569 {
4570         _COREGL_TRACEPATH_FUNC_BEGIN();
4571         _orig_tracepath_glDeleteProgramPipelines(n, pipelines);
4572
4573         goto finish;
4574
4575 finish:
4576         _COREGL_TRACEPATH_FUNC_END();
4577 }
4578
4579 GLboolean
4580 tracepath_glIsProgramPipeline( GLuint pipeline)
4581 {
4582         GLboolean ret = GL_FALSE;
4583
4584         _COREGL_TRACEPATH_FUNC_BEGIN();
4585         ret = _orig_tracepath_glIsProgramPipeline(pipeline);
4586
4587         goto finish;
4588
4589 finish:
4590         _COREGL_TRACEPATH_FUNC_END();
4591         return ret;
4592 }
4593
4594 void
4595 tracepath_glValidateProgramPipeline(GLuint pipeline)
4596 {
4597         _COREGL_TRACEPATH_FUNC_BEGIN();
4598         _orig_tracepath_glValidateProgramPipeline(pipeline);
4599
4600         goto finish;
4601
4602 finish:
4603         _COREGL_TRACEPATH_FUNC_END();
4604 }
4605
4606 void
4607 tracepath_glDispatchCompute(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z)
4608 {
4609         _COREGL_TRACEPATH_FUNC_BEGIN();
4610         _orig_tracepath_glDispatchCompute(num_groups_x, num_groups_y, num_groups_z);
4611
4612         goto finish;
4613
4614 finish:
4615         _COREGL_TRACEPATH_FUNC_END();
4616 }
4617
4618 void
4619 tracepath_glDispatchComputeIndirect( GLintptr indirect)
4620 {
4621         _COREGL_TRACEPATH_FUNC_BEGIN();
4622         _orig_tracepath_glDispatchComputeIndirect(indirect);
4623
4624         goto finish;
4625
4626 finish:
4627         _COREGL_TRACEPATH_FUNC_END();
4628 }
4629
4630 void
4631 tracepath_glDrawArraysIndirect(GLenum mode, GLvoid const *indirect)
4632 {
4633         _COREGL_TRACEPATH_FUNC_BEGIN();
4634         _orig_tracepath_glDrawArraysIndirect(mode, indirect);
4635
4636         goto finish;
4637
4638 finish:
4639         _COREGL_TRACEPATH_FUNC_END();
4640 }
4641
4642 void
4643 tracepath_glDrawElementsIndirect(GLenum mode, GLenum type, GLvoid const *indirect)
4644 {
4645         _COREGL_TRACEPATH_FUNC_BEGIN();
4646         _orig_tracepath_glDrawElementsIndirect(mode, type, indirect);
4647
4648         goto finish;
4649
4650 finish:
4651         _COREGL_TRACEPATH_FUNC_END();
4652 }
4653
4654 void
4655 tracepath_glFramebufferParameteri(GLenum target, GLenum pname, GLint param)
4656 {
4657         _COREGL_TRACEPATH_FUNC_BEGIN();
4658         _orig_tracepath_glFramebufferParameteri(target, pname, param);
4659
4660         goto finish;
4661
4662 finish:
4663         _COREGL_TRACEPATH_FUNC_END();
4664 }
4665
4666 void
4667 tracepath_glGetFramebufferParameteriv( GLenum target,  GLenum pname,  GLint * params)
4668 {
4669         _COREGL_TRACEPATH_FUNC_BEGIN();
4670         _orig_tracepath_glGetFramebufferParameteriv(target,  pname,  params);
4671
4672         goto finish;
4673
4674 finish:
4675         _COREGL_TRACEPATH_FUNC_END();
4676 }
4677
4678 void
4679 tracepath_glGetProgramInterfaceiv(GLuint program,  GLenum programInterface,  GLenum pname,  GLint * params)
4680 {
4681         _COREGL_TRACEPATH_FUNC_BEGIN();
4682         _orig_tracepath_glGetProgramInterfaceiv(program, programInterface, pname, params);
4683
4684         goto finish;
4685
4686 finish:
4687         _COREGL_TRACEPATH_FUNC_END();
4688 }
4689
4690 GLuint
4691 tracepath_glGetProgramResourceIndex( GLuint program,  GLenum programInterface,  const char * name)
4692 {
4693         GLuint ret = GL_INVALID_INDEX;
4694         _COREGL_TRACEPATH_FUNC_BEGIN();
4695         ret =  _orig_tracepath_glGetProgramResourceIndex(program,  programInterface,  name);
4696
4697         goto finish;
4698
4699 finish:
4700         _COREGL_TRACEPATH_FUNC_END();
4701         return ret;
4702 }
4703
4704 void
4705 tracepath_glGetProgramResourceName(GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name)
4706 {
4707         _COREGL_TRACEPATH_FUNC_BEGIN();
4708
4709         _orig_tracepath_glGetProgramResourceName(program, programInterface, index, bufSize, length, name);
4710
4711         goto finish;
4712
4713 finish:
4714         _COREGL_TRACEPATH_FUNC_END();
4715 }
4716
4717 void
4718 tracepath_glGetProgramResourceiv( GLuint program,  GLenum programInterface,  GLuint index,  GLsizei propCount,  const GLenum * props,  GLsizei bufSize,  GLsizei * length,  GLint * params)
4719 {
4720         _COREGL_TRACEPATH_FUNC_BEGIN();
4721
4722         _orig_tracepath_glGetProgramResourceiv(program,  programInterface,  index,  propCount,  props,  bufSize,  length,  params);
4723
4724         goto finish;
4725
4726 finish:
4727         _COREGL_TRACEPATH_FUNC_END();
4728 }
4729
4730 GLint
4731 tracepath_glGetProgramResourceLocation(GLuint program, GLenum programInterface, GLchar const *name)
4732 {
4733         GLuint ret = -1;
4734         _COREGL_TRACEPATH_FUNC_BEGIN();
4735
4736         ret = _orig_tracepath_glGetProgramResourceLocation(program, programInterface, name);
4737
4738         goto finish;
4739
4740 finish:
4741         _COREGL_TRACEPATH_FUNC_END();
4742         return ret;
4743 }
4744
4745 void
4746 tracepath_glUseProgramStages(GLuint pipeline, GLbitfield stages, GLuint program)
4747 {
4748         _COREGL_TRACEPATH_FUNC_BEGIN();
4749         _orig_tracepath_glUseProgramStages(pipeline, stages, program);
4750
4751         goto finish;
4752
4753 finish:
4754         _COREGL_TRACEPATH_FUNC_END();
4755 }
4756
4757 void
4758 tracepath_glActiveShaderProgram(GLuint pipeline, GLuint program)
4759 {
4760         _COREGL_TRACEPATH_FUNC_BEGIN();
4761         _orig_tracepath_glActiveShaderProgram(pipeline, program);
4762
4763         goto finish;
4764
4765 finish:
4766         _COREGL_TRACEPATH_FUNC_END();
4767 }
4768
4769 void
4770 tracepath_glProgramUniform1iv(GLuint program, GLint location, GLsizei count, const GLint *value)
4771 {
4772         _COREGL_TRACEPATH_FUNC_BEGIN();
4773         _orig_tracepath_glProgramUniform1iv(program, location, count, value);
4774
4775         goto finish;
4776
4777 finish:
4778         _COREGL_TRACEPATH_FUNC_END();
4779 }
4780
4781 void
4782 tracepath_glProgramUniform2iv(GLuint program, GLint location, GLsizei count, const GLint *value)
4783 {
4784         _COREGL_TRACEPATH_FUNC_BEGIN();
4785         _orig_tracepath_glProgramUniform2iv(program, location, count, value);
4786
4787         goto finish;
4788
4789 finish:
4790         _COREGL_TRACEPATH_FUNC_END();
4791 }
4792
4793 void
4794 tracepath_glProgramUniform3iv(GLuint program, GLint location, GLsizei count, const GLint *value)
4795 {
4796         _COREGL_TRACEPATH_FUNC_BEGIN();
4797         _orig_tracepath_glProgramUniform3iv(program, location, count, value);
4798
4799         goto finish;
4800
4801 finish:
4802         _COREGL_TRACEPATH_FUNC_END();
4803 }
4804
4805 void
4806 tracepath_glProgramUniform4iv(GLuint program, GLint location, GLsizei count, const GLint *value)
4807 {
4808         _COREGL_TRACEPATH_FUNC_BEGIN();
4809         _orig_tracepath_glProgramUniform4iv(program, location, count, value);
4810
4811         goto finish;
4812
4813 finish:
4814         _COREGL_TRACEPATH_FUNC_END();
4815 }
4816
4817 void
4818 tracepath_glProgramUniform1fv(GLuint program, GLint location, GLsizei count, const GLfloat *value)
4819 {
4820         _COREGL_TRACEPATH_FUNC_BEGIN();
4821         _orig_tracepath_glProgramUniform1fv(program, location, count, value);
4822
4823         goto finish;
4824
4825 finish:
4826         _COREGL_TRACEPATH_FUNC_END();
4827 }
4828
4829 void
4830 tracepath_glProgramUniform2fv(GLuint program, GLint location, GLsizei count, const GLfloat *value)
4831 {
4832         _COREGL_TRACEPATH_FUNC_BEGIN();
4833         _orig_tracepath_glProgramUniform2fv(program, location, count, value);
4834
4835         goto finish;
4836
4837 finish:
4838         _COREGL_TRACEPATH_FUNC_END();
4839 }
4840
4841 void
4842 tracepath_glProgramUniform3fv(GLuint program, GLint location, GLsizei count, const GLfloat *value)
4843 {
4844         _COREGL_TRACEPATH_FUNC_BEGIN();
4845         _orig_tracepath_glProgramUniform3fv(program, location, count, value);
4846
4847         goto finish;
4848
4849 finish:
4850         _COREGL_TRACEPATH_FUNC_END();
4851 }
4852
4853 void
4854 tracepath_glProgramUniform4fv(GLuint program, GLint location, GLsizei count, const GLfloat *value)
4855 {
4856         _COREGL_TRACEPATH_FUNC_BEGIN();
4857         _orig_tracepath_glProgramUniform4fv(program, location, count, value);
4858
4859         goto finish;
4860
4861 finish:
4862         _COREGL_TRACEPATH_FUNC_END();
4863 }
4864
4865 void
4866 tracepath_glProgramUniformMatrix2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
4867 {
4868         _COREGL_TRACEPATH_FUNC_BEGIN();
4869         _orig_tracepath_glProgramUniformMatrix2fv(program, location, count, transpose, value);
4870
4871         goto finish;
4872
4873 finish:
4874         _COREGL_TRACEPATH_FUNC_END();
4875 }
4876
4877 void
4878 tracepath_glProgramUniformMatrix3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
4879 {
4880         _COREGL_TRACEPATH_FUNC_BEGIN();
4881         _orig_tracepath_glProgramUniformMatrix3fv(program, location, count, transpose, value);
4882
4883         goto finish;
4884
4885 finish:
4886         _COREGL_TRACEPATH_FUNC_END();
4887 }
4888
4889 void
4890 tracepath_glProgramUniformMatrix4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
4891 {
4892         _COREGL_TRACEPATH_FUNC_BEGIN();
4893         _orig_tracepath_glProgramUniformMatrix4fv(program, location, count, transpose, value);
4894
4895         goto finish;
4896
4897 finish:
4898         _COREGL_TRACEPATH_FUNC_END();
4899 }
4900
4901 void
4902 tracepath_glProgramUniform1i(GLuint program, GLint location, GLint x)
4903 {
4904         _COREGL_TRACEPATH_FUNC_BEGIN();
4905         _orig_tracepath_glProgramUniform1i(program, location, x);
4906
4907         goto finish;
4908
4909 finish:
4910         _COREGL_TRACEPATH_FUNC_END();
4911 }
4912
4913 void
4914 tracepath_glProgramUniform2i(GLuint program, GLint location, GLint x, GLint y)
4915 {
4916         _COREGL_TRACEPATH_FUNC_BEGIN();
4917         _orig_tracepath_glProgramUniform2i(program, location, x, y);
4918
4919         goto finish;
4920
4921 finish:
4922         _COREGL_TRACEPATH_FUNC_END();
4923 }
4924
4925 void
4926 tracepath_glProgramUniform3i(GLuint program, GLint location, GLint x, GLint y, GLint z)
4927 {
4928         _COREGL_TRACEPATH_FUNC_BEGIN();
4929         _orig_tracepath_glProgramUniform3i(program, location, x, y, z);
4930
4931         goto finish;
4932
4933 finish:
4934         _COREGL_TRACEPATH_FUNC_END();
4935 }
4936
4937 void
4938 tracepath_glProgramUniform4i(GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w)
4939 {
4940         _COREGL_TRACEPATH_FUNC_BEGIN();
4941         _orig_tracepath_glProgramUniform4i(program, location, x, y, z, w);
4942
4943         goto finish;
4944
4945 finish:
4946         _COREGL_TRACEPATH_FUNC_END();
4947 }
4948
4949 void
4950 tracepath_glProgramUniform1f(GLuint program, GLint location, GLfloat x)
4951 {
4952         _COREGL_TRACEPATH_FUNC_BEGIN();
4953         _orig_tracepath_glProgramUniform1f(program, location, x);
4954
4955         goto finish;
4956
4957 finish:
4958         _COREGL_TRACEPATH_FUNC_END();
4959 }
4960
4961 void
4962 tracepath_glProgramUniform2f(GLuint program, GLint location, GLfloat x, GLfloat y)
4963 {
4964         _COREGL_TRACEPATH_FUNC_BEGIN();
4965         _orig_tracepath_glProgramUniform2f(program, location, x, y);
4966
4967         goto finish;
4968
4969 finish:
4970         _COREGL_TRACEPATH_FUNC_END();
4971 }
4972
4973 void
4974 tracepath_glProgramUniform3f(GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z)
4975 {
4976         _COREGL_TRACEPATH_FUNC_BEGIN();
4977         _orig_tracepath_glProgramUniform3f(program, location, x, y, z);
4978
4979         goto finish;
4980
4981 finish:
4982         _COREGL_TRACEPATH_FUNC_END();
4983 }
4984
4985 void
4986 tracepath_glProgramUniform4f(GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
4987 {
4988         _COREGL_TRACEPATH_FUNC_BEGIN();
4989         _orig_tracepath_glProgramUniform4f(program, location, x, y, z, w);
4990
4991         goto finish;
4992
4993 finish:
4994         _COREGL_TRACEPATH_FUNC_END();
4995 }
4996
4997 void
4998 tracepath_glProgramUniform1ui(GLuint program, GLint location, GLuint x)
4999 {
5000         _COREGL_TRACEPATH_FUNC_BEGIN();
5001         _orig_tracepath_glProgramUniform1ui(program, location, x);
5002
5003         goto finish;
5004
5005 finish:
5006         _COREGL_TRACEPATH_FUNC_END();
5007 }
5008
5009 void
5010 tracepath_glProgramUniform2ui(GLuint program, GLint location, GLuint x, GLuint y)
5011 {
5012         _COREGL_TRACEPATH_FUNC_BEGIN();
5013         _orig_tracepath_glProgramUniform2ui(program, location, x, y);
5014
5015         goto finish;
5016
5017 finish:
5018         _COREGL_TRACEPATH_FUNC_END();
5019 }
5020
5021 void
5022 tracepath_glProgramUniform3ui(GLuint program, GLint location, GLuint x, GLuint y, GLuint z)
5023 {
5024         _COREGL_TRACEPATH_FUNC_BEGIN();
5025         _orig_tracepath_glProgramUniform3ui(program, location, x, y, z);
5026
5027         goto finish;
5028
5029 finish:
5030         _COREGL_TRACEPATH_FUNC_END();
5031 }
5032
5033 void
5034 tracepath_glProgramUniform4ui(GLuint program, GLint location, GLuint x, GLuint y, GLuint z, GLuint w)
5035 {
5036         _COREGL_TRACEPATH_FUNC_BEGIN();
5037         _orig_tracepath_glProgramUniform4ui(program, location, x, y, z, w);
5038
5039         goto finish;
5040
5041 finish:
5042         _COREGL_TRACEPATH_FUNC_END();
5043 }
5044
5045 void
5046 tracepath_glProgramUniform1uiv(GLuint program, GLint location, GLsizei count, const GLuint *value)
5047 {
5048         _COREGL_TRACEPATH_FUNC_BEGIN();
5049         _orig_tracepath_glProgramUniform1uiv(program, location, count, value);
5050
5051         goto finish;
5052
5053 finish:
5054         _COREGL_TRACEPATH_FUNC_END();
5055 }
5056
5057 void
5058 tracepath_glProgramUniform2uiv(GLuint program, GLint location, GLsizei count, const GLuint *value)
5059 {
5060         _COREGL_TRACEPATH_FUNC_BEGIN();
5061         _orig_tracepath_glProgramUniform2uiv(program, location, count, value);
5062
5063         goto finish;
5064
5065 finish:
5066         _COREGL_TRACEPATH_FUNC_END();
5067 }
5068
5069 void
5070 tracepath_glProgramUniform3uiv(GLuint program, GLint location, GLsizei count, const GLuint *value)
5071 {
5072         _COREGL_TRACEPATH_FUNC_BEGIN();
5073         _orig_tracepath_glProgramUniform3uiv(program, location, count, value);
5074
5075         goto finish;
5076
5077 finish:
5078         _COREGL_TRACEPATH_FUNC_END();
5079 }
5080
5081 void
5082 tracepath_glProgramUniform4uiv(GLuint program, GLint location, GLsizei count, const GLuint *value)
5083 {
5084         _COREGL_TRACEPATH_FUNC_BEGIN();
5085         _orig_tracepath_glProgramUniform4uiv(program, location, count, value);
5086
5087         goto finish;
5088
5089 finish:
5090         _COREGL_TRACEPATH_FUNC_END();
5091 }
5092
5093 void
5094 tracepath_glProgramUniformMatrix2x3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
5095 {
5096         _COREGL_TRACEPATH_FUNC_BEGIN();
5097         _orig_tracepath_glProgramUniformMatrix2x3fv(program, location, count, transpose, value);
5098
5099         goto finish;
5100
5101 finish:
5102         _COREGL_TRACEPATH_FUNC_END();
5103 }
5104
5105 void
5106 tracepath_glProgramUniformMatrix3x2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
5107 {
5108         _COREGL_TRACEPATH_FUNC_BEGIN();
5109         _orig_tracepath_glProgramUniformMatrix3x2fv(program, location, count, transpose, value);
5110
5111         goto finish;
5112
5113 finish:
5114         _COREGL_TRACEPATH_FUNC_END();
5115 }
5116
5117 void
5118 tracepath_glProgramUniformMatrix4x2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
5119 {
5120         _COREGL_TRACEPATH_FUNC_BEGIN();
5121         _orig_tracepath_glProgramUniformMatrix4x2fv(program, location, count, transpose, value);
5122
5123         goto finish;
5124
5125 finish:
5126         _COREGL_TRACEPATH_FUNC_END();
5127 }
5128
5129 void
5130 tracepath_glProgramUniformMatrix2x4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
5131 {
5132         _COREGL_TRACEPATH_FUNC_BEGIN();
5133         _orig_tracepath_glProgramUniformMatrix2x4fv(program, location, count, transpose, value);
5134
5135         goto finish;
5136
5137 finish:
5138         _COREGL_TRACEPATH_FUNC_END();
5139 }
5140
5141 void
5142 tracepath_glProgramUniformMatrix3x4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
5143 {
5144         _COREGL_TRACEPATH_FUNC_BEGIN();
5145         _orig_tracepath_glProgramUniformMatrix3x4fv(program, location, count, transpose, value);
5146
5147         goto finish;
5148
5149 finish:
5150         _COREGL_TRACEPATH_FUNC_END();
5151 }
5152
5153 void
5154 tracepath_glProgramUniformMatrix4x3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
5155 {
5156         _COREGL_TRACEPATH_FUNC_BEGIN();
5157         _orig_tracepath_glProgramUniformMatrix4x3fv(program, location, count, transpose, value);
5158
5159         goto finish;
5160
5161 finish:
5162         _COREGL_TRACEPATH_FUNC_END();
5163 }
5164
5165 void
5166 tracepath_glBindImageTexture(GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format)
5167 {
5168         _COREGL_TRACEPATH_FUNC_BEGIN();
5169
5170         _orig_tracepath_glBindImageTexture(unit, texture, level, layered, layer, access, format);
5171
5172         goto finish;
5173
5174 finish:
5175         _COREGL_TRACEPATH_FUNC_END();
5176 }
5177
5178 void
5179 tracepath_glGetBooleani_v (GLenum target, GLuint index, GLboolean *data)
5180 {
5181         _COREGL_TRACEPATH_FUNC_BEGIN();
5182         _orig_tracepath_glGetBooleani_v (target, index, data);
5183
5184         goto finish;
5185
5186 finish:
5187         _COREGL_TRACEPATH_FUNC_END();
5188 }
5189
5190 void
5191 tracepath_glMemoryBarrier (GLbitfield barriers)
5192 {
5193         _COREGL_TRACEPATH_FUNC_BEGIN();
5194         _orig_tracepath_glMemoryBarrier (barriers);
5195
5196         goto finish;
5197
5198 finish:
5199         _COREGL_TRACEPATH_FUNC_END();
5200 }
5201
5202 void tracepath_glMemoryBarrierByRegion (GLbitfield barriers)
5203 {
5204         _COREGL_TRACEPATH_FUNC_BEGIN();
5205         _orig_tracepath_glMemoryBarrierByRegion (barriers);
5206
5207         goto finish;
5208
5209 finish:
5210         _COREGL_TRACEPATH_FUNC_END();
5211 }
5212
5213 void
5214 tracepath_glTexStorage2DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations)
5215 {
5216         _COREGL_TRACEPATH_FUNC_BEGIN();
5217         _orig_tracepath_glTexStorage2DMultisample (target, samples, internalformat, width, height, fixedsamplelocations);
5218
5219         goto finish;
5220
5221 finish:
5222         _COREGL_TRACEPATH_FUNC_END();
5223 }
5224
5225 void
5226 tracepath_glGetMultisamplefv (GLenum pname, GLuint index, GLfloat *val)
5227 {
5228         _COREGL_TRACEPATH_FUNC_BEGIN();
5229         _orig_tracepath_glGetMultisamplefv (pname, index, val);
5230
5231         goto finish;
5232
5233 finish:
5234         _COREGL_TRACEPATH_FUNC_END();
5235 }
5236
5237 void
5238 tracepath_glSampleMaski (GLuint maskNumber, GLbitfield mask)
5239 {
5240         _COREGL_TRACEPATH_FUNC_BEGIN();
5241         _orig_tracepath_glSampleMaski (maskNumber, mask);
5242
5243         goto finish;
5244
5245 finish:
5246         _COREGL_TRACEPATH_FUNC_END();
5247 }
5248
5249 void
5250 tracepath_glGetTexLevelParameteriv (GLenum target, GLint level, GLenum pname, GLint *params)
5251 {
5252         _COREGL_TRACEPATH_FUNC_BEGIN();
5253         _orig_tracepath_glGetTexLevelParameteriv (target, level, pname, params);
5254
5255         goto finish;
5256
5257 finish:
5258         _COREGL_TRACEPATH_FUNC_END();
5259 }
5260
5261 void
5262 tracepath_glGetTexLevelParameterfv (GLenum target, GLint level, GLenum pname, GLfloat *params)
5263 {
5264         _COREGL_TRACEPATH_FUNC_BEGIN();
5265         _orig_tracepath_glGetTexLevelParameterfv (target, level, pname, params);
5266
5267         goto finish;
5268
5269 finish:
5270         _COREGL_TRACEPATH_FUNC_END();
5271 }
5272
5273 void
5274 tracepath_glBindVertexBuffer (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride)
5275 {
5276         _COREGL_TRACEPATH_FUNC_BEGIN();
5277         _orig_tracepath_glBindVertexBuffer (bindingindex, buffer, offset, stride);
5278
5279         goto finish;
5280
5281 finish:
5282         _COREGL_TRACEPATH_FUNC_END();
5283 }
5284
5285
5286 void tracepath_glVertexAttribFormat (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset)
5287 {
5288         _COREGL_TRACEPATH_FUNC_BEGIN();
5289         _orig_tracepath_glVertexAttribFormat (attribindex, size, type, normalized, relativeoffset);
5290
5291         goto finish;
5292
5293 finish:
5294         _COREGL_TRACEPATH_FUNC_END();
5295 }
5296
5297 void tracepath_glVertexAttribIFormat (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset)
5298 {
5299         _COREGL_TRACEPATH_FUNC_BEGIN();
5300         _orig_tracepath_glVertexAttribIFormat (attribindex, size, type, relativeoffset);
5301
5302         goto finish;
5303
5304 finish:
5305         _COREGL_TRACEPATH_FUNC_END();
5306 }
5307
5308 void tracepath_glVertexAttribBinding (GLuint attribindex, GLuint bindingindex)
5309 {
5310         _COREGL_TRACEPATH_FUNC_BEGIN();
5311         _orig_tracepath_glVertexAttribBinding (attribindex, bindingindex);
5312
5313         goto finish;
5314
5315 finish:
5316         _COREGL_TRACEPATH_FUNC_END();
5317 }
5318
5319 void tracepath_glVertexBindingDivisor (GLuint bindingindex, GLuint divisor)
5320 {
5321         _COREGL_TRACEPATH_FUNC_BEGIN();
5322         _orig_tracepath_glVertexBindingDivisor (bindingindex, divisor);
5323
5324         goto finish;
5325
5326 finish:
5327         _COREGL_TRACEPATH_FUNC_END();
5328 }
5329 void
5330 tracepath_glBindFramebufferOES(GLenum target, GLuint framebuffer)
5331 {
5332         _COREGL_TRACEPATH_FUNC_BEGIN();
5333
5334 #ifdef COREGL_TRACEPATH_TRACE_SURFACE_INFO
5335         if (unlikely(trace_surface_flag == 1))
5336         {
5337                 GLint oldfb;
5338                 _orig_tracepath_glGetIntegerv(GL_FRAMEBUFFER_BINDING, &oldfb);
5339                 if (oldfb != 0)
5340                 {
5341                         _COREGL_TRACE_SURFACE(0, 2, "GLBINDFBO");
5342                 }
5343
5344                 tracepath_fbdump_update(0);
5345         }
5346 #endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
5347
5348         _orig_tracepath_glBindFramebufferOES(target, framebuffer);
5349
5350 #ifdef COREGL_TRACEPATH_TRACE_SURFACE_INFO
5351         if (unlikely(trace_surface_flag == 1))
5352         {
5353                 tracepath_fbdump_update(1);
5354         }
5355 #endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
5356
5357         goto finish;
5358
5359 finish:
5360         _COREGL_TRACEPATH_FUNC_END();
5361 }
5362
5363 void
5364 tracepath_glBindRenderbufferOES(GLenum target, GLuint renderbuffer)
5365 {
5366         _COREGL_TRACEPATH_FUNC_BEGIN();
5367         _orig_tracepath_glBindRenderbufferOES(target, renderbuffer);
5368
5369         goto finish;
5370
5371 finish:
5372         _COREGL_TRACEPATH_FUNC_END();
5373 }
5374
5375 void
5376 tracepath_glDeleteFramebuffersOES(GLsizei n, const GLuint* framebuffers)
5377 {
5378         _COREGL_TRACEPATH_FUNC_BEGIN();
5379
5380 #ifdef COREGL_TRACEPATH_TRACE_SURFACE_INFO
5381         tracepath_fbdump_update(0);
5382 #endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
5383
5384         _orig_tracepath_glDeleteFramebuffersOES(n, framebuffers);
5385
5386 #ifdef COREGL_TRACEPATH_TRACE_SURFACE_INFO
5387         tracepath_fbdump_update(1);
5388 #endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
5389
5390         goto finish;
5391
5392 finish:
5393         _COREGL_TRACEPATH_FUNC_END();
5394 }
5395
5396 void
5397 tracepath_glDeleteRenderbuffersOES(GLsizei n, const GLuint* renderbuffers)
5398 {
5399         _COREGL_TRACEPATH_FUNC_BEGIN();
5400
5401 #ifdef COREGL_TRACEPATH_TRACE_SURFACE_INFO
5402         tracepath_fbdump_update(0);
5403 #endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
5404
5405         _orig_tracepath_glDeleteRenderbuffersOES(n, renderbuffers);
5406
5407 #ifdef COREGL_TRACEPATH_TRACE_SURFACE_INFO
5408         tracepath_fbdump_update(1);
5409 #endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
5410
5411         goto finish;
5412
5413 finish:
5414         _COREGL_TRACEPATH_FUNC_END();
5415 #ifdef COREGL_TRACEPATH_TRACE_MEMUSE_INFO
5416         if (trace_mem_flag == 1)
5417         {
5418                 MY_MODULE_TSTATE *tstate = NULL;
5419
5420                 GET_MY_TSTATE(tstate, get_current_thread_state());
5421                 AST(tstate != NULL);
5422                 if (tstate->ctx != NULL)
5423                 {
5424                         for (int i = 0; i < n; i++)
5425                         {
5426                                 if (renderbuffers[i] == 0) continue;
5427                                 _remove_glbuf_object(tstate->ctx->sostate->glbuf_rb, renderbuffers[i], "Renderbuffer");
5428                         }
5429                 }
5430         }
5431 #endif // COREGL_TRACEPATH_TRACE_MEMUSE_INFO
5432 }
5433
5434 void
5435 tracepath_glDepthRangefOES(GLclampf zNear, GLclampf zFar)
5436 {
5437         _COREGL_TRACEPATH_FUNC_BEGIN();
5438         _orig_tracepath_glDepthRangefOES(zNear, zFar);
5439
5440         goto finish;
5441
5442 finish:
5443         _COREGL_TRACEPATH_FUNC_END();
5444 }
5445
5446 void
5447 tracepath_glDepthRangexOES(GLclampx zNear, GLclampx zFar)
5448 {
5449         _COREGL_TRACEPATH_FUNC_BEGIN();
5450         _orig_tracepath_glDepthRangexOES(zNear, zFar);
5451
5452         goto finish;
5453
5454 finish:
5455         _COREGL_TRACEPATH_FUNC_END();
5456 }
5457
5458 void
5459 tracepath_glFramebufferRenderbufferOES(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
5460 {
5461         _COREGL_TRACEPATH_FUNC_BEGIN();
5462
5463 #ifdef COREGL_TRACEPATH_TRACE_SURFACE_INFO
5464         tracepath_fbdump_update(0);
5465 #endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
5466
5467         _orig_tracepath_glFramebufferRenderbufferOES(target, attachment, renderbuffertarget, renderbuffer);
5468
5469 #ifdef COREGL_TRACEPATH_TRACE_SURFACE_INFO
5470         tracepath_fbdump_update(1);
5471 #endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
5472
5473         goto finish;
5474
5475 finish:
5476         _COREGL_TRACEPATH_FUNC_END();
5477 }
5478
5479 void
5480 tracepath_glFramebufferTexture2DOES(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
5481 {
5482         _COREGL_TRACEPATH_FUNC_BEGIN();
5483
5484 #ifdef COREGL_TRACEPATH_TRACE_SURFACE_INFO
5485         tracepath_fbdump_update(0);
5486 #endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
5487
5488         _orig_tracepath_glFramebufferTexture2DOES(target, attachment, textarget, texture, level);
5489
5490 #ifdef COREGL_TRACEPATH_TRACE_SURFACE_INFO
5491         tracepath_fbdump_update(1);
5492 #endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
5493
5494         goto finish;
5495
5496 finish:
5497         _COREGL_TRACEPATH_FUNC_END();
5498 }
5499
5500 void
5501 tracepath_glGenFramebuffersOES(GLsizei n, GLuint* framebuffers)
5502 {
5503         _COREGL_TRACEPATH_FUNC_BEGIN();
5504         _orig_tracepath_glGenFramebuffersOES(n, framebuffers);
5505
5506         goto finish;
5507
5508 finish:
5509         _COREGL_TRACEPATH_FUNC_END();
5510 }
5511
5512 void
5513 tracepath_glGenRenderbuffersOES(GLsizei n, GLuint* renderbuffers)
5514 {
5515         _COREGL_TRACEPATH_FUNC_BEGIN();
5516         _orig_tracepath_glGenRenderbuffersOES(n, renderbuffers);
5517
5518         goto finish;
5519
5520 finish:
5521         _COREGL_TRACEPATH_FUNC_END();
5522 #ifdef COREGL_TRACEPATH_TRACE_MEMUSE_INFO
5523         if (trace_mem_flag == 1)
5524         {
5525                 MY_MODULE_TSTATE *tstate = NULL;
5526
5527                 GET_MY_TSTATE(tstate, get_current_thread_state());
5528                 AST(tstate != NULL);
5529                 if (tstate->ctx != NULL)
5530                 {
5531                         for (int i = 0; i < n; i++)
5532                         {
5533                                 if (renderbuffers[i] == 0) continue;
5534                                 _add_glbuf_object(tstate->ctx->sostate->glbuf_rb, renderbuffers[i], "Renderbuffer", 0, 0, 0, "Unknown");
5535                         }
5536                 }
5537         }
5538 #endif // COREGL_TRACEPATH_TRACE_MEMUSE_INFO
5539 }
5540
5541 void
5542 tracepath_glGetFramebufferAttachmentParameterivOES(GLenum target, GLenum attachment, GLenum pname, GLint* params)
5543 {
5544         _COREGL_TRACEPATH_FUNC_BEGIN();
5545         _orig_tracepath_glGetFramebufferAttachmentParameterivOES(target, attachment, pname, params);
5546
5547         goto finish;
5548
5549 finish:
5550         _COREGL_TRACEPATH_FUNC_END();
5551 }
5552
5553 void
5554 tracepath_glGetQueryObjecti64vEXT(GLuint id, GLenum pname, GLint64 *params)
5555 {
5556         _COREGL_TRACEPATH_FUNC_BEGIN();
5557         _orig_tracepath_glGetQueryObjecti64vEXT(id, pname, params);
5558
5559         goto finish;
5560
5561 finish:
5562         _COREGL_TRACEPATH_FUNC_END();
5563 }
5564
5565 void
5566 tracepath_glGetQueryObjectivEXT(GLuint id, GLenum pname, GLint *params)
5567 {
5568         _COREGL_TRACEPATH_FUNC_BEGIN();
5569         _orig_tracepath_glGetQueryObjectivEXT(id, pname, params);
5570
5571         goto finish;
5572
5573 finish:
5574         _COREGL_TRACEPATH_FUNC_END();
5575 }
5576
5577 void
5578 tracepath_glGetQueryObjectui64vEXT(GLuint id, GLenum pname, GLuint64 *params)
5579 {
5580         _COREGL_TRACEPATH_FUNC_BEGIN();
5581         _orig_tracepath_glGetQueryObjectui64vEXT(id, pname, params);
5582
5583         goto finish;
5584
5585 finish:
5586         _COREGL_TRACEPATH_FUNC_END();
5587 }
5588
5589 void
5590 tracepath_glGetQueryObjectuivEXT(GLuint id, GLenum pname, GLuint* params)
5591 {
5592         _COREGL_TRACEPATH_FUNC_BEGIN();
5593         _orig_tracepath_glGetQueryObjectuivEXT(id, pname, params);
5594
5595         goto finish;
5596
5597 finish:
5598         _COREGL_TRACEPATH_FUNC_END();
5599 }
5600
5601 void
5602 tracepath_glGetQueryivEXT(GLenum target, GLenum pname, GLint* params)
5603 {
5604         _COREGL_TRACEPATH_FUNC_BEGIN();
5605         _orig_tracepath_glGetQueryivEXT(target, pname, params);
5606
5607         goto finish;
5608
5609 finish:
5610         _COREGL_TRACEPATH_FUNC_END();
5611 }
5612
5613 void
5614 tracepath_glBeginQueryEXT(GLenum target, GLuint id)
5615 {
5616         _COREGL_TRACEPATH_FUNC_BEGIN();
5617         _orig_tracepath_glBeginQueryEXT(target, id);
5618
5619         goto finish;
5620
5621 finish:
5622         _COREGL_TRACEPATH_FUNC_END();
5623 }
5624
5625
5626 void
5627 tracepath_glDeleteQueriesEXT(GLsizei n, const GLuint* ids)
5628 {
5629         _COREGL_TRACEPATH_FUNC_BEGIN();
5630         _orig_tracepath_glDeleteQueriesEXT(n, ids);
5631
5632         goto finish;
5633
5634 finish:
5635         _COREGL_TRACEPATH_FUNC_END();
5636 }
5637
5638 void
5639 tracepath_glGenQueriesEXT(GLsizei n, GLuint* ids)
5640 {
5641         _COREGL_TRACEPATH_FUNC_BEGIN();
5642         _orig_tracepath_glGenQueriesEXT(n, ids);
5643
5644         goto finish;
5645
5646 finish:
5647         _COREGL_TRACEPATH_FUNC_END();
5648 }
5649
5650 GLboolean
5651 tracepath_glIsFramebufferOES(GLuint framebuffer)
5652 {
5653         GLboolean ret = GL_FALSE;
5654
5655         _COREGL_TRACEPATH_FUNC_BEGIN();
5656         ret = _orig_tracepath_glIsFramebufferOES(framebuffer);
5657
5658         goto finish;
5659
5660 finish:
5661         _COREGL_TRACEPATH_FUNC_END();
5662         return ret;
5663 }
5664
5665 GLboolean
5666 tracepath_glIsQueryEXT(GLuint id)
5667 {
5668         GLboolean ret = GL_FALSE;
5669
5670         _COREGL_TRACEPATH_FUNC_BEGIN();
5671         ret = _orig_tracepath_glIsQueryEXT(id);
5672
5673         goto finish;
5674
5675 finish:
5676         _COREGL_TRACEPATH_FUNC_END();
5677         return ret;
5678 }
5679
5680 GLboolean
5681 tracepath_glIsRenderbufferOES(GLuint renderbuffer)
5682 {
5683         GLboolean ret;
5684         _COREGL_TRACEPATH_FUNC_BEGIN();
5685         ret = _orig_tracepath_glIsRenderbufferOES(renderbuffer);
5686
5687         goto finish;
5688
5689 finish:
5690         _COREGL_TRACEPATH_FUNC_END();
5691         return ret;
5692 }
5693
5694 void
5695 tracepath_glEndQueryEXT(GLenum target)
5696 {
5697         _COREGL_TRACEPATH_FUNC_BEGIN();
5698         _orig_tracepath_glEndQueryEXT(target);
5699
5700         goto finish;
5701
5702 finish:
5703         _COREGL_TRACEPATH_FUNC_END();
5704 }
5705
5706 void
5707 tracepath_glAlphaFuncxOES(GLenum func, GLclampx ref)
5708 {
5709         _COREGL_TRACEPATH_FUNC_BEGIN();
5710         _orig_tracepath_glAlphaFuncxOES(func, ref);
5711         goto finish;
5712
5713 finish:
5714         _COREGL_TRACEPATH_FUNC_END();
5715 }
5716
5717 void tracepath_glBlendBarrierKHR()
5718 {
5719         _COREGL_TRACEPATH_FUNC_BEGIN();
5720         _orig_tracepath_glBlendBarrierKHR();
5721
5722         goto finish;
5723
5724 finish:
5725         _COREGL_TRACEPATH_FUNC_END();
5726 }
5727
5728 void tracepath_glBlendEquationOES(GLenum mode)
5729 {
5730         _COREGL_TRACEPATH_FUNC_BEGIN();
5731         _orig_tracepath_glBlendEquationOES(mode);
5732
5733         goto finish;
5734
5735 finish:
5736         _COREGL_TRACEPATH_FUNC_END();
5737 }
5738
5739 void tracepath_glBlendEquationSeparateOES(GLenum modeRGB, GLenum modeAlpha)
5740 {
5741         _COREGL_TRACEPATH_FUNC_BEGIN();
5742         _orig_tracepath_glBlendEquationSeparateOES(modeRGB, modeAlpha);
5743
5744         goto finish;
5745
5746 finish:
5747         _COREGL_TRACEPATH_FUNC_END();
5748 }
5749
5750 void tracepath_glBlendFuncSeparateOES(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
5751 {
5752         _COREGL_TRACEPATH_FUNC_BEGIN();
5753         _orig_tracepath_glBlendFuncSeparateOES(srcRGB, dstRGB, srcAlpha, dstAlpha);
5754
5755         goto finish;
5756
5757 finish:
5758         _COREGL_TRACEPATH_FUNC_END();
5759 }
5760
5761 GLenum tracepath_glCheckFramebufferStatusOES(GLenum target)
5762 {
5763         GLenum ret = _COREGL_INT_INIT_VALUE;
5764
5765         _COREGL_TRACEPATH_FUNC_BEGIN();
5766         ret = _orig_tracepath_glCheckFramebufferStatusOES(target);
5767
5768         goto finish;
5769
5770 finish:
5771         _COREGL_TRACEPATH_FUNC_END();
5772    return ret;
5773 }
5774
5775
5776 void tracepath_glClearColorxOES(GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha)
5777 {
5778         _COREGL_TRACEPATH_FUNC_BEGIN();
5779         _orig_tracepath_glClearColorxOES(red, green, blue, alpha);
5780
5781         goto finish;
5782
5783 finish:
5784         _COREGL_TRACEPATH_FUNC_END();
5785 }
5786
5787 void tracepath_glClearDepthfOES(GLclampf depth)
5788 {
5789         _COREGL_TRACEPATH_FUNC_BEGIN();
5790         _orig_tracepath_glClearDepthfOES(depth);
5791
5792         goto finish;
5793
5794 finish:
5795         _COREGL_TRACEPATH_FUNC_END();
5796 }
5797
5798 void tracepath_glClearDepthxOES(GLclampx depth)
5799 {
5800         _COREGL_TRACEPATH_FUNC_BEGIN();
5801         _orig_tracepath_glClearDepthxOES(depth);
5802
5803         goto finish;
5804
5805 finish:
5806         _COREGL_TRACEPATH_FUNC_END();
5807 }
5808
5809 void tracepath_glClipPlanefOES(GLenum plane, GLfloat const *equation)
5810 {
5811         _COREGL_TRACEPATH_FUNC_BEGIN();
5812         _orig_tracepath_glClipPlanefOES(plane, equation);
5813
5814         goto finish;
5815
5816 finish:
5817         _COREGL_TRACEPATH_FUNC_END();
5818 }
5819
5820
5821 void tracepath_glClipPlanexOES(GLenum plane, GLfixed const *equation)
5822 {
5823         _COREGL_TRACEPATH_FUNC_BEGIN();
5824         _orig_tracepath_glClipPlanexOES(plane, equation);
5825
5826         goto finish;
5827
5828 finish:
5829         _COREGL_TRACEPATH_FUNC_END();
5830 }
5831
5832 void tracepath_glColor4xOES(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha)
5833 {
5834         _COREGL_TRACEPATH_FUNC_BEGIN();
5835         _orig_tracepath_glColor4xOES(red, green, blue, alpha);
5836
5837         goto finish;
5838
5839 finish:
5840         _COREGL_TRACEPATH_FUNC_END();
5841 }
5842
5843 void tracepath_glDebugMessageCallback(GLDEBUGPROCKHR callback, void const *userParam)
5844 {
5845         _COREGL_TRACEPATH_FUNC_BEGIN();
5846         _orig_tracepath_glDebugMessageCallback(callback, userParam);
5847
5848         goto finish;
5849
5850 finish:
5851         _COREGL_TRACEPATH_FUNC_END();
5852 }
5853
5854 void tracepath_glDebugMessageInsert(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, GLchar const *buf)
5855 {
5856         _COREGL_TRACEPATH_FUNC_BEGIN();
5857         _orig_tracepath_glDebugMessageInsert(source, type, id, severity, length, buf);
5858
5859         goto finish;
5860
5861 finish:
5862         _COREGL_TRACEPATH_FUNC_END();
5863 }
5864
5865 void tracepath_glDebugMessageControl(GLenum source, GLenum type, GLenum severity, GLsizei count, GLuint const *ids, GLboolean enabled)
5866 {
5867         _COREGL_TRACEPATH_FUNC_BEGIN();
5868         _orig_tracepath_glDebugMessageControl(source, type, severity, count, ids,  enabled);
5869
5870         goto finish;
5871
5872 finish:
5873         _COREGL_TRACEPATH_FUNC_END();
5874 }
5875
5876 void tracepath_glFogxOES(GLenum pname, GLfixed param)
5877 {
5878         _COREGL_TRACEPATH_FUNC_BEGIN();
5879         _orig_tracepath_glFogxOES(pname, param);
5880
5881         goto finish;
5882
5883 finish:
5884         _COREGL_TRACEPATH_FUNC_END();
5885 }
5886
5887 void tracepath_glFogxvOES(GLenum pname, GLfixed const *params)
5888 {
5889         _COREGL_TRACEPATH_FUNC_BEGIN();
5890         _orig_tracepath_glFogxvOES(pname, params);
5891
5892         goto finish;
5893
5894 finish:
5895         _COREGL_TRACEPATH_FUNC_END();
5896 }
5897
5898 void tracepath_glFrustumxOES(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
5899 {
5900         _COREGL_TRACEPATH_FUNC_BEGIN();
5901         _orig_tracepath_glFrustumxOES(left, right, bottom, top, zNear, zFar);
5902
5903         goto finish;
5904
5905 finish:
5906         _COREGL_TRACEPATH_FUNC_END();
5907 }
5908
5909 void tracepath_glFrustumfOES(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
5910 {
5911         _COREGL_TRACEPATH_FUNC_BEGIN();
5912         _orig_tracepath_glFrustumfOES(left, right, bottom, top, zNear, zFar);
5913
5914         goto finish;
5915
5916 finish:
5917         _COREGL_TRACEPATH_FUNC_END();
5918 }
5919
5920 void tracepath_glGenerateMipmapOES(GLenum target)
5921 {
5922         _COREGL_TRACEPATH_FUNC_BEGIN();
5923         _orig_tracepath_glGenerateMipmapOES(target);
5924
5925         goto finish;
5926
5927 finish:
5928         _COREGL_TRACEPATH_FUNC_END();
5929 }
5930
5931 void tracepath_glGetClipPlanefOES(GLenum pname, GLfloat eqn[4])
5932 {
5933         _COREGL_TRACEPATH_FUNC_BEGIN();
5934         _orig_tracepath_glGetClipPlanefOES(pname, eqn);
5935
5936         goto finish;
5937
5938 finish:
5939         _COREGL_TRACEPATH_FUNC_END();
5940 }
5941
5942 void tracepath_glGetClipPlanexOES(GLenum pname, GLfixed eqn[4])
5943 {
5944         _COREGL_TRACEPATH_FUNC_BEGIN();
5945         _orig_tracepath_glGetClipPlanexOES(pname, eqn);
5946
5947         goto finish;
5948
5949 finish:
5950         _COREGL_TRACEPATH_FUNC_END();
5951 }
5952
5953 GLuint tracepath_glGetDebugMessageLog(GLuint count, GLsizei bufsize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog)
5954 {
5955         GLuint ret = GL_INVALID_INDEX;
5956         _COREGL_TRACEPATH_FUNC_BEGIN();
5957         ret =  _orig_tracepath_glGetDebugMessageLog(count, bufsize, sources, types, ids, severities, lengths, messageLog);
5958         goto finish;
5959
5960 finish:
5961         _COREGL_TRACEPATH_FUNC_END();
5962         return ret;
5963 }
5964
5965 void tracepath_glGetFixedvOES(GLenum pname, GLfixed *params)
5966 {
5967         _COREGL_TRACEPATH_FUNC_BEGIN();
5968         _orig_tracepath_glGetFixedvOES(pname, params);
5969
5970         goto finish;
5971
5972 finish:
5973         _COREGL_TRACEPATH_FUNC_END();
5974 }
5975
5976 void tracepath_glGetLightxvOES(GLenum light, GLenum pname, GLfixed *params)
5977 {
5978         _COREGL_TRACEPATH_FUNC_BEGIN();
5979         _orig_tracepath_glGetLightxvOES(light, pname, params);
5980
5981         goto finish;
5982
5983 finish:
5984         _COREGL_TRACEPATH_FUNC_END();
5985 }
5986
5987 void tracepath_glGetMaterialxvOES(GLenum face, GLenum pname, GLfixed *params)
5988 {
5989         _COREGL_TRACEPATH_FUNC_BEGIN();
5990         _orig_tracepath_glGetMaterialxvOES(face, pname, params);
5991
5992         goto finish;
5993
5994 finish:
5995         _COREGL_TRACEPATH_FUNC_END();
5996 }
5997
5998 void tracepath_glGetObjectLabel(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label)
5999 {
6000         _COREGL_TRACEPATH_FUNC_BEGIN();
6001         _orig_tracepath_glGetObjectLabel(identifier, name, bufSize, length, label);
6002
6003         goto finish;
6004
6005 finish:
6006         _COREGL_TRACEPATH_FUNC_END();
6007 }
6008
6009 void tracepath_glGetObjectPtrLabel(void const *ptr, GLsizei bufSize, GLsizei *length, GLchar *label)
6010 {
6011         _COREGL_TRACEPATH_FUNC_BEGIN();
6012         _orig_tracepath_glGetObjectPtrLabel(ptr, bufSize, length, label);
6013
6014         goto finish;
6015
6016 finish:
6017         _COREGL_TRACEPATH_FUNC_END();
6018 }
6019
6020 void tracepath_glGetPointervKHR(GLenum pname, GLvoid **params)
6021 {
6022         _COREGL_TRACEPATH_FUNC_BEGIN();
6023         _orig_tracepath_glGetPointervKHR(pname, params);
6024
6025         goto finish;
6026
6027 finish:
6028         _COREGL_TRACEPATH_FUNC_END();
6029 }
6030
6031 void tracepath_glGetRenderbufferParameterivOES(GLenum target, GLenum pname, GLint *params)
6032 {
6033         _COREGL_TRACEPATH_FUNC_BEGIN();
6034         _orig_tracepath_glGetRenderbufferParameterivOES(target, pname, params);
6035
6036         goto finish;
6037
6038 finish:
6039         _COREGL_TRACEPATH_FUNC_END();
6040 }
6041
6042 void tracepath_glGetTexEnvxvOES(GLenum env, GLenum pname, GLfixed *params)
6043 {
6044         _COREGL_TRACEPATH_FUNC_BEGIN();
6045         _orig_tracepath_glGetTexEnvxvOES(env, pname, params);
6046
6047         goto finish;
6048
6049 finish:
6050         _COREGL_TRACEPATH_FUNC_END();
6051 }
6052
6053 void tracepath_glGetTexParameterxvOES(GLenum target, GLenum pname, GLfixed *params)
6054 {
6055         _COREGL_TRACEPATH_FUNC_BEGIN();
6056         _orig_tracepath_glGetTexParameterxvOES(target, pname, params);
6057
6058         goto finish;
6059
6060 finish:
6061         _COREGL_TRACEPATH_FUNC_END();
6062 }
6063
6064
6065 void
6066 tracepath_glLightModelxOES (GLenum pname, GLfixed param)
6067 {
6068         _COREGL_TRACEPATH_FUNC_BEGIN();
6069         _orig_tracepath_glLightModelxOES (pname, param);
6070
6071         goto finish;
6072
6073 finish:
6074         _COREGL_TRACEPATH_FUNC_END();
6075 }
6076
6077
6078 void
6079 tracepath_glLightModelxvOES (GLenum pname, const GLfixed *params)
6080 {
6081         _COREGL_TRACEPATH_FUNC_BEGIN();
6082         _orig_tracepath_glLightModelxvOES (pname, params);
6083
6084         goto finish;
6085
6086 finish:
6087         _COREGL_TRACEPATH_FUNC_END();
6088 }
6089
6090
6091 void
6092 tracepath_glLightxOES (GLenum light, GLenum pname, GLfixed param)
6093 {
6094         _COREGL_TRACEPATH_FUNC_BEGIN();
6095         _orig_tracepath_glLightxOES (light, pname, param);
6096
6097         goto finish;
6098
6099 finish:
6100         _COREGL_TRACEPATH_FUNC_END();
6101 }
6102
6103
6104 void
6105 tracepath_glLightxvOES (GLenum light, GLenum pname, const GLfixed *params)
6106 {
6107         _COREGL_TRACEPATH_FUNC_BEGIN();
6108         _orig_tracepath_glLightxvOES (light, pname, params);
6109
6110         goto finish;
6111
6112 finish:
6113         _COREGL_TRACEPATH_FUNC_END();
6114 }
6115
6116 void
6117 tracepath_glLineWidthxOES (GLfixed width)
6118 {
6119         _COREGL_TRACEPATH_FUNC_BEGIN();
6120         _orig_tracepath_glLineWidthxOES (width);
6121
6122         goto finish;
6123
6124 finish:
6125         _COREGL_TRACEPATH_FUNC_END();
6126 }
6127
6128 void
6129 tracepath_glLoadMatrixxOES (const GLfixed *m)
6130 {
6131         _COREGL_TRACEPATH_FUNC_BEGIN();
6132         _orig_tracepath_glLoadMatrixxOES (m);
6133         goto finish;
6134
6135 finish:
6136         _COREGL_TRACEPATH_FUNC_END();
6137 }
6138
6139 void
6140 tracepath_glMaterialxOES (GLenum face, GLenum pname, GLfixed param)
6141 {
6142         _COREGL_TRACEPATH_FUNC_BEGIN();
6143         _orig_tracepath_glMaterialxOES (face, pname, param);
6144
6145         goto finish;
6146
6147 finish:
6148         _COREGL_TRACEPATH_FUNC_END();
6149 }
6150
6151 void
6152 tracepath_glMaterialxvOES (GLenum face, GLenum pname, const GLfixed *params)
6153 {
6154         _COREGL_TRACEPATH_FUNC_BEGIN();
6155         _orig_tracepath_glMaterialxvOES (face, pname, params);
6156
6157         goto finish;
6158
6159 finish:
6160         _COREGL_TRACEPATH_FUNC_END();
6161 }
6162
6163 void
6164 tracepath_glMultMatrixxOES (const GLfixed *m)
6165 {
6166         _COREGL_TRACEPATH_FUNC_BEGIN();
6167         _orig_tracepath_glMultMatrixxOES (m);
6168
6169         goto finish;
6170
6171 finish:
6172         _COREGL_TRACEPATH_FUNC_END();
6173 }
6174
6175 void
6176 tracepath_glMultiTexCoord4bOES (GLenum target, GLbyte s, GLbyte t, GLbyte r, GLbyte q)
6177 {
6178         _COREGL_TRACEPATH_FUNC_BEGIN();
6179         _orig_tracepath_glMultiTexCoord4bOES (target, s, t, r, q);
6180
6181         goto finish;
6182
6183 finish:
6184         _COREGL_TRACEPATH_FUNC_END();
6185 }
6186
6187 void
6188 tracepath_glMultiTexCoord4xOES (GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q)
6189 {
6190         _COREGL_TRACEPATH_FUNC_BEGIN();
6191         _orig_tracepath_glMultiTexCoord4xOES (target, s, t, r, q);
6192
6193         goto finish;
6194
6195 finish:
6196         _COREGL_TRACEPATH_FUNC_END();
6197 }
6198
6199 void
6200 tracepath_glNormal3xOES (GLfixed nx, GLfixed ny, GLfixed nz)
6201 {
6202         _COREGL_TRACEPATH_FUNC_BEGIN();
6203         _orig_tracepath_glNormal3xOES (nx, ny, nz);
6204
6205         goto finish;
6206
6207 finish:
6208         _COREGL_TRACEPATH_FUNC_END();
6209 }
6210
6211 void
6212 tracepath_glObjectLabel (GLenum identifier, GLuint name, GLsizei length, const GLchar *label)
6213 {
6214         _COREGL_TRACEPATH_FUNC_BEGIN();
6215         _orig_tracepath_glObjectLabel (identifier, name, length, label);
6216         goto finish;
6217
6218 finish:
6219         _COREGL_TRACEPATH_FUNC_END();
6220 }
6221
6222 void
6223 tracepath_glObjectPtrLabel (const void *ptr, GLsizei length, const GLchar *label)
6224 {
6225         _COREGL_TRACEPATH_FUNC_BEGIN();
6226         _orig_tracepath_glObjectPtrLabel (ptr, length, label);
6227
6228         goto finish;
6229
6230 finish:
6231         _COREGL_TRACEPATH_FUNC_END();
6232 }
6233
6234 void
6235 tracepath_glOrthofOES (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
6236 {
6237         _COREGL_TRACEPATH_FUNC_BEGIN();
6238         _orig_tracepath_glOrthofOES (left, right, bottom, top, zNear, zFar);
6239
6240         goto finish;
6241
6242 finish:
6243         _COREGL_TRACEPATH_FUNC_END();
6244 }
6245
6246 void
6247 tracepath_glOrthoxOES (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
6248 {
6249         _COREGL_TRACEPATH_FUNC_BEGIN();
6250         _orig_tracepath_glOrthoxOES (left, right, bottom, top, zNear, zFar);
6251
6252         goto finish;
6253
6254 finish:
6255         _COREGL_TRACEPATH_FUNC_END();
6256 }
6257
6258 void
6259 tracepath_glPointParameterxOES (GLenum pname, GLfixed param)
6260 {
6261         _COREGL_TRACEPATH_FUNC_BEGIN();
6262         _orig_tracepath_glPointParameterxOES (pname, param);
6263
6264         goto finish;
6265
6266 finish:
6267         _COREGL_TRACEPATH_FUNC_END();
6268 }
6269
6270 void
6271 tracepath_glPointParameterxvOES (GLenum pname, const GLfixed *params)
6272 {
6273         _COREGL_TRACEPATH_FUNC_BEGIN();
6274         _orig_tracepath_glPointParameterxvOES (pname, params);
6275
6276         goto finish;
6277
6278 finish:
6279         _COREGL_TRACEPATH_FUNC_END();
6280 }
6281
6282 void
6283 tracepath_glPointSizexOES (GLfixed size)
6284 {
6285         _COREGL_TRACEPATH_FUNC_BEGIN();
6286         _orig_tracepath_glPointSizexOES (size);
6287
6288         goto finish;
6289
6290 finish:
6291         _COREGL_TRACEPATH_FUNC_END();
6292 }
6293
6294 void
6295 tracepath_glPolygonOffsetxOES (GLfixed factor, GLfixed units)
6296 {
6297         _COREGL_TRACEPATH_FUNC_BEGIN();
6298         _orig_tracepath_glPolygonOffsetxOES (factor, units);
6299
6300         goto finish;
6301
6302 finish:
6303         _COREGL_TRACEPATH_FUNC_END();
6304 }
6305
6306 void
6307 tracepath_glPopDebugGroup (void)
6308 {
6309         _COREGL_TRACEPATH_FUNC_BEGIN();
6310         _orig_tracepath_glPopDebugGroup ();
6311
6312         goto finish;
6313
6314 finish:
6315         _COREGL_TRACEPATH_FUNC_END();
6316 }
6317
6318 void
6319 tracepath_glPushDebugGroup (GLenum source, GLuint id, GLsizei length, const GLchar *message)
6320 {
6321         _COREGL_TRACEPATH_FUNC_BEGIN();
6322         _orig_tracepath_glPushDebugGroup (source, id, length, message);
6323
6324         goto finish;
6325
6326 finish:
6327         _COREGL_TRACEPATH_FUNC_END();
6328 }
6329
6330 void
6331 tracepath_glQueryCounterEXT (GLuint id, GLenum target)
6332 {
6333         _COREGL_TRACEPATH_FUNC_BEGIN();
6334         _orig_tracepath_glQueryCounterEXT (id, target);
6335
6336         goto finish;
6337
6338 finish:
6339         _COREGL_TRACEPATH_FUNC_END();
6340 }
6341
6342 void
6343 tracepath_glRenderbufferStorageOES (GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
6344 {
6345         _COREGL_TRACEPATH_FUNC_BEGIN();
6346         _orig_tracepath_glRenderbufferStorageOES (target, internalformat, width, height);
6347
6348         goto finish;
6349
6350 finish:
6351         _COREGL_TRACEPATH_FUNC_END();
6352 }
6353
6354 void
6355 tracepath_glRotatexOES (GLfixed angle, GLfixed x, GLfixed y, GLfixed z)
6356 {
6357         _COREGL_TRACEPATH_FUNC_BEGIN();
6358         _orig_tracepath_glRotatexOES (angle, x, y, z);
6359
6360         goto finish;
6361
6362 finish:
6363         _COREGL_TRACEPATH_FUNC_END();
6364 }
6365
6366 void
6367 tracepath_glSampleCoveragexOES (GLclampx value, GLboolean invert)
6368 {
6369         _COREGL_TRACEPATH_FUNC_BEGIN();
6370         _orig_tracepath_glSampleCoveragexOES (value, invert);
6371
6372         goto finish;
6373
6374 finish:
6375         _COREGL_TRACEPATH_FUNC_END();
6376 }
6377
6378 void
6379 tracepath_glScalexOES (GLfixed x, GLfixed y, GLfixed z)
6380 {
6381         _COREGL_TRACEPATH_FUNC_BEGIN();
6382         _orig_tracepath_glScalexOES (x, y, z);
6383
6384         goto finish;
6385
6386 finish:
6387         _COREGL_TRACEPATH_FUNC_END();
6388 }
6389
6390 void
6391 tracepath_glTexEnvxOES (GLenum target, GLenum pname, GLfixed param)
6392 {
6393         _COREGL_TRACEPATH_FUNC_BEGIN();
6394         _orig_tracepath_glTexEnvxOES (target, pname, param);
6395
6396         goto finish;
6397
6398 finish:
6399         _COREGL_TRACEPATH_FUNC_END();
6400 }
6401
6402 void
6403 tracepath_glTexEnvxvOES (GLenum target, GLenum pname, const GLfixed *params)
6404 {
6405         _COREGL_TRACEPATH_FUNC_BEGIN();
6406         _orig_tracepath_glTexEnvxvOES (target, pname, params);
6407
6408         goto finish;
6409
6410 finish:
6411         _COREGL_TRACEPATH_FUNC_END();
6412 }
6413
6414 void
6415 tracepath_glTexParameterxOES (GLenum target, GLenum pname, GLfixed param)
6416 {
6417         _COREGL_TRACEPATH_FUNC_BEGIN();
6418         _orig_tracepath_glTexParameterxOES (target, pname, param);
6419
6420         goto finish;
6421
6422 finish:
6423         _COREGL_TRACEPATH_FUNC_END();
6424 }
6425
6426 void
6427 tracepath_glTexParameterxvOES (GLenum target, GLenum pname, const GLfixed *params)
6428 {
6429         _COREGL_TRACEPATH_FUNC_BEGIN();
6430         _orig_tracepath_glTexParameterxvOES (target, pname, params);
6431
6432         goto finish;
6433
6434 finish:
6435         _COREGL_TRACEPATH_FUNC_END();
6436 }
6437
6438 void
6439 tracepath_glTexStorage2DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height)
6440 {
6441         _COREGL_TRACEPATH_FUNC_BEGIN();
6442         _orig_tracepath_glTexStorage2DEXT (target, levels, internalformat, width, height);
6443
6444         goto finish;
6445
6446 finish:
6447         _COREGL_TRACEPATH_FUNC_END();
6448 }
6449
6450 void
6451 tracepath_glTexStorage3DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth)
6452 {
6453         _COREGL_TRACEPATH_FUNC_BEGIN();
6454         _orig_tracepath_glTexStorage3DEXT (target, levels, internalformat, width, height, depth);
6455
6456         goto finish;
6457
6458 finish:
6459         _COREGL_TRACEPATH_FUNC_END();
6460 }
6461
6462 void
6463 tracepath_glTexStorage3DMultisampleOES (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations)
6464 {
6465         _COREGL_TRACEPATH_FUNC_BEGIN();
6466         _orig_tracepath_glTexStorage3DMultisampleOES (target, samples, internalformat, width, height, depth, fixedsamplelocations);
6467
6468         goto finish;
6469
6470 finish:
6471         _COREGL_TRACEPATH_FUNC_END();
6472 }
6473
6474 void
6475 tracepath_glTranslatexOES (GLfixed x, GLfixed y, GLfixed z)
6476 {
6477         _COREGL_TRACEPATH_FUNC_BEGIN();
6478         _orig_tracepath_glTranslatexOES (x, y, z);
6479
6480         goto finish;
6481
6482 finish:
6483         _COREGL_TRACEPATH_FUNC_END();
6484 }
6485
6486 void
6487 tracepath_glBindVertexArrayOES(GLuint array)
6488 {
6489         _COREGL_TRACEPATH_FUNC_BEGIN();
6490         _orig_tracepath_glBindVertexArrayOES(array);
6491
6492         goto finish;
6493
6494 finish:
6495         _COREGL_TRACEPATH_FUNC_END();
6496 }
6497
6498 void
6499 tracepath_glDeleteVertexArraysOES(GLsizei n, const GLuint* arrays)
6500 {
6501         _COREGL_TRACEPATH_FUNC_BEGIN();
6502         _orig_tracepath_glDeleteVertexArraysOES(n, arrays);
6503
6504         goto finish;
6505
6506 finish:
6507         _COREGL_TRACEPATH_FUNC_END();
6508 }
6509
6510 void
6511 tracepath_glGenVertexArraysOES(GLsizei n, GLuint* arrays)
6512 {
6513         _COREGL_TRACEPATH_FUNC_BEGIN();
6514         _orig_tracepath_glGenVertexArraysOES(n, arrays);
6515
6516         goto finish;
6517
6518 finish:
6519         _COREGL_TRACEPATH_FUNC_END();
6520 }
6521
6522 GLboolean
6523 tracepath_glIsVertexArrayOES(GLuint array)
6524 {
6525         GLboolean ret = GL_FALSE;
6526
6527         _COREGL_TRACEPATH_FUNC_BEGIN();
6528         ret = _orig_tracepath_glIsVertexArrayOES(array);
6529
6530         goto finish;
6531
6532 finish:
6533         _COREGL_TRACEPATH_FUNC_END();
6534         return ret;
6535 }
6536
6537 void tracepath_glDebugMessageCallbackKHR(GLDEBUGPROCKHR callback, void const *userParam)
6538 {
6539         _COREGL_TRACEPATH_FUNC_BEGIN();
6540         _orig_tracepath_glDebugMessageCallbackKHR(callback, userParam);
6541
6542         goto finish;
6543
6544 finish:
6545         _COREGL_TRACEPATH_FUNC_END();
6546 }
6547
6548
6549 void tracepath_glDebugMessageControlKHR(GLenum source, GLenum type, GLenum severity, GLsizei count, GLuint const *ids, GLboolean enabled)
6550 {
6551         _COREGL_TRACEPATH_FUNC_BEGIN();
6552         _orig_tracepath_glDebugMessageControlKHR(source, type, severity, count, ids,  enabled);
6553
6554         goto finish;
6555
6556 finish:
6557         _COREGL_TRACEPATH_FUNC_END();
6558 }
6559
6560 void tracepath_glDebugMessageInsertKHR(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, GLchar const *buf)
6561 {
6562         _COREGL_TRACEPATH_FUNC_BEGIN();
6563         _orig_tracepath_glDebugMessageInsertKHR(source, type, id, severity, length, buf);
6564
6565         goto finish;
6566
6567 finish:
6568         _COREGL_TRACEPATH_FUNC_END();
6569 }
6570
6571 GLuint tracepath_glGetDebugMessageLogKHR(GLuint count, GLsizei bufsize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog)
6572 {
6573         GLuint ret = GL_INVALID_INDEX;
6574         _COREGL_TRACEPATH_FUNC_BEGIN();
6575         ret =  _orig_tracepath_glGetDebugMessageLogKHR(count, bufsize, sources, types, ids, severities, lengths, messageLog);
6576         goto finish;
6577
6578 finish:
6579         _COREGL_TRACEPATH_FUNC_END();
6580         return ret;
6581 }
6582
6583 void tracepath_glGetObjectLabelKHR(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label)
6584 {
6585         _COREGL_TRACEPATH_FUNC_BEGIN();
6586         _orig_tracepath_glGetObjectLabelKHR(identifier, name, bufSize, length, label);
6587
6588         goto finish;
6589
6590 finish:
6591         _COREGL_TRACEPATH_FUNC_END();
6592 }
6593
6594 void tracepath_glGetObjectPtrLabelKHR(void const *ptr, GLsizei bufSize, GLsizei *length, GLchar *label)
6595 {
6596         _COREGL_TRACEPATH_FUNC_BEGIN();
6597         _orig_tracepath_glGetObjectPtrLabelKHR(ptr, bufSize, length, label);
6598
6599         goto finish;
6600
6601 finish:
6602         _COREGL_TRACEPATH_FUNC_END();
6603 }
6604
6605 void
6606 tracepath_glGetPointerv(GLenum pname, GLvoid **params)
6607 {
6608         _COREGL_TRACEPATH_FUNC_BEGIN();
6609         _orig_tracepath_glGetPointerv(pname, params);
6610
6611         goto finish;
6612
6613 finish:
6614         _COREGL_TRACEPATH_FUNC_END();
6615 }
6616
6617 void
6618 tracepath_glObjectLabelKHR (GLenum identifier, GLuint name, GLsizei length, const GLchar *label)
6619 {
6620         _COREGL_TRACEPATH_FUNC_BEGIN();
6621         _orig_tracepath_glObjectLabelKHR (identifier, name, length, label);
6622         goto finish;
6623
6624 finish:
6625         _COREGL_TRACEPATH_FUNC_END();
6626 }
6627
6628 void
6629 tracepath_glObjectPtrLabelKHR (const void *ptr, GLsizei length, const GLchar *label)
6630 {
6631         _COREGL_TRACEPATH_FUNC_BEGIN();
6632         _orig_tracepath_glObjectPtrLabelKHR (ptr, length, label);
6633
6634         goto finish;
6635
6636 finish:
6637         _COREGL_TRACEPATH_FUNC_END();
6638 }
6639
6640 void
6641 tracepath_glPopDebugGroupKHR (void)
6642 {
6643         _COREGL_TRACEPATH_FUNC_BEGIN();
6644         _orig_tracepath_glPopDebugGroupKHR ();
6645
6646         goto finish;
6647
6648 finish:
6649         _COREGL_TRACEPATH_FUNC_END();
6650 }
6651
6652 void
6653 tracepath_glPushDebugGroupKHR (GLenum source, GLuint id, GLsizei length, const GLchar *message)
6654 {
6655         _COREGL_TRACEPATH_FUNC_BEGIN();
6656         _orig_tracepath_glPushDebugGroupKHR (source, id, length, message);
6657
6658         goto finish;
6659
6660 finish:
6661         _COREGL_TRACEPATH_FUNC_END();
6662 }
6663