1 #include "coregl_tracepath.h"
10 Mutex ctx_access_mutex = MUTEX_INITIALIZER;
11 Ctx_Data *ctx_data = NULL;
14 _get_sostate(GLContext ctx)
16 Sostate_Data *ret = NULL;
18 Ctx_Data *current = ctx_data;
19 while (current != NULL)
21 if (current->handle == ctx)
23 current->sostate->ref_count++;
24 ret = current->sostate;
27 current = current->next;
33 #ifdef COREGL_TRACEPATH_TRACE_CONTEXT_INFO
36 _dump_context_info(const char *ment, int force_output)
38 MY_MODULE_TSTATE *tstate = NULL;
39 static struct timeval tv_last = { 0, 0 };
41 if (trace_ctx_flag != 1) return;
43 AST(mutex_lock(&ctx_access_mutex) == 1);
44 AST(mutex_lock(&general_trace_lists_access_mutex) == 1);
46 if (!force_output && !trace_ctx_force_flag)
48 struct timeval tv_now = { 0, 0 };
49 AST(gettimeofday(&tv_now, NULL) == 0);
50 if (tv_now.tv_sec - tv_last.tv_sec < _COREGL_TRACE_OUTPUT_INTERVAL_SEC)
57 GET_MY_TSTATE(tstate, get_current_thread_state());
60 TRACE("\E[40;34m========================================================================================================================\E[0m\n");
61 TRACE("\E[40;32;1m Context info \E[1;37;1m: <PID = %d> %s\E[0m\n", getpid(), ment);
62 TRACE("\E[40;34m========================================================================================================================\E[0m\n");
67 General_Trace_List *current = NULL;
68 current = thread_trace_list;
70 while (current != NULL)
72 GLThreadState *cur_tstate = (GLThreadState *)current->value;
73 MY_MODULE_TSTATE *cur_tstate_tm = NULL;
75 GET_MY_TSTATE(cur_tstate_tm, cur_tstate);
76 AST(cur_tstate_tm != NULL);
78 TRACE(" %c Thread [0x%12x] : Surf <D=[%12p] R=[%12p]>",
79 (tstate == cur_tstate_tm) ? '*' : ' ',
80 cur_tstate->thread_id,
81 cur_tstate_tm->surf_draw,
82 cur_tstate_tm->surf_read);
84 if (cur_tstate_tm->ctx != NULL)
86 TRACE(" EGLCTX=[%12p]\E[0m\n",
87 cur_tstate_tm->ctx->handle);
91 TRACE(" (NOT BINDED TO THREAD)\E[0m\n");
94 // Binded Context State List
96 Ctx_Data *current = NULL;
99 while (current != NULL)
101 if (cur_tstate_tm->ctx == current)
103 TRACE(" -> EGLCTX [%12p] : EGLDPY=[%12p] <MC count [%10d]> <Ref [%2d]>\E[0m\n",
110 current = current->next;
116 current = current->next;
120 TRACE("\E[40;33m........................................................................................................................\E[0m\n");
122 // Not-binded Context State List
124 Ctx_Data *current = NULL;
127 while (current != NULL)
131 General_Trace_List *current_t = NULL;
132 current_t = thread_trace_list;
134 while (current_t != NULL)
136 GLThreadState *cur_tstate = (GLThreadState *)current_t->value;
137 MY_MODULE_TSTATE *cur_tstate_tm = NULL;
139 GET_MY_TSTATE(cur_tstate_tm, cur_tstate);
140 AST(cur_tstate_tm != NULL);
142 /* Prevent CID : 390064 */
143 if (cur_tstate_tm != NULL && cur_tstate_tm->ctx == current)
148 current_t = current_t->next;
153 TRACE(" EGLCTX [%12p] : EGLDPY=[%12p] <MC count [%10d]> <Ref [%2d]>\E[0m\n",
160 current = current->next;
165 TRACE("\E[40;34m========================================================================================================================\E[0m\n");
174 AST(mutex_unlock(&general_trace_lists_access_mutex) == 1);
175 AST(mutex_unlock(&ctx_access_mutex) == 1);
179 #endif // COREGL_TRACEPATH_TRACE_CONTEXT_INFO
183 tracepath_add_context(GLContext ctx, GLDisplay dpy, GLContext share_ctx)
185 Ctx_Data *current = NULL;
186 Ctx_Data *data = NULL;
188 AST(mutex_lock(&ctx_access_mutex) == 1);
192 while (current != NULL)
194 if (current->handle == ctx)
199 current = current->next;
204 data = (Ctx_Data *)calloc(1, sizeof(Ctx_Data));
205 /* Prevent CID : 394454 */
206 if (data == NULL) goto finish;
211 data->sostate = _get_sostate(share_ctx);
212 if (data->sostate == NULL)
214 data->sostate = (Sostate_Data *)calloc(1, sizeof(Sostate_Data));
215 /* Prevent CID : 394454 */
216 if (data->sostate == NULL) goto finish;
217 data->sostate->ref_count = 1;
220 if (ctx_data != NULL)
221 data->next = ctx_data;
228 AST(mutex_unlock(&ctx_access_mutex) == 1);
233 tracepath_get_context(GLContext ctx)
235 Ctx_Data *current = NULL;
236 Ctx_Data *data = NULL;
238 AST(mutex_lock(&ctx_access_mutex) == 1);
242 while (current != NULL)
244 if (current->handle == ctx)
249 current = current->next;
253 COREGL_WRN("Error making context [%p] current. (invalid EGL context)\n", ctx);
260 AST(mutex_unlock(&ctx_access_mutex) == 1);
265 tracepath_remove_context(GLContext ctx)
267 Ctx_Data *current = NULL;
268 Ctx_Data *prev = NULL;
270 AST(mutex_lock(&ctx_access_mutex) == 1);
274 while (current != NULL)
276 if (current->handle == ctx)
278 if (--current->ref_count <= 0)
281 prev->next = current->next;
283 ctx_data = current->next;
285 if (--current->sostate->ref_count <= 0)
287 tracepath_glbuf_clear(current->sostate->glbuf_rb);
288 tracepath_glbuf_clear(current->sostate->glbuf_tex);
289 free(current->sostate);
290 current->sostate = NULL;
299 current = current->next;
304 AST(mutex_unlock(&ctx_access_mutex) == 1);
309 tracepath_eglGetError(void)
311 EGLint ret = _COREGL_INT_INIT_VALUE;
313 _COREGL_TRACEPATH_FUNC_BEGIN();
314 ret = _orig_tracepath_eglGetError();
318 _COREGL_TRACEPATH_FUNC_END();
323 tracepath_eglGetDisplay(EGLNativeDisplayType display_id)
325 EGLDisplay ret = EGL_NO_DISPLAY;
327 _COREGL_TRACEPATH_FUNC_BEGIN();
328 ret = _orig_tracepath_eglGetDisplay(display_id);
332 _COREGL_TRACEPATH_FUNC_END();
337 tracepath_eglInitialize(EGLDisplay dpy, EGLint* major, EGLint* minor)
339 EGLBoolean ret = EGL_FALSE;
340 _COREGL_TRACEPATH_FUNC_BEGIN();
341 ret = _orig_tracepath_eglInitialize(dpy, major, minor);
345 _COREGL_TRACEPATH_FUNC_END();
350 tracepath_eglTerminate(EGLDisplay dpy)
352 EGLBoolean ret = EGL_FALSE;
354 _COREGL_TRACEPATH_FUNC_BEGIN();
355 ret = _orig_tracepath_eglTerminate(dpy);
359 _COREGL_TRACEPATH_FUNC_END();
364 tracepath_eglGetConfigs(EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config)
366 EGLBoolean ret = EGL_FALSE;
368 _COREGL_TRACEPATH_FUNC_BEGIN();
369 ret = _orig_tracepath_eglGetConfigs(dpy, configs, config_size, num_config);
373 _COREGL_TRACEPATH_FUNC_END();
378 tracepath_eglChooseConfig(EGLDisplay dpy, const EGLint* attrib_list, EGLConfig* configs, EGLint config_size, EGLint* num_config)
380 EGLBoolean ret = EGL_FALSE;
382 _COREGL_TRACEPATH_FUNC_BEGIN();
383 ret = _orig_tracepath_eglChooseConfig(dpy, attrib_list, configs, config_size, num_config);
387 _COREGL_TRACEPATH_FUNC_END();
392 tracepath_eglGetConfigAttrib(EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value)
394 EGLBoolean ret = EGL_FALSE;
396 _COREGL_TRACEPATH_FUNC_BEGIN();
397 ret = _orig_tracepath_eglGetConfigAttrib(dpy, config, attribute, value);
401 _COREGL_TRACEPATH_FUNC_END();
407 tracepath_eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint* attrib_list)
409 EGLSurface ret = EGL_NO_SURFACE;
411 _COREGL_TRACEPATH_FUNC_BEGIN();
412 ret = _orig_tracepath_eglCreateWindowSurface(dpy, config, win, attrib_list);
416 _COREGL_TRACEPATH_FUNC_END();
421 tracepath_eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list)
423 EGLSurface ret = EGL_NO_SURFACE;
425 _COREGL_TRACEPATH_FUNC_BEGIN();
426 ret = _orig_tracepath_eglCreatePbufferSurface(dpy, config, attrib_list);
430 _COREGL_TRACEPATH_FUNC_END();
435 tracepath_eglCreatePixmapSurface(EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint* attrib_list)
437 EGLSurface ret = EGL_NO_SURFACE;
439 _COREGL_TRACEPATH_FUNC_BEGIN();
440 ret = _orig_tracepath_eglCreatePixmapSurface(dpy, config, pixmap, attrib_list);
444 _COREGL_TRACEPATH_FUNC_END();
449 tracepath_eglDestroySurface(EGLDisplay dpy, EGLSurface surface)
451 EGLBoolean ret = EGL_FALSE;
453 _COREGL_TRACEPATH_FUNC_BEGIN();
454 ret = _orig_tracepath_eglDestroySurface(dpy, surface);
458 _COREGL_TRACEPATH_FUNC_END();
459 #ifdef COREGL_TRACEPATH_TRACE_SURFACE_INFO
462 snprintf(name,sizeof(name), "EGLSURFACE_%p", surface);
463 tracepath_surface_trace_add(name, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL);
465 #endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
470 tracepath_eglQuerySurface(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value)
472 EGLBoolean ret = EGL_FALSE;
474 _COREGL_TRACEPATH_FUNC_BEGIN();
475 ret = _orig_tracepath_eglQuerySurface(dpy, surface, attribute, value);
479 _COREGL_TRACEPATH_FUNC_END();
484 tracepath_eglBindAPI(EGLenum api)
486 EGLBoolean ret = EGL_FALSE;
488 _COREGL_TRACEPATH_FUNC_BEGIN();
489 ret = _orig_tracepath_eglBindAPI(api);
493 _COREGL_TRACEPATH_FUNC_END();
498 tracepath_eglQueryAPI(void)
502 _COREGL_TRACEPATH_FUNC_BEGIN();
503 ret = _orig_tracepath_eglQueryAPI();
507 _COREGL_TRACEPATH_FUNC_END();
512 tracepath_eglWaitClient(void)
514 EGLBoolean ret = EGL_FALSE;
516 _COREGL_TRACEPATH_FUNC_BEGIN();
517 ret = _orig_tracepath_eglWaitClient();
521 _COREGL_TRACEPATH_FUNC_END();
526 tracepath_eglReleaseThread(void)
528 EGLBoolean ret = EGL_FALSE;
530 _COREGL_TRACEPATH_FUNC_BEGIN();
531 ret = _orig_tracepath_eglReleaseThread();
535 _COREGL_TRACEPATH_FUNC_END();
540 tracepath_eglCreatePbufferFromClientBuffer(EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint *attrib_list)
542 EGLSurface ret = EGL_NO_SURFACE;
544 _COREGL_TRACEPATH_FUNC_BEGIN();
545 ret = _orig_tracepath_eglCreatePbufferFromClientBuffer(dpy, buftype, buffer, config, attrib_list);
549 _COREGL_TRACEPATH_FUNC_END();
554 tracepath_eglSurfaceAttrib(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value)
556 EGLBoolean ret = EGL_FALSE;
558 _COREGL_TRACEPATH_FUNC_BEGIN();
559 ret = _orig_tracepath_eglSurfaceAttrib(dpy, surface, attribute, value);
563 _COREGL_TRACEPATH_FUNC_END();
568 tracepath_eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer)
570 EGLBoolean ret = EGL_FALSE;
572 _COREGL_TRACEPATH_FUNC_BEGIN();
573 ret = _orig_tracepath_eglBindTexImage(dpy, surface, buffer);
577 _COREGL_TRACEPATH_FUNC_END();
582 tracepath_eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer)
584 EGLBoolean ret = EGL_FALSE;
586 _COREGL_TRACEPATH_FUNC_BEGIN();
587 ret = _orig_tracepath_eglReleaseTexImage(dpy, surface, buffer);
591 _COREGL_TRACEPATH_FUNC_END();
596 tracepath_eglSwapInterval(EGLDisplay dpy, EGLint interval)
598 EGLBoolean ret = EGL_FALSE;
600 _COREGL_TRACEPATH_FUNC_BEGIN();
601 ret = _orig_tracepath_eglSwapInterval(dpy, interval);
605 _COREGL_TRACEPATH_FUNC_END();
610 tracepath_eglCreateContext(EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint* attrib_list)
612 EGLContext ret = EGL_NO_CONTEXT;
614 _COREGL_TRACEPATH_FUNC_BEGIN();
615 ret = _orig_tracepath_eglCreateContext(dpy, config, share_context, attrib_list);
619 _COREGL_TRACEPATH_FUNC_END();
621 if (ret != EGL_NO_CONTEXT)
623 tracepath_add_context(ret, dpy, share_context);
626 #ifdef COREGL_TRACEPATH_TRACE_CONTEXT_INFO
627 if (unlikely(trace_ctx_flag == 1))
629 if (_orig_tracepath_eglCreateContext == _sym_eglCreateContext)
632 snprintf(ment,sizeof(ment), "eglCreateContext completed (EGLCTX=[%12p])", ret);
633 _dump_context_info(ment, 1);
636 #endif // COREGL_TRACEPATH_TRACE_CONTEXT_INFO
641 tracepath_eglDestroyContext(EGLDisplay dpy, EGLContext ctx)
643 EGLBoolean ret = EGL_FALSE;
645 _COREGL_TRACEPATH_FUNC_BEGIN();
646 ret = _orig_tracepath_eglDestroyContext(dpy, ctx);
650 _COREGL_TRACEPATH_FUNC_END();
652 AST(ctx != EGL_NO_CONTEXT);
654 tracepath_remove_context(ctx);
656 #ifdef COREGL_TRACEPATH_TRACE_CONTEXT_INFO
657 if (unlikely(trace_ctx_flag == 1))
659 if (_orig_tracepath_eglDestroyContext == _sym_eglDestroyContext)
662 snprintf(ment,sizeof(ment), "eglDestroyContext completed (EGLCTX=[%12p])", ctx);
663 _dump_context_info(ment, 1);
666 #endif // COREGL_TRACEPATH_TRACE_CONTEXT_INFO
671 tracepath_eglMakeCurrent(EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx)
673 EGLBoolean ret = EGL_FALSE;
675 _COREGL_TRACEPATH_FUNC_BEGIN();
676 ret = _orig_tracepath_eglMakeCurrent(dpy, draw, read, ctx);
680 _COREGL_TRACEPATH_FUNC_END();
682 MY_MODULE_TSTATE *tstate = NULL;
684 GET_MY_TSTATE(tstate, get_current_thread_state());
687 init_new_thread_state();
689 GET_MY_TSTATE(tstate, get_current_thread_state());
692 /* Prevent CID : 400057 */
693 if (tstate == NULL) return ret;
696 Ctx_Data *oldctx = tstate->ctx;
698 if (ctx != EGL_NO_CONTEXT)
700 tstate->ctx = tracepath_get_context(ctx);
701 if (tstate->ctx != NULL)
702 tstate->ctx->mc_count++;
710 tracepath_remove_context(oldctx->handle);
712 tstate->surf_draw = draw;
713 tstate->surf_read = read;
715 #ifdef COREGL_TRACEPATH_TRACE_STATE_INFO
716 if (unlikely(trace_state_flag == 1))
718 if (_orig_tracepath_eglMakeCurrent == _sym_eglMakeCurrent)
719 tracepath_dump_context_states(0);
721 #endif // COREGL_TRACEPATH_TRACE_STATE_INFO
722 #ifdef COREGL_TRACEPATH_TRACE_CONTEXT_INFO
723 if (unlikely(trace_ctx_flag == 1))
725 if (_orig_tracepath_eglMakeCurrent == _sym_eglMakeCurrent)
728 snprintf(ment,sizeof(ment), "eglMakeCurrent finished (EGLCTX=[%12p] Surf=[D:%12p R:%12p])", ctx, draw, read);
729 _dump_context_info(ment, 0);
732 #endif // COREGL_TRACEPATH_TRACE_CONTEXT_INFO
737 tracepath_eglGetCurrentContext(void)
739 EGLContext ret = EGL_NO_CONTEXT;
741 _COREGL_TRACEPATH_FUNC_BEGIN();
742 ret = _orig_tracepath_eglGetCurrentContext();
746 _COREGL_TRACEPATH_FUNC_END();
751 tracepath_eglGetCurrentSurface(EGLint readdraw)
753 EGLSurface ret = EGL_NO_SURFACE;
755 _COREGL_TRACEPATH_FUNC_BEGIN();
756 ret = _orig_tracepath_eglGetCurrentSurface(readdraw);
760 _COREGL_TRACEPATH_FUNC_END();
765 tracepath_eglGetCurrentDisplay(void)
767 EGLDisplay ret = EGL_NO_DISPLAY;
769 _COREGL_TRACEPATH_FUNC_BEGIN();
770 ret = _orig_tracepath_eglGetCurrentDisplay();
774 _COREGL_TRACEPATH_FUNC_END();
779 tracepath_eglQueryContext(EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint *value)
781 EGLBoolean ret = EGL_FALSE;
783 _COREGL_TRACEPATH_FUNC_BEGIN();
784 ret = _orig_tracepath_eglQueryContext(dpy, ctx, attribute, value);
788 _COREGL_TRACEPATH_FUNC_END();
793 tracepath_eglWaitGL(void)
795 EGLBoolean ret = EGL_FALSE;
797 _COREGL_TRACEPATH_FUNC_BEGIN();
798 ret = _orig_tracepath_eglWaitGL();
800 _COREGL_TRACE_SURFACE(0, 1, "EGLWAITGL");
805 _COREGL_TRACEPATH_FUNC_END();
810 tracepath_eglWaitNative(EGLint engine)
812 EGLBoolean ret = EGL_FALSE;
814 _COREGL_TRACEPATH_FUNC_BEGIN();
815 ret = _orig_tracepath_eglWaitNative(engine);
819 _COREGL_TRACEPATH_FUNC_END();
824 tracepath_eglSwapBuffers(EGLDisplay dpy, EGLSurface surface)
826 EGLBoolean ret = EGL_FALSE;
828 _COREGL_TRACE_SURFACE(0, 1, "SWAPBUFFERS");
830 _COREGL_TRACEPATH_FUNC_BEGIN();
831 ret = _orig_tracepath_eglSwapBuffers(dpy, surface);
836 _COREGL_TRACEPATH_FUNC_END();
837 if (unlikely(trace_api_frame_flag == 1))
839 if (unlikely(trace_api_all_flag == 1))
841 _COREGL_TRACE_API_OUTPUT(1);
845 _COREGL_TRACE_API_OUTPUT(0);
847 _COREGL_TRACE_API_RESET_FRAME();
851 _COREGL_TRACE_API_OUTPUT(0);
853 _COREGL_TRACE_MEM_OUTPUT(0);
858 tracepath_eglSwapBuffersWithDamageEXT(EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects)
860 EGLBoolean ret = EGL_FALSE;
862 _COREGL_TRACE_SURFACE(0, 1, "SWAPBUFFERS");
864 _COREGL_TRACEPATH_FUNC_BEGIN();
865 ret = _orig_tracepath_eglSwapBuffersWithDamageEXT(dpy, surface, rects, n_rects);
870 _COREGL_TRACEPATH_FUNC_END();
871 if (unlikely(trace_api_frame_flag == 1))
873 if (unlikely(trace_api_all_flag == 1))
875 _COREGL_TRACE_API_OUTPUT(1);
879 _COREGL_TRACE_API_OUTPUT(0);
881 _COREGL_TRACE_API_RESET_FRAME();
885 _COREGL_TRACE_API_OUTPUT(0);
887 _COREGL_TRACE_MEM_OUTPUT(0);
892 tracepath_eglSwapBuffersRegionEXT(EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects)
894 EGLBoolean ret = EGL_FALSE;
896 _COREGL_TRACE_SURFACE(0, 1, "SWAPBUFFERS");
898 _COREGL_TRACEPATH_FUNC_BEGIN();
899 ret = _orig_tracepath_eglSwapBuffersRegionEXT(dpy, surface, numRects, rects);
904 _COREGL_TRACEPATH_FUNC_END();
905 if (unlikely(trace_api_frame_flag == 1))
907 if (unlikely(trace_api_all_flag == 1))
909 _COREGL_TRACE_API_OUTPUT(1);
913 _COREGL_TRACE_API_OUTPUT(0);
915 _COREGL_TRACE_API_RESET_FRAME();
919 _COREGL_TRACE_API_OUTPUT(0);
921 _COREGL_TRACE_MEM_OUTPUT(0);
926 tracepath_eglCopyBuffers(EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target)
928 EGLBoolean ret = EGL_FALSE;
930 _COREGL_TRACEPATH_FUNC_BEGIN();
931 ret = _orig_tracepath_eglCopyBuffers(dpy, surface, target);
935 _COREGL_TRACEPATH_FUNC_END();
940 tracepath_eglGetProcAddress(const char* procname)
944 _COREGL_TRACEPATH_FUNC_BEGIN();
946 #define _COREGL_SYMBOL(RET_TYPE, FUNC_NAME, PARAM_LIST) \
947 if (strcmp(procname, #FUNC_NAME) == 0) \
949 _eng_fn ret_orig = NULL; \
950 ret_orig = _orig_tracepath_eglGetProcAddress(procname); \
951 if (ret_orig != NULL) \
952 ret = (_eng_fn)ovr_##FUNC_NAME; \
956 #define _COREGL_EXT_SYMBOL_ALIAS(ALIAS_NAME, FUNC_NAME) \
957 if (strcmp(procname, #ALIAS_NAME) == 0) \
959 _eng_fn ret_orig = NULL; \
960 ret_orig = _orig_tracepath_eglGetProcAddress(#ALIAS_NAME); \
961 if (ret_orig != NULL) \
962 ret = (_eng_fn)ovr_##FUNC_NAME; \
966 #include "../../headers/sym_egl.h"
967 #include "../../headers/sym_gl.h"
968 #undef _COREGL_SYMBOL
969 #undef _COREGL_EXT_SYMBOL_ALIAS
971 ret = _orig_tracepath_eglGetProcAddress(procname);
974 COREGL_WRN("\E[40;31;1mTRACEPATH can't support '%s' (tracing for this function will be ignored)\E[0m\n", procname);
980 _COREGL_TRACEPATH_FUNC_END();
985 tracepath_eglQueryString(EGLDisplay dpy, EGLint name)
987 const char *ret = NULL;
989 _COREGL_TRACEPATH_FUNC_BEGIN();
990 ret = _orig_tracepath_eglQueryString(dpy, name);
994 _COREGL_TRACEPATH_FUNC_END();
999 tracepath_eglCreateImageKHR (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list)
1003 _COREGL_TRACEPATH_FUNC_BEGIN();
1004 ret = _orig_tracepath_eglCreateImageKHR(dpy, ctx, target, buffer, attrib_list);
1008 _COREGL_TRACEPATH_FUNC_END();
1013 tracepath_eglDestroyImageKHR(EGLDisplay dpy, EGLImageKHR image)
1015 EGLBoolean ret = EGL_FALSE;
1017 _COREGL_TRACEPATH_FUNC_BEGIN();
1018 ret = _orig_tracepath_eglDestroyImageKHR(dpy, image);
1022 _COREGL_TRACEPATH_FUNC_END();
1027 tracepath_eglMapImageSEC(EGLDisplay dpy, EGLImageKHR image, EGLint device_type, EGLint access_option)
1031 _COREGL_TRACEPATH_FUNC_BEGIN();
1032 ret = _orig_tracepath_eglMapImageSEC(dpy, image, device_type, access_option);
1036 _COREGL_TRACEPATH_FUNC_END();
1041 tracepath_eglUnmapImageSEC(EGLDisplay dpy, EGLImageKHR image, EGLint device_type)
1043 EGLBoolean ret = EGL_FALSE;
1045 _COREGL_TRACEPATH_FUNC_BEGIN();
1046 ret = _orig_tracepath_eglUnmapImageSEC(dpy, image, device_type);
1050 _COREGL_TRACEPATH_FUNC_END();
1055 tracepath_eglGetImageAttribSEC(EGLDisplay dpy, EGLImageKHR image, EGLint attribute, EGLint *value)
1057 EGLBoolean ret = EGL_FALSE;
1059 _COREGL_TRACEPATH_FUNC_BEGIN();
1060 ret = _orig_tracepath_eglGetImageAttribSEC(dpy, image, attribute, value);
1064 _COREGL_TRACEPATH_FUNC_END();
1069 tracepath_eglLockSurfaceKHR(EGLDisplay display, EGLSurface surface, const EGLint *attrib_list)
1071 EGLBoolean ret = EGL_FALSE;
1073 _COREGL_TRACEPATH_FUNC_BEGIN();
1074 ret = _orig_tracepath_eglLockSurfaceKHR(display, surface, attrib_list);
1078 _COREGL_TRACEPATH_FUNC_END();
1083 tracepath_eglUnlockSurfaceKHR(EGLDisplay display, EGLSurface surface)
1085 EGLBoolean ret = EGL_FALSE;
1087 _COREGL_TRACEPATH_FUNC_BEGIN();
1088 ret = _orig_tracepath_eglUnlockSurfaceKHR(display, surface);
1092 _COREGL_TRACEPATH_FUNC_END();