This patch is Reviewed-by: Ian Romanick <ian.d.roman...@intel.com>
On 01/21/2016 07:17 AM, Marta Lofstedt wrote: > From: Marta Lofstedt <marta.lofst...@intel.com> > > Add xml definitions for the GL_OES_geometry_shader extension > and expose the extension for OpenGL ES 3.1. > > Signed-off-by: Marta Lofstedt <marta.lofst...@linux.intel.com> > Reviewed-by: Ilia Mirkin <imir...@alum.mit.edu> > --- > src/mapi/glapi/gen/apiexec.py | 5 ++-- > src/mapi/glapi/gen/es_EXT.xml | 43 > +++++++++++++++++++++++++++++++++ > src/mesa/main/extensions_table.h | 1 + > src/mesa/main/mtypes.h | 1 + > src/mesa/main/tests/dispatch_sanity.cpp | 3 +++ > 5 files changed, 50 insertions(+), 3 deletions(-) > > diff --git a/src/mapi/glapi/gen/apiexec.py b/src/mapi/glapi/gen/apiexec.py > index 58ec08b..2a80432 100644 > --- a/src/mapi/glapi/gen/apiexec.py > +++ b/src/mapi/glapi/gen/apiexec.py > @@ -70,9 +70,8 @@ functions = { > # extension with core profile. > "TexBuffer": exec_info(core=31), > > - # 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), > + # OpenGL 3.2 / GL_OES_geometry_shader. > + "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..86df980 100644 > --- a/src/mapi/glapi/gen/es_EXT.xml > +++ b/src/mapi/glapi/gen/es_EXT.xml > @@ -940,4 +940,47 @@ > </function> > > </category> > + > +<!-- 175. 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..ebcd0e6 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_geometry_shader > , 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..40cc2a5 100644 > --- a/src/mesa/main/mtypes.h > +++ b/src/mesa/main/mtypes.h > @@ -3904,6 +3904,7 @@ struct gl_extensions > GLboolean OES_texture_half_float; > GLboolean OES_texture_half_float_linear; > GLboolean OES_compressed_ETC1_RGB8_texture; > + GLboolean OES_geometry_shader; > 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 }, > }; > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev