[Mesa-dev] [PATCH V3] glapi: add GL_OES_geometry_shader extension

Nanley Chery nanleychery at gmail.com
Tue Jan 12 10:06:06 PST 2016


On Tue, Jan 12, 2016 at 03:13:54PM +0100, Marta Lofstedt wrote:
> From: Marta Lofstedt <marta.lofstedt at intel.com>
> 
> Add xml definitions for the GL_OES_geometry_shader extension
> and expose the extension for OpenGL ES 3.1.
> 
> V3: Added dependency to OES_shader_io_blocks and updated to
> correct Khronos extension number.
> 
> Signed-off-by: Marta Lofstedt <marta.lofstedt at linux.intel.com>
> ---
>  src/mapi/glapi/gen/apiexec.py           |  2 +-
>  src/mapi/glapi/gen/es_EXT.xml           | 43 +++++++++++++++++++++++++++++++++
>  src/mesa/main/extensions_table.h        |  1 +
>  src/mesa/main/mtypes.h                  |  2 ++
>  src/mesa/main/tests/dispatch_sanity.cpp |  3 +++
>  5 files changed, 50 insertions(+), 1 deletion(-)
> 
> diff --git a/src/mapi/glapi/gen/apiexec.py b/src/mapi/glapi/gen/apiexec.py
> index 58ec08b..fa046fa 100644
> --- a/src/mapi/glapi/gen/apiexec.py
> +++ b/src/mapi/glapi/gen/apiexec.py
> @@ -72,7 +72,7 @@ functions = {
>  
>      # OpenGL 3.2 / GL_ARB_geometry_shader4.  Mesa does not support
>      # GL_ARB_geometry_shader4, so OpenGL 3.2 is required.
> -    "FramebufferTexture": exec_info(core=32),
> +    "FramebufferTexture": exec_info(core=32, es2=31),
>  
>      # OpenGL 4.0 / GL_ARB_shader_subroutines. Mesa only exposes this
>      # extension with core profile.
> diff --git a/src/mapi/glapi/gen/es_EXT.xml b/src/mapi/glapi/gen/es_EXT.xml
> index 577d825..8ecce34 100644
> --- a/src/mapi/glapi/gen/es_EXT.xml
> +++ b/src/mapi/glapi/gen/es_EXT.xml
> @@ -940,4 +940,47 @@
>      </function>
>  
>  </category>
> +
> +<!-- 210. GL_OES_geometry_shader -->
> +<category name="GL_OES_geometry_shader" number="210">
> +    <enum name="GEOMETRY_SHADER_OES"                             value="0x8DD9"/>
> +    <enum name="GEOMETRY_SHADER_BIT_OES"                         value="0x00000004"/>
> +    <enum name="GEOMETRY_LINKED_VERTICES_OUT_OES"                value="0x8916"/>
> +    <enum name="GEOMETRY_LINKED_INPUT_TYPE_OES"                  value="0x8917"/>
> +    <enum name="GEOMETRY_LINKED_OUTPUT_TYPE_OES"                 value="0x8918"/>
> +    <enum name="GEOMETRY_SHADER_INVOCATIONS_OES"                 value="0x887F"/>
> +    <enum name="LAYER_PROVOKING_VERTEX_OES"                      value="0x825E"/>
> +    <enum name="MAX_GEOMETRY_UNIFORM_BLOCKS_OES"                 value="0x8A2C"/>
> +    <enum name="MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_OES"    value="0x8A32"/>
> +    <enum name="MAX_GEOMETRY_INPUT_COMPONENTS_OES"               value="0x9123"/>
> +    <enum name="MAX_GEOMETRY_OUTPUT_COMPONENTS_OES"              value="0x9124"/>
> +    <enum name="MAX_GEOMETRY_OUTPUT_VERTICES_OES"                value="0x8DE0"/>
> +    <enum name="MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_OES"        value="0x8DE1"/>
> +    <enum name="MAX_GEOMETRY_SHADER_INVOCATIONS_OES"             value="0x8E5A"/>
> +    <enum name="MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_OES"            value="0x8C29"/>
> +    <enum name="MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_OES"         value="0x92CF"/>
> +    <enum name="MAX_GEOMETRY_ATOMIC_COUNTERS_OES"                value="0x92D5"/>
> +    <enum name="MAX_GEOMETRY_IMAGE_UNIFORMS_OES"                 value="0x90CD"/>
> +    <enum name="MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_OES"          value="0x90D7"/>
> +    <enum name="FIRST_VERTEX_CONVENTION_OES"                     value="0x8E4D"/>
> +    <enum name="LAST_VERTEX_CONVENTION_OES"                      value="0x8E4E"/>
> +    <enum name="UNDEFINED_VERTEX_OES"                            value="0x8260"/>
> +    <enum name="PRIMITIVES_GENERATED_OES"                        value="0x8C87"/>
> +    <enum name="LINES_ADJACENCY_OES"                             value="0xA"/>
> +    <enum name="LINE_STRIP_ADJACENCY_OES"                        value="0xB"/>
> +    <enum name="TRIANGLES_ADJACENCY_OES"                         value="0xC"/>
> +    <enum name="TRIANGLE_STRIP_ADJACENCY_OES"                    value="0xD"/>
> +    <enum name="FRAMEBUFFER_DEFAULT_LAYERS_OES"                  value="0x9312"/>
> +    <enum name="MAX_FRAMEBUFFER_LAYERS_OES"                      value="0x9317"/>
> +    <enum name="FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_OES"        value="0x8DA8"/>
> +    <enum name="FRAMEBUFFER_ATTACHMENT_LAYERED_OES"              value="0x8DA7"/>
> +    <enum name="REFERENCED_BY_GEOMETRY_SHADER_OES"               value="0x9309"/>
> +
> +    <function name="FramebufferTextureOES" alias="FramebufferTexture" es2="3.1">
> +        <param name="target" type="GLenum"/>
> +        <param name="attachment" type="GLenum"/>
> +        <param name="texture" type="GLuint"/>
> +        <param name="level" type="GLint"/>
> +    </function>
> +  </category>
>  </OpenGLAPI>
> diff --git a/src/mesa/main/extensions_table.h b/src/mesa/main/extensions_table.h
> index aeccb01..11ca22e 100644
> --- a/src/mesa/main/extensions_table.h
> +++ b/src/mesa/main/extensions_table.h
> @@ -309,6 +309,7 @@ EXT(OES_element_index_uint                  , dummy_true
>  EXT(OES_fbo_render_mipmap                   , dummy_true                             ,  x ,  x , ES1, ES2, 2005)
>  EXT(OES_fixed_point                         , dummy_true                             ,  x ,  x , ES1,  x , 2002)
>  EXT(OES_framebuffer_object                  , dummy_true                             ,  x ,  x , ES1,  x , 2005)
> +EXT(OES_geometry_shader                     , OES_shader_io_blocks                   ,  x ,  x ,  x ,  31, 2015)
>  EXT(OES_get_program_binary                  , dummy_true                             ,  x ,  x ,  x , ES2, 2008)
>  EXT(OES_mapbuffer                           , dummy_true                             ,  x ,  x , ES1, ES2, 2005)
>  EXT(OES_packed_depth_stencil                , dummy_true                             ,  x ,  x , ES1, ES2, 2007)
> diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
> index 0992d4d..24208b0 100644
> --- a/src/mesa/main/mtypes.h
> +++ b/src/mesa/main/mtypes.h
> @@ -3904,6 +3904,8 @@ struct gl_extensions
>     GLboolean OES_texture_half_float;
>     GLboolean OES_texture_half_float_linear;
>     GLboolean OES_compressed_ETC1_RGB8_texture;
> +   GLboolean OES_geometry_shader;

Now that you're dependent on OES_shader_io_blocks, you shouldn't need
to add the OES_geometry_shader boolean anymore.

- Nanley

> +   GLboolean OES_shader_io_blocks;
>     GLboolean extension_sentinel;
>     /** The extension string */
>     const GLubyte *String;
> diff --git a/src/mesa/main/tests/dispatch_sanity.cpp b/src/mesa/main/tests/dispatch_sanity.cpp
> index 7610bcb..f652da1 100644
> --- a/src/mesa/main/tests/dispatch_sanity.cpp
> +++ b/src/mesa/main/tests/dispatch_sanity.cpp
> @@ -2524,5 +2524,8 @@ const struct function gles31_functions_possible[] = {
>     /* GL_EXT_blend_func_extended */
>     { "glGetProgramResourceLocationIndexEXT", 31, -1 },
>  
> +   /* GL_OES_geometry_shader */
> +   { "glFramebufferTextureOES", 31, -1},
> +
>     { NULL, 0, -1 },
>   };
> -- 
> 2.5.0
> 
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list