Okay... I see what happened.  I thought it was weird that it added
glBindFragDataLocationEXT to an ES3 context because GLES3 surely already
has glBindFragDataLocation.  It actually doesn't.  The only way to set
the fragment shader output location is using a layout qualifier in the
shader.  GLES generally has a "one way to do things" guiding principle,
so glBindFragDataLocation had to go.  Nice to see NVIDIA sneak it back
in with a mostly unrelated extension. :)

This patch is

Reviewed-by: Ian Romanick <ian.d.roman...@intel.com>

On 11/06/2015 10:41 AM, Ryan Houdek wrote:
> Yes this is correct. These functions are only available in ES 3.0+ profiles.
> The only things that ES 2.0 gets is the new builtins for the shading
> language.
> 
> On Fri, Nov 6, 2015 at 12:49 PM, Ian Romanick <i...@freedesktop.org
> <mailto:i...@freedesktop.org>> wrote:
> 
>     On 11/05/2015 06:47 PM, Ryan Houdek wrote:
>     > ---
>     >  src/mapi/glapi/gen/EXT_gpu_shader4.xml  |  3 ++-
>     >  src/mapi/glapi/gen/es_EXT.xml           | 26 ++++++++++++++++++++++++++
>     >  src/mesa/main/tests/dispatch_sanity.cpp |  8 ++++++++
>     >  3 files changed, 36 insertions(+), 1 deletion(-)
>     >
>     > diff --git a/src/mapi/glapi/gen/EXT_gpu_shader4.xml 
> b/src/mapi/glapi/gen/EXT_gpu_shader4.xml
>     > index b1f7eae..b4120b9 100644
>     > --- a/src/mapi/glapi/gen/EXT_gpu_shader4.xml
>     > +++ b/src/mapi/glapi/gen/EXT_gpu_shader4.xml
>     > @@ -232,7 +232,8 @@
>     >          <param name="params" type="GLuint *"/>
>     >      </function>
>     >
>     > -    <function name="BindFragDataLocationEXT" 
> alias="BindFragDataLocation">
>     > +    <function name="BindFragDataLocationEXT" 
> alias="BindFragDataLocation"
>     > +         es2="3.0">
> 
>     Is this right?  It looks like patch 8 enables the extension in OpenGL ES
>     2.0 contexts.
> 
>     There are more occurrences of this below...
> 
>     >          <param name="program" type="GLuint"/>
>     >          <param name="colorNumber" type="GLuint"/>
>     >          <param name="name" type="const GLchar *"/>
>     > diff --git a/src/mapi/glapi/gen/es_EXT.xml
>     b/src/mapi/glapi/gen/es_EXT.xml
>     > index 9a777a2..577d825 100644
>     > --- a/src/mapi/glapi/gen/es_EXT.xml
>     > +++ b/src/mapi/glapi/gen/es_EXT.xml
>     > @@ -914,4 +914,30 @@
>     >      </function>
>     >  </category>
>     >
>     > +<category name="GL_EXT_blend_func_extended" number="247">
>     > +
>     > +    <function name="BindFragDataLocationIndexedEXT"
>     alias="BindFragDataLocationIndexed"
>     > +            es2="3.0">
>     > +        <param name="program" type="GLuint"/>
>     > +        <param name="colorNumber" type="GLuint"/>
>     > +        <param name="index" type="GLuint"/>
>     > +        <param name="name" type="const GLchar *"/>
>     > +    </function>
>     > +
>     > +    <function name="GetFragDataIndexEXT" alias="GetFragDataIndex"
>     > +            es2="3.0">
>     > +        <param name="program" type="GLuint"/>
>     > +        <param name="name" type="const GLchar *"/>
>     > +        <return type="GLint"/>
>     > +    </function>
>     > +
>     > +    <function name="GetProgramResourceLocationIndexEXT"
>     alias="GetProgramResourceLocationIndex"
>     > +           es2="3.1">
>     > +        <param name="program" type="GLuint"/>
>     > +        <param name="programInterface" type="GLenum"/>
>     > +        <param name="name" type="const GLchar *"/>
>     > +        <return type="GLint"/>
>     > +    </function>
>     > +
>     > +</category>
>     >  </OpenGLAPI>
>     > diff --git a/src/mesa/main/tests/dispatch_sanity.cpp
>     b/src/mesa/main/tests/dispatch_sanity.cpp
>     > index abe0f43..97f81f9 100644
>     > --- a/src/mesa/main/tests/dispatch_sanity.cpp
>     > +++ b/src/mesa/main/tests/dispatch_sanity.cpp
>     > @@ -2421,6 +2421,11 @@ const struct function
>     gles3_functions_possible[] = {
>     >     { "glProgramUniform4uiEXT", 30, -1 },
>     >     { "glProgramUniform4uivEXT", 30, -1 },
>     >
>     > +   /* GL_EXT_blend_func_extended */
>     > +   { "glBindFragDataLocationIndexedEXT", 30, -1 },
>     > +   { "glGetFragDataIndexEXT", 30, -1 },
>     > +   { "glBindFragDataLocationEXT", 30, -1 },
>     > +
>     >     { NULL, 0, -1 }
>     >  };
>     >
>     > @@ -2509,5 +2514,8 @@ const struct function
>     gles31_functions_possible[] = {
>     >     /* GL_EXT_buffer_storage */
>     >     { "glBufferStorageEXT", 31, -1 },
>     >
>     > +   /* GL_EXT_blend_func_extended */
>     > +   { "glGetProgramResourceLocationIndexEXT", 31, -1 },
>     > +
>     >     { NULL, 0, -1 },
>     >   };
>     >
> 
> 

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to