[Mesa-dev] [PATCH 4/4] mesa: stop aliasing ARB and core shader API functions

Ian Romanick idr at freedesktop.org
Mon Mar 10 14:06:24 PDT 2014


No way.  This will break existing applications on Linux.

On 03/08/2014 05:10 PM, Brian Paul wrote:
> For example, we now we have separate dispatch functions for
> glCompileShader(GLuint) and glCompileShaderARB(GLhandleARB).
> 
> With this change and the previous ones we should be able to build/run
> on MacOS again (where GLhandleARB is a void pointer, not a GLuint).
> 
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=66346
> ---
>  src/mapi/glapi/gen/gl_API.xml |   28 +++++++++++++++-------------
>  src/mesa/main/dlist.c         |    2 +-
>  2 files changed, 16 insertions(+), 14 deletions(-)
> 
> diff --git a/src/mapi/glapi/gen/gl_API.xml b/src/mapi/glapi/gen/gl_API.xml
> index 7e1946e..76f56c4 100644
> --- a/src/mapi/glapi/gen/gl_API.xml
> +++ b/src/mapi/glapi/gen/gl_API.xml
> @@ -7829,14 +7829,14 @@
>          <glx ignore="true"/>
>      </function>
>  
> -    <function name="ShaderSourceARB" alias="ShaderSource">
> +    <function name="ShaderSourceARB" offset="assign">
>          <param name="shader" type="GLhandleARB"/>
>          <param name="count" type="GLsizei"/>
>          <param name="string" type="const GLcharARB **"/>
>          <param name="length" type="const GLint *"/>
>      </function>
>  
> -    <function name="CompileShaderARB" alias="CompileShader">
> +    <function name="CompileShaderARB" offset="assign">
>          <param name="shader" type="GLhandleARB"/>
>      </function>
>  
> @@ -7851,15 +7851,17 @@
>          <glx ignore="true"/>
>      </function>
>  
> -    <function name="LinkProgramARB" alias="LinkProgram">
> +    <function name="LinkProgramARB" offset="assign">
>          <param name="program" type="GLhandleARB"/>
>      </function>
>  
> -    <function name="UseProgramObjectARB" alias="UseProgram">
> +    <function name="UseProgramObjectARB" offset="assign">
>          <param name="program" type="GLhandleARB"/>
> +        <glx ignore="true"/>
> +        <glx ignore="true"/>
>      </function>
>  
> -    <function name="ValidateProgramARB" alias="ValidateProgram">
> +    <function name="ValidateProgramARB" offset="assign">
>          <param name="program" type="GLhandleARB"/>
>      </function>
>  
> @@ -8014,13 +8016,13 @@
>          <glx ignore="true"/>
>      </function>
>  
> -    <function name="GetUniformLocationARB" alias="GetUniformLocation">
> +    <function name="GetUniformLocationARB" offset="assign">
>          <param name="program" type="GLhandleARB"/>
>          <param name="name" type="const GLcharARB *"/>
>          <return type="GLint"/>
>      </function>
>  
> -    <function name="GetActiveUniformARB" alias="GetActiveUniform">
> +    <function name="GetActiveUniformARB" offset="assign">
>          <param name="program" type="GLhandleARB"/>
>          <param name="index" type="GLuint"/>
>          <param name="bufSize" type="GLsizei"/>
> @@ -8030,19 +8032,19 @@
>          <param name="name" type="GLcharARB *"/>
>      </function>
>  
> -    <function name="GetUniformfvARB" alias="GetUniformfv">
> +    <function name="GetUniformfvARB" offset="assign">
>          <param name="program" type="GLhandleARB"/>
>          <param name="location" type="GLint"/>
>          <param name="params" type="GLfloat *"/>
>      </function>
>  
> -    <function name="GetUniformivARB" alias="GetUniformiv">
> +    <function name="GetUniformivARB" offset="assign">
>          <param name="program" type="GLhandleARB"/>
>          <param name="location" type="GLint"/>
>          <param name="params" type="GLint *"/>
>      </function>
>  
> -    <function name="GetShaderSourceARB" alias="GetShaderSource">
> +    <function name="GetShaderSourceARB" offset="assign">
>          <param name="shader" type="GLhandleARB"/>
>          <param name="bufSize" type="GLsizei"/>
>          <param name="length" type="GLsizei *"/>
> @@ -8059,13 +8061,13 @@
>      <enum name="OBJECT_ACTIVE_ATTRIBUTES_ARB"             value="0x8B89"/>
>      <enum name="OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB"   value="0x8B8A"/>
>  
> -    <function name="BindAttribLocationARB" alias="BindAttribLocation">
> +    <function name="BindAttribLocationARB" offset="assign">
>          <param name="program" type="GLhandleARB"/>
>          <param name="index" type="GLuint"/>
>          <param name="name" type="const GLcharARB *"/>
>      </function>
>  
> -    <function name="GetActiveAttribARB" alias="GetActiveAttrib">
> +    <function name="GetActiveAttribARB" offset="assign">
>          <param name="program" type="GLhandleARB"/>
>          <param name="index" type="GLuint"/>
>          <param name="bufSize" type="GLsizei"/>
> @@ -8075,7 +8077,7 @@
>          <param name="name" type="GLcharARB *"/>
>      </function>
>  
> -    <function name="GetAttribLocationARB" alias="GetAttribLocation">
> +    <function name="GetAttribLocationARB" offset="assign">
>          <param name="program" type="GLhandleARB"/>
>          <param name="name" type="const GLcharARB *"/>
>          <return type="GLint"/>
> diff --git a/src/mesa/main/dlist.c b/src/mesa/main/dlist.c
> index 6035ec0..b29b440 100644
> --- a/src/mesa/main/dlist.c
> +++ b/src/mesa/main/dlist.c
> @@ -8728,7 +8728,7 @@ _mesa_initialize_save_table(const struct gl_context *ctx)
>     SET_BlitFramebuffer(table, save_BlitFramebufferEXT);
>  
>     SET_UseProgram(table, save_UseProgram);
> -//   SET_UseProgramObjectARB(table, save_UseProgramObjectARB);
> +   SET_UseProgramObjectARB(table, save_UseProgramObjectARB);
>     SET_Uniform1f(table, save_Uniform1fARB);
>     SET_Uniform2f(table, save_Uniform2fARB);
>     SET_Uniform3f(table, save_Uniform3fARB);
> 



More information about the mesa-dev mailing list