<div dir="ltr">On Thu, Mar 27, 2014 at 8:12 AM, Ian Romanick <span dir="ltr"><<a href="mailto:idr@freedesktop.org" target="_blank">idr@freedesktop.org</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">From: Ian Romanick <<a href="mailto:ian.d.romanick@intel.com">ian.d.romanick@intel.com</a>><br>

<br>
This has been a long standing issue with the ES libraries.  Functions<br>
marked in the XML with 'static_dispatch=false' were still incorrectly<br>
exported.  ABI-check is supposed to detect this case, but we have to<br>
paper over failures every time a new extension is added.<br></blockquote><div>Reviewed-by: Chia-I Wu <<a href="mailto:olv@lunarg.com">olv@lunarg.com</a>> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">

<br>
This change will cause a big pile of functions to disappear from<br>
libGLESv2 and libGLESv1_CM.<br>
<br>
libGLESv2 loses (20 functions):<br>
<br>
    glBindVertexArrayOES<br>
    glCompressedTexImage3DOES<br>
    glCompressedTexSubImage3DOES<br>
    glCopyTexSubImage3DOES<br>
    glDeleteVertexArraysOES<br>
    glDiscardFramebufferEXT<br>
    glDrawBuffersNV<br>
    glFlushMappedBufferRangeEXT<br>
    glFramebufferTexture3DOES<br>
    glGenVertexArraysOES<br>
    glGetBufferPointervOES<br>
    glGetProgramBinaryOES<br>
    glIsVertexArrayOES<br>
    glMapBufferOES<br>
    glMapBufferRangeEXT<br>
    glProgramBinaryOES<br>
    glReadBufferNV<br>
    glTexImage3DOES<br>
    glTexSubImage3DOES<br>
    glUnmapBufferOES<br>
<br>
libGLESv1_CM loses (88 functions):<br>
<br>
    glAlphaFuncxOES<br>
    glBindFramebufferOES<br>
    glBindRenderbufferOES<br>
    glBlendEquationOES<br>
    glBlendEquationSeparateOES<br>
    glBlendFuncSeparateOES<br>
    glCheckFramebufferStatusOES<br>
    glClearColorxOES<br>
    glClearDepthfOES<br>
    glClearDepthxOES<br>
    glClipPlanefOES<br>
    glClipPlanexOES<br>
    glColor4xOES<br>
    glDeleteFramebuffersOES<br>
    glDeleteRenderbuffersOES<br>
    glDepthRangefOES<br>
    glDepthRangexOES<br>
    glDiscardFramebufferEXT<br>
    glDrawTexfOES<br>
    glDrawTexfvOES<br>
    glDrawTexiOES<br>
    glDrawTexivOES<br>
    glDrawTexsOES<br>
    glDrawTexsvOES<br>
    glDrawTexxOES<br>
    glDrawTexxvOES<br>
    glFlushMappedBufferRangeEXT<br>
    glFogxOES<br>
    glFogxvOES<br>
    glFramebufferRenderbufferOES<br>
    glFramebufferTexture2DOES<br>
    glFrustumfOES<br>
    glFrustumxOES<br>
    glGenerateMipmapOES<br>
    glGenFramebuffersOES<br>
    glGenRenderbuffersOES<br>
    glGetBufferPointervOES<br>
    glGetClipPlanefOES<br>
    glGetClipPlanexOES<br>
    glGetFixedvOES<br>
    glGetFramebufferAttachmentParameterivOES<br>
    glGetLightxvOES<br>
    glGetMaterialxvOES<br>
    glGetRenderbufferParameterivOES<br>
    glGetTexEnvxvOES<br>
    glGetTexGenfvOES<br>
    glGetTexGenivOES<br>
    glGetTexGenxvOES<br>
    glGetTexParameterxvOES<br>
    glIsFramebufferOES<br>
    glIsRenderbufferOES<br>
    glLightModelxOES<br>
    glLightModelxvOES<br>
    glLightxOES<br>
    glLightxvOES<br>
    glLineWidthxOES<br>
    glLoadMatrixxOES<br>
    glMapBufferOES<br>
    glMapBufferRangeEXT<br>
    glMaterialxOES<br>
    glMaterialxvOES<br>
    glMultiTexCoord4xOES<br>
    glMultMatrixxOES<br>
    glNormal3xOES<br>
    glOrthofOES<br>
    glOrthoxOES<br>
    glPointParameterxOES<br>
    glPointParameterxvOES<br>
    glPointSizePointerOES<br>
    glPointSizexOES<br>
    glPolygonOffsetxOES<br>
    glQueryMatrixxOES<br>
    glRenderbufferStorageOES<br>
    glRotatexOES<br>
    glSampleCoveragexOES<br>
    glScalexOES<br>
    glTexEnvxOES<br>
    glTexEnvxvOES<br>
    glTexGenfOES<br>
    glTexGenfvOES<br>
    glTexGeniOES<br>
    glTexGenivOES<br>
    glTexGenxOES<br>
    glTexGenxvOES<br>
    glTexParameterxOES<br>
    glTexParameterxvOES<br>
    glTranslatexOES<br>
    glUnmapBufferOES<br>
<br>
Signed-off-by: Ian Romanick <<a href="mailto:ian.d.romanick@intel.com">ian.d.romanick@intel.com</a>><br>
Cc: Chia-I Wu <<a href="mailto:olv@lunarg.com">olv@lunarg.com</a>><br>
Cc: Paul Berry <<a href="mailto:stereotype441@gmail.com">stereotype441@gmail.com</a>><br>
Cc: Chad Versace <<a href="mailto:chad.versace@linux.intel.com">chad.versace@linux.intel.com</a>><br>
---<br>
 src/mapi/mapi_abi.py | 10 ++++++----<br>
 1 file changed, 6 insertions(+), 4 deletions(-)<br>
<br>
diff --git a/src/mapi/mapi_abi.py b/src/mapi/mapi_abi.py<br>
index 48050e8..d783ed3 100644<br>
--- a/src/mapi/mapi_abi.py<br>
+++ b/src/mapi/mapi_abi.py<br>
@@ -744,8 +744,9 @@ class ES1APIPrinter(GLAPIPrinter):<br>
     def _override_for_api(self, ent):<br>
         if ent.xml_data is None:<br>
             raise Exception('ES2 API printer requires XML input')<br>
-        ent.hidden = <a href="http://ent.name" target="_blank">ent.name</a> not in \<br>
-            ent.xml_data.entry_points_for_api_version('es1')<br>
+        ent.hidden = (<a href="http://ent.name" target="_blank">ent.name</a> not in \<br>
+            ent.xml_data.entry_points_for_api_version('es1')) \<br>
+            or ent.hidden<br>
         ent.handcode = False<br>
<br>
     def _get_c_header(self):<br>
@@ -767,8 +768,9 @@ class ES2APIPrinter(GLAPIPrinter):<br>
     def _override_for_api(self, ent):<br>
         if ent.xml_data is None:<br>
             raise Exception('ES2 API printer requires XML input')<br>
-        ent.hidden = <a href="http://ent.name" target="_blank">ent.name</a> not in \<br>
-            ent.xml_data.entry_points_for_api_version('es2')<br>
+        ent.hidden = (<a href="http://ent.name" target="_blank">ent.name</a> not in \<br>
+            ent.xml_data.entry_points_for_api_version('es2')) \<br>
+            or ent.hidden<br>
<br>
         # This is hella ugly.  The same-named function in desktop OpenGL is<br>
         # hidden, but it needs to be exposed by libGLESv2 for OpenGL ES 3.0.<br>
<span class=""><font color="#888888">--<br>
1.8.1.4<br>
<br>
_______________________________________________<br>
mesa-dev mailing list<br>
<a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/mesa-dev" target="_blank">http://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
</font></span></blockquote></div><br><br clear="all"><br>-- <br>olv@LunarG.com
</div></div>