[Mesa-dev] [PATCH 5/6] mapi_abi: Make ES1 and ES2 static_dispatch=false functions hidden

Chia-I Wu olv at lunarg.com
Thu Mar 27 20:27:50 PDT 2014


On Thu, Mar 27, 2014 at 8:12 AM, Ian Romanick <idr at freedesktop.org> wrote:

> From: Ian Romanick <ian.d.romanick at intel.com>
>
> This has been a long standing issue with the ES libraries.  Functions
> marked in the XML with 'static_dispatch=false' were still incorrectly
> exported.  ABI-check is supposed to detect this case, but we have to
> paper over failures every time a new extension is added.
>
Reviewed-by: Chia-I Wu <olv at lunarg.com>

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



-- 
olv at LunarG.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20140328/53f22290/attachment-0001.html>


More information about the mesa-dev mailing list