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 if (cur_tstate_tm->ctx == current)
147 current_t = current_t->next;
152 TRACE(" EGLCTX [%12p] : EGLDPY=[%12p] <MC count [%10d]> <Ref [%2d]>\E[0m\n",
159 current = current->next;
164 TRACE("\E[40;34m========================================================================================================================\E[0m\n");
173 AST(mutex_unlock(&general_trace_lists_access_mutex) == 1);
174 AST(mutex_unlock(&ctx_access_mutex) == 1);
178 #endif // COREGL_TRACEPATH_TRACE_CONTEXT_INFO
182 tracepath_add_context(GLContext ctx, GLDisplay dpy, GLContext share_ctx)
184 Ctx_Data *current = NULL;
185 Ctx_Data *data = NULL;
187 AST(mutex_lock(&ctx_access_mutex) == 1);
191 while (current != NULL)
193 if (current->handle == ctx)
198 current = current->next;
203 data = (Ctx_Data *)calloc(1, sizeof(Ctx_Data));
208 data->sostate = _get_sostate(share_ctx);
209 if (data->sostate == NULL)
211 data->sostate = (Sostate_Data *)calloc(1, sizeof(Sostate_Data));
212 data->sostate->ref_count = 1;
215 if (ctx_data != NULL)
216 data->next = ctx_data;
223 AST(mutex_unlock(&ctx_access_mutex) == 1);
228 tracepath_get_context(GLContext ctx)
230 Ctx_Data *current = NULL;
231 Ctx_Data *data = NULL;
233 AST(mutex_lock(&ctx_access_mutex) == 1);
237 while (current != NULL)
239 if (current->handle == ctx)
244 current = current->next;
248 COREGL_WRN("Error making context [%p] current. (invalid EGL context)\n", ctx);
255 AST(mutex_unlock(&ctx_access_mutex) == 1);
260 tracepath_remove_context(GLContext ctx)
262 Ctx_Data *current = NULL;
263 Ctx_Data *prev = NULL;
265 AST(mutex_lock(&ctx_access_mutex) == 1);
269 while (current != NULL)
271 if (current->handle == ctx)
273 if (--current->ref_count <= 0)
276 prev->next = current->next;
278 ctx_data = current->next;
280 if (--current->sostate->ref_count <= 0)
282 tracepath_glbuf_clear(current->sostate->glbuf_rb);
283 tracepath_glbuf_clear(current->sostate->glbuf_tex);
284 free(current->sostate);
285 current->sostate = NULL;
294 current = current->next;
299 AST(mutex_unlock(&ctx_access_mutex) == 1);
304 tracepath_eglGetError(void)
306 EGLint ret = _COREGL_INT_INIT_VALUE;
308 _COREGL_TRACEPATH_FUNC_BEGIN();
309 ret = _orig_tracepath_eglGetError();
313 _COREGL_TRACEPATH_FUNC_END();
318 tracepath_eglGetDisplay(EGLNativeDisplayType display_id)
320 EGLDisplay ret = EGL_NO_DISPLAY;
322 _COREGL_TRACEPATH_FUNC_BEGIN();
323 ret = _orig_tracepath_eglGetDisplay(display_id);
327 _COREGL_TRACEPATH_FUNC_END();
332 tracepath_eglInitialize(EGLDisplay dpy, EGLint* major, EGLint* minor)
334 EGLBoolean ret = EGL_FALSE;
335 _COREGL_TRACEPATH_FUNC_BEGIN();
336 ret = _orig_tracepath_eglInitialize(dpy, major, minor);
340 _COREGL_TRACEPATH_FUNC_END();
345 tracepath_eglTerminate(EGLDisplay dpy)
347 EGLBoolean ret = EGL_FALSE;
349 _COREGL_TRACEPATH_FUNC_BEGIN();
350 ret = _orig_tracepath_eglTerminate(dpy);
354 _COREGL_TRACEPATH_FUNC_END();
359 tracepath_eglGetConfigs(EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config)
361 EGLBoolean ret = EGL_FALSE;
363 _COREGL_TRACEPATH_FUNC_BEGIN();
364 ret = _orig_tracepath_eglGetConfigs(dpy, configs, config_size, num_config);
368 _COREGL_TRACEPATH_FUNC_END();
373 tracepath_eglChooseConfig(EGLDisplay dpy, const EGLint* attrib_list, EGLConfig* configs, EGLint config_size, EGLint* num_config)
375 EGLBoolean ret = EGL_FALSE;
377 _COREGL_TRACEPATH_FUNC_BEGIN();
378 ret = _orig_tracepath_eglChooseConfig(dpy, attrib_list, configs, config_size, num_config);
382 _COREGL_TRACEPATH_FUNC_END();
387 tracepath_eglGetConfigAttrib(EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value)
389 EGLBoolean ret = EGL_FALSE;
391 _COREGL_TRACEPATH_FUNC_BEGIN();
392 ret = _orig_tracepath_eglGetConfigAttrib(dpy, config, attribute, value);
396 _COREGL_TRACEPATH_FUNC_END();
402 tracepath_eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint* attrib_list)
404 EGLSurface ret = EGL_NO_SURFACE;
406 _COREGL_TRACEPATH_FUNC_BEGIN();
407 ret = _orig_tracepath_eglCreateWindowSurface(dpy, config, win, attrib_list);
411 _COREGL_TRACEPATH_FUNC_END();
416 tracepath_eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list)
418 EGLSurface ret = EGL_NO_SURFACE;
420 _COREGL_TRACEPATH_FUNC_BEGIN();
421 ret = _orig_tracepath_eglCreatePbufferSurface(dpy, config, attrib_list);
425 _COREGL_TRACEPATH_FUNC_END();
430 tracepath_eglCreatePixmapSurface(EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint* attrib_list)
432 EGLSurface ret = EGL_NO_SURFACE;
434 _COREGL_TRACEPATH_FUNC_BEGIN();
435 ret = _orig_tracepath_eglCreatePixmapSurface(dpy, config, pixmap, attrib_list);
439 _COREGL_TRACEPATH_FUNC_END();
444 tracepath_eglDestroySurface(EGLDisplay dpy, EGLSurface surface)
446 EGLBoolean ret = EGL_FALSE;
448 _COREGL_TRACEPATH_FUNC_BEGIN();
449 ret = _orig_tracepath_eglDestroySurface(dpy, surface);
453 _COREGL_TRACEPATH_FUNC_END();
454 #ifdef COREGL_TRACEPATH_TRACE_SURFACE_INFO
457 sprintf(name, "EGLSURFACE_%p", surface);
458 tracepath_surface_trace_add(name, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL);
460 #endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
465 tracepath_eglQuerySurface(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value)
467 EGLBoolean ret = EGL_FALSE;
469 _COREGL_TRACEPATH_FUNC_BEGIN();
470 ret = _orig_tracepath_eglQuerySurface(dpy, surface, attribute, value);
474 _COREGL_TRACEPATH_FUNC_END();
479 tracepath_eglBindAPI(EGLenum api)
481 EGLBoolean ret = EGL_FALSE;
483 _COREGL_TRACEPATH_FUNC_BEGIN();
484 ret = _orig_tracepath_eglBindAPI(api);
488 _COREGL_TRACEPATH_FUNC_END();
493 tracepath_eglQueryAPI(void)
497 _COREGL_TRACEPATH_FUNC_BEGIN();
498 ret = _orig_tracepath_eglQueryAPI();
502 _COREGL_TRACEPATH_FUNC_END();
507 tracepath_eglWaitClient(void)
509 EGLBoolean ret = EGL_FALSE;
511 _COREGL_TRACEPATH_FUNC_BEGIN();
512 ret = _orig_tracepath_eglWaitClient();
516 _COREGL_TRACEPATH_FUNC_END();
521 tracepath_eglReleaseThread(void)
523 EGLBoolean ret = EGL_FALSE;
525 _COREGL_TRACEPATH_FUNC_BEGIN();
526 ret = _orig_tracepath_eglReleaseThread();
530 _COREGL_TRACEPATH_FUNC_END();
535 tracepath_eglCreatePbufferFromClientBuffer(EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint *attrib_list)
537 EGLSurface ret = EGL_NO_SURFACE;
539 _COREGL_TRACEPATH_FUNC_BEGIN();
540 ret = _orig_tracepath_eglCreatePbufferFromClientBuffer(dpy, buftype, buffer, config, attrib_list);
544 _COREGL_TRACEPATH_FUNC_END();
549 tracepath_eglSurfaceAttrib(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value)
551 EGLBoolean ret = EGL_FALSE;
553 _COREGL_TRACEPATH_FUNC_BEGIN();
554 ret = _orig_tracepath_eglSurfaceAttrib(dpy, surface, attribute, value);
558 _COREGL_TRACEPATH_FUNC_END();
563 tracepath_eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer)
565 EGLBoolean ret = EGL_FALSE;
567 _COREGL_TRACEPATH_FUNC_BEGIN();
568 ret = _orig_tracepath_eglBindTexImage(dpy, surface, buffer);
572 _COREGL_TRACEPATH_FUNC_END();
577 tracepath_eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer)
579 EGLBoolean ret = EGL_FALSE;
581 _COREGL_TRACEPATH_FUNC_BEGIN();
582 ret = _orig_tracepath_eglReleaseTexImage(dpy, surface, buffer);
586 _COREGL_TRACEPATH_FUNC_END();
591 tracepath_eglSwapInterval(EGLDisplay dpy, EGLint interval)
593 EGLBoolean ret = EGL_FALSE;
595 _COREGL_TRACEPATH_FUNC_BEGIN();
596 ret = _orig_tracepath_eglSwapInterval(dpy, interval);
600 _COREGL_TRACEPATH_FUNC_END();
605 tracepath_eglCreateContext(EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint* attrib_list)
607 EGLContext ret = EGL_NO_CONTEXT;
609 _COREGL_TRACEPATH_FUNC_BEGIN();
610 ret = _orig_tracepath_eglCreateContext(dpy, config, share_context, attrib_list);
614 _COREGL_TRACEPATH_FUNC_END();
616 if (ret != EGL_NO_CONTEXT)
618 tracepath_add_context(ret, dpy, share_context);
621 #ifdef COREGL_TRACEPATH_TRACE_CONTEXT_INFO
622 if (unlikely(trace_ctx_flag == 1))
624 if (_orig_tracepath_eglCreateContext == _sym_eglCreateContext)
627 sprintf(ment, "eglCreateContext completed (EGLCTX=[%12p])", ret);
628 _dump_context_info(ment, 1);
631 #endif // COREGL_TRACEPATH_TRACE_CONTEXT_INFO
636 tracepath_eglDestroyContext(EGLDisplay dpy, EGLContext ctx)
638 EGLBoolean ret = EGL_FALSE;
640 _COREGL_TRACEPATH_FUNC_BEGIN();
641 ret = _orig_tracepath_eglDestroyContext(dpy, ctx);
645 _COREGL_TRACEPATH_FUNC_END();
647 AST(ctx != EGL_NO_CONTEXT);
649 tracepath_remove_context(ctx);
651 #ifdef COREGL_TRACEPATH_TRACE_CONTEXT_INFO
652 if (unlikely(trace_ctx_flag == 1))
654 if (_orig_tracepath_eglDestroyContext == _sym_eglDestroyContext)
657 sprintf(ment, "eglDestroyContext completed (EGLCTX=[%12p])", ctx);
658 _dump_context_info(ment, 1);
661 #endif // COREGL_TRACEPATH_TRACE_CONTEXT_INFO
666 tracepath_eglMakeCurrent(EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx)
668 EGLBoolean ret = EGL_FALSE;
670 _COREGL_TRACEPATH_FUNC_BEGIN();
671 ret = _orig_tracepath_eglMakeCurrent(dpy, draw, read, ctx);
675 _COREGL_TRACEPATH_FUNC_END();
677 MY_MODULE_TSTATE *tstate = NULL;
679 GET_MY_TSTATE(tstate, get_current_thread_state());
682 init_new_thread_state();
684 GET_MY_TSTATE(tstate, get_current_thread_state());
688 Ctx_Data *oldctx = tstate->ctx;
690 if (ctx != EGL_NO_CONTEXT)
692 tstate->ctx = tracepath_get_context(ctx);
693 if (tstate->ctx != NULL)
694 tstate->ctx->mc_count++;
702 tracepath_remove_context(oldctx->handle);
704 tstate->surf_draw = draw;
705 tstate->surf_read = read;
707 #ifdef COREGL_TRACEPATH_TRACE_STATE_INFO
708 if (unlikely(trace_state_flag == 1))
710 if (_orig_tracepath_eglMakeCurrent == _sym_eglMakeCurrent)
711 tracepath_dump_context_states(0);
713 #endif // COREGL_TRACEPATH_TRACE_STATE_INFO
714 #ifdef COREGL_TRACEPATH_TRACE_CONTEXT_INFO
715 if (unlikely(trace_ctx_flag == 1))
717 if (_orig_tracepath_eglMakeCurrent == _sym_eglMakeCurrent)
720 sprintf(ment, "eglMakeCurrent finished (EGLCTX=[%12p] Surf=[D:%12p R:%12p])", ctx, draw, read);
721 _dump_context_info(ment, 0);
724 #endif // COREGL_TRACEPATH_TRACE_CONTEXT_INFO
729 tracepath_eglGetCurrentContext(void)
731 EGLContext ret = EGL_NO_CONTEXT;
733 _COREGL_TRACEPATH_FUNC_BEGIN();
734 ret = _orig_tracepath_eglGetCurrentContext();
738 _COREGL_TRACEPATH_FUNC_END();
743 tracepath_eglGetCurrentSurface(EGLint readdraw)
745 EGLSurface ret = EGL_NO_SURFACE;
747 _COREGL_TRACEPATH_FUNC_BEGIN();
748 ret = _orig_tracepath_eglGetCurrentSurface(readdraw);
752 _COREGL_TRACEPATH_FUNC_END();
757 tracepath_eglGetCurrentDisplay(void)
759 EGLDisplay ret = EGL_NO_DISPLAY;
761 _COREGL_TRACEPATH_FUNC_BEGIN();
762 ret = _orig_tracepath_eglGetCurrentDisplay();
766 _COREGL_TRACEPATH_FUNC_END();
771 tracepath_eglQueryContext(EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint *value)
773 EGLBoolean ret = EGL_FALSE;
775 _COREGL_TRACEPATH_FUNC_BEGIN();
776 ret = _orig_tracepath_eglQueryContext(dpy, ctx, attribute, value);
780 _COREGL_TRACEPATH_FUNC_END();
785 tracepath_eglWaitGL(void)
787 EGLBoolean ret = EGL_FALSE;
789 _COREGL_TRACEPATH_FUNC_BEGIN();
790 ret = _orig_tracepath_eglWaitGL();
792 _COREGL_TRACE_SURFACE(0, 1, "EGLWAITGL");
797 _COREGL_TRACEPATH_FUNC_END();
802 tracepath_eglWaitNative(EGLint engine)
804 EGLBoolean ret = EGL_FALSE;
806 _COREGL_TRACEPATH_FUNC_BEGIN();
807 ret = _orig_tracepath_eglWaitNative(engine);
811 _COREGL_TRACEPATH_FUNC_END();
816 tracepath_eglSwapBuffers(EGLDisplay dpy, EGLSurface surface)
818 EGLBoolean ret = EGL_FALSE;
820 _COREGL_TRACE_SURFACE(0, 1, "SWAPBUFFERS");
822 _COREGL_TRACEPATH_FUNC_BEGIN();
823 ret = _orig_tracepath_eglSwapBuffers(dpy, surface);
828 _COREGL_TRACEPATH_FUNC_END();
829 if (unlikely(trace_api_frame_flag == 1))
831 if (unlikely(trace_api_all_flag == 1))
833 _COREGL_TRACE_API_OUTPUT(1);
837 _COREGL_TRACE_API_OUTPUT(0);
839 _COREGL_TRACE_API_RESET_FRAME();
843 _COREGL_TRACE_API_OUTPUT(0);
845 _COREGL_TRACE_MEM_OUTPUT(0);
850 tracepath_eglSwapBuffersWithDamageEXT(EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects)
852 EGLBoolean ret = EGL_FALSE;
854 _COREGL_TRACE_SURFACE(0, 1, "SWAPBUFFERS");
856 _COREGL_TRACEPATH_FUNC_BEGIN();
857 ret = _orig_tracepath_eglSwapBuffersWithDamageEXT(dpy, surface, rects, n_rects);
862 _COREGL_TRACEPATH_FUNC_END();
863 if (unlikely(trace_api_frame_flag == 1))
865 if (unlikely(trace_api_all_flag == 1))
867 _COREGL_TRACE_API_OUTPUT(1);
871 _COREGL_TRACE_API_OUTPUT(0);
873 _COREGL_TRACE_API_RESET_FRAME();
877 _COREGL_TRACE_API_OUTPUT(0);
879 _COREGL_TRACE_MEM_OUTPUT(0);
884 tracepath_eglSwapBuffersRegionEXT(EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects)
886 EGLBoolean ret = EGL_FALSE;
888 _COREGL_TRACE_SURFACE(0, 1, "SWAPBUFFERS");
890 _COREGL_TRACEPATH_FUNC_BEGIN();
891 ret = _orig_tracepath_eglSwapBuffersRegionEXT(dpy, surface, numRects, rects);
896 _COREGL_TRACEPATH_FUNC_END();
897 if (unlikely(trace_api_frame_flag == 1))
899 if (unlikely(trace_api_all_flag == 1))
901 _COREGL_TRACE_API_OUTPUT(1);
905 _COREGL_TRACE_API_OUTPUT(0);
907 _COREGL_TRACE_API_RESET_FRAME();
911 _COREGL_TRACE_API_OUTPUT(0);
913 _COREGL_TRACE_MEM_OUTPUT(0);
918 tracepath_eglCopyBuffers(EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target)
920 EGLBoolean ret = EGL_FALSE;
922 _COREGL_TRACEPATH_FUNC_BEGIN();
923 ret = _orig_tracepath_eglCopyBuffers(dpy, surface, target);
927 _COREGL_TRACEPATH_FUNC_END();
932 tracepath_eglGetProcAddress(const char* procname)
936 _COREGL_TRACEPATH_FUNC_BEGIN();
938 #define _COREGL_SYMBOL(RET_TYPE, FUNC_NAME, PARAM_LIST) \
939 if (strcmp(procname, #FUNC_NAME) == 0) \
941 _eng_fn ret_orig = NULL; \
942 ret_orig = _orig_tracepath_eglGetProcAddress(procname); \
943 if (ret_orig != NULL) \
944 ret = (_eng_fn)ovr_##FUNC_NAME; \
948 #define _COREGL_EXT_SYMBOL_ALIAS(ALIAS_NAME, FUNC_NAME) \
949 if (strcmp(procname, #ALIAS_NAME) == 0) \
951 _eng_fn ret_orig = NULL; \
952 ret_orig = _orig_tracepath_eglGetProcAddress(#ALIAS_NAME); \
953 if (ret_orig != NULL) \
954 ret = (_eng_fn)ovr_##FUNC_NAME; \
958 #include "../../headers/sym_egl.h"
959 #include "../../headers/sym_gl.h"
960 #undef _COREGL_SYMBOL
961 #undef _COREGL_EXT_SYMBOL_ALIAS
963 ret = _orig_tracepath_eglGetProcAddress(procname);
966 COREGL_WRN("\E[40;31;1mTRACEPATH can't support '%s' (tracing for this function will be ignored)\E[0m\n", procname);
972 _COREGL_TRACEPATH_FUNC_END();
977 tracepath_eglQueryString(EGLDisplay dpy, EGLint name)
979 const char *ret = NULL;
981 _COREGL_TRACEPATH_FUNC_BEGIN();
982 ret = _orig_tracepath_eglQueryString(dpy, name);
986 _COREGL_TRACEPATH_FUNC_END();
991 tracepath_eglCreateImageKHR (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list)
995 _COREGL_TRACEPATH_FUNC_BEGIN();
996 ret = _orig_tracepath_eglCreateImageKHR(dpy, ctx, target, buffer, attrib_list);
1000 _COREGL_TRACEPATH_FUNC_END();
1005 tracepath_eglDestroyImageKHR(EGLDisplay dpy, EGLImageKHR image)
1007 EGLBoolean ret = EGL_FALSE;
1009 _COREGL_TRACEPATH_FUNC_BEGIN();
1010 ret = _orig_tracepath_eglDestroyImageKHR(dpy, image);
1014 _COREGL_TRACEPATH_FUNC_END();
1019 tracepath_eglMapImageSEC(EGLDisplay dpy, EGLImageKHR image, EGLint device_type, EGLint access_option)
1023 _COREGL_TRACEPATH_FUNC_BEGIN();
1024 ret = _orig_tracepath_eglMapImageSEC(dpy, image, device_type, access_option);
1028 _COREGL_TRACEPATH_FUNC_END();
1033 tracepath_eglUnmapImageSEC(EGLDisplay dpy, EGLImageKHR image, EGLint device_type)
1035 EGLBoolean ret = EGL_FALSE;
1037 _COREGL_TRACEPATH_FUNC_BEGIN();
1038 ret = _orig_tracepath_eglUnmapImageSEC(dpy, image, device_type);
1042 _COREGL_TRACEPATH_FUNC_END();
1047 tracepath_eglGetImageAttribSEC(EGLDisplay dpy, EGLImageKHR image, EGLint attribute, EGLint *value)
1049 EGLBoolean ret = EGL_FALSE;
1051 _COREGL_TRACEPATH_FUNC_BEGIN();
1052 ret = _orig_tracepath_eglGetImageAttribSEC(dpy, image, attribute, value);
1056 _COREGL_TRACEPATH_FUNC_END();
1061 tracepath_eglLockSurfaceKHR(EGLDisplay display, EGLSurface surface, const EGLint *attrib_list)
1063 EGLBoolean ret = EGL_FALSE;
1065 _COREGL_TRACEPATH_FUNC_BEGIN();
1066 ret = _orig_tracepath_eglLockSurfaceKHR(display, surface, attrib_list);
1070 _COREGL_TRACEPATH_FUNC_END();
1075 tracepath_eglUnlockSurfaceKHR(EGLDisplay display, EGLSurface surface)
1077 EGLBoolean ret = EGL_FALSE;
1079 _COREGL_TRACEPATH_FUNC_BEGIN();
1080 ret = _orig_tracepath_eglUnlockSurfaceKHR(display, surface);
1084 _COREGL_TRACEPATH_FUNC_END();
1089 tracepath_eglBindWaylandDisplayWL(EGLDisplay dpy, void* display)
1091 EGLBoolean ret = EGL_FALSE;
1093 _COREGL_TRACEPATH_FUNC_BEGIN();
1094 ret = _orig_tracepath_eglBindWaylandDisplayWL(dpy, display);
1099 _COREGL_TRACEPATH_FUNC_END();
1104 tracepath_eglUnbindWaylandDisplayWL(EGLDisplay dpy, void* display)
1106 EGLBoolean ret = EGL_FALSE;
1108 _COREGL_TRACEPATH_FUNC_BEGIN();
1109 ret = _orig_tracepath_eglUnbindWaylandDisplayWL(dpy, display);
1114 _COREGL_TRACEPATH_FUNC_END();
1120 tracepath_eglQueryWaylandBufferWL(EGLDisplay dpy, void* buffer, EGLint attribute, EGLint *value)
1122 EGLBoolean ret = EGL_FALSE;
1124 _COREGL_TRACEPATH_FUNC_BEGIN();
1125 ret = _orig_tracepath_eglQueryWaylandBufferWL(dpy, buffer, attribute, value);
1130 _COREGL_TRACEPATH_FUNC_END();