summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author luliuhui <liuhui.lu@intel.com> 2012-08-30 11:15:36 +0800
committer Shuo Gao <shuo.gao@intel.com> 2013-01-22 15:14:34 +0800
commit69d100762c7c26d8328f4bb61cfef026d3a69bbf (patch)
tree7a7a7d35d5cb4317bf96faa2ddf801c90a3e9994
parent845ed8fdaa34d0f684c93bf4dbadb9162f769235 (diff)
Gfx-3d: fix GetProcAddress in egl extention
This patch can fix issue when Proc address return NULL. Glbench10, egl-ext and conformance test need this patch to run pass. Change-Id: I275c7cb6f77cb334c3ee7fa23cd696bba1c5a458 Author: Liuhui Lu <liuhui.lu@intel.com> Signed-off-by: Shuo Gao <shuo.gao@intel.com> Signed-off-by: Bruce Beare <bruce.j.beare@intel.com> Signed-off-by: Jack Ren <jack.ren@intel.com> Author-tracking-BZ: 52622
-rw-r--r--opengl/libs/EGL/eglApi.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/opengl/libs/EGL/eglApi.cpp b/opengl/libs/EGL/eglApi.cpp
index 4e4494142b..065faf24ba 100644
--- a/opengl/libs/EGL/eglApi.cpp
+++ b/opengl/libs/EGL/eglApi.cpp
@@ -760,8 +760,8 @@ __eglMustCastToProperFunctionPointerType eglGetProcAddress(const char *procname)
egl_connection_t* const cnx = &gEGLImpl;
if (cnx->dso && cnx->egl.eglGetProcAddress) {
- found = true;
// Extensions are independent of the bound context
+ addr =
cnx->hooks[egl_connection_t::GLESv1_INDEX]->ext.extensions[slot] =
cnx->hooks[egl_connection_t::GLESv2_INDEX]->ext.extensions[slot] =
#if EGL_TRACE
@@ -769,10 +769,13 @@ __eglMustCastToProperFunctionPointerType eglGetProcAddress(const char *procname)
gHooksTrace.ext.extensions[slot] =
#endif
cnx->egl.eglGetProcAddress(procname);
+ if (addr) found = true;
}
if (found) {
+#if USE_FAST_TLS_KEY
addr = gExtensionForwarders[slot];
+#endif
sGLExtentionMap.add(name, addr);
sGLExtentionSlot++;
}