[Mesa-dev] [PATCH v2] mesa: remove ARB_geometry_shader4

Lofstedt, Marta marta.lofstedt at intel.com
Thu Nov 26 00:16:53 PST 2015


> -----Original Message-----
> From: mesa-dev [mailto:mesa-dev-bounces at lists.freedesktop.org] On
> Behalf Of Ilia Mirkin
> Sent: Wednesday, November 25, 2015 8:03 PM
> To: Marta Lofstedt
> Cc: mesa-dev at lists.freedesktop.org; Kenneth Graunke; Emil Velikov
> Subject: Re: [Mesa-dev] [PATCH v2] mesa: remove ARB_geometry_shader4
> 
> At first I thought it was a mistake to remove things from enum_strings.cpp,
> but it looks like the ARB/EXT extensions actually had different enum values
> than core GL 3.2 for the same things.
> 
> I've looked over all of this with some care and it looks right. Will need a bunch
> of changes to support OES_geometry_shader, but that's for another change.

I hope to get some time to rebase my old oes_geometry_shader patches, this week.

Thanks again for the review, Ilia and Kenneth.

BR,
Marta
> This one is
> 
> Reviewed-by: Ilia Mirkin <imirkin at alum.mit.edu>
> 
> On Wed, Nov 25, 2015 at 6:16 AM, Marta Lofstedt
> <marta.lofstedt at linux.intel.com> wrote:
> > From: Marta Lofstedt <marta.lofstedt at intel.com>
> >
> > No drivers currently implement ARB_geometry_shader4, nor are there any
> > plans to implement it.  We only support the version of geometry
> > shaders that was incorporated into OpenGL 3.2 / GLSL 1.50.
> >
> > Signed-off-by: Marta Lofstedt <marta.lofstedt at linux.intel.com>
> > ---
> >  src/mapi/glapi/gen/ARB_geometry_shader4.xml | 57 -------------------------
> ----
> >  src/mapi/glapi/gen/Makefile.am              |  1 -
> >  src/mapi/glapi/gen/gl_API.xml               |  2 +-
> >  src/mesa/main/api_validate.c                |  2 +-
> >  src/mesa/main/config.h                      |  2 +-
> >  src/mesa/main/context.h                     |  3 +-
> >  src/mesa/main/dlist.c                       | 55 ----------------------------
> >  src/mesa/main/get.c                         |  7 ----
> >  src/mesa/main/get_hash_params.py            | 12 ++----
> >  src/mesa/main/mtypes.h                      |  3 +-
> >  src/mesa/main/tests/enum_strings.cpp        |  6 ---
> >  11 files changed, 9 insertions(+), 141 deletions(-)  delete mode
> > 100644 src/mapi/glapi/gen/ARB_geometry_shader4.xml
> >
> > diff --git a/src/mapi/glapi/gen/ARB_geometry_shader4.xml
> > b/src/mapi/glapi/gen/ARB_geometry_shader4.xml
> > deleted file mode 100644
> > index 280e7a0..0000000
> > --- a/src/mapi/glapi/gen/ARB_geometry_shader4.xml
> > +++ /dev/null
> > @@ -1,57 +0,0 @@
> > -<?xml version="1.0"?>
> > -<!DOCTYPE OpenGLAPI SYSTEM "gl_API.dtd">
> > -
> > -<!-- Note: no GLX protocol info yet. -->
> > -
> > -<OpenGLAPI>
> > -
> > -
> > -<category name="GL_ARB_geometry_shader4" number="47">
> > -    <enum name="GEOMETRY_SHADER_ARB"              value="0x8DD9"/>
> > -    <enum name="GEOMETRY_VERTICES_OUT_ARB"
> value="0x8DDA"/>
> > -    <enum name="GEOMETRY_INPUT_TYPE_ARB"          value="0x8DDB"/>
> > -    <enum name="GEOMETRY_OUTPUT_TYPE_ARB"         value="0x8DDC"/>
> > -    <enum name="MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB"
> value="0x8C29"/>
> > -    <enum name="MAX_GEOMETRY_VARYING_COMPONENTS_ARB"
> value="0x8DDD"/>
> > -    <enum name="MAX_VERTEX_VARYING_COMPONENTS_ARB"
> value="0x8DDE"/>
> > -    <enum name="MAX_VARYING_COMPONENTS"
> value="0x8B4B"/>
> > -    <enum name="MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB"
> value="0x8DDF"/>
> > -    <enum name="MAX_GEOMETRY_OUTPUT_VERTICES_ARB"
> value="0x8DE0"/>
> > -    <enum
> name="MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB"
> value="0x8DE1"/>
> > -    <enum name="LINES_ADJACENCY_ARB"          value="0xA"/>
> > -    <enum name="LINE_STRIP_ADJACENCY_ARB"     value="0xB"/>
> > -    <enum name="TRIANGLES_ADJACENCY_ARB"      value="0xC"/>
> > -    <enum name="TRIANGLE_STRIP_ADJACENCY_ARB" value="0xD"/>
> > -    <enum name="FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB"
> value="0x8DA8"/>
> > -    <enum name="FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB"
> value="0x8DA9"/>
> > -    <enum name="FRAMEBUFFER_ATTACHMENT_LAYERED_ARB"
> value="0x8DA7"/>
> > -    <enum name="FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER"
> value="0x8CD4"/>
> > -    <enum name="PROGRAM_POINT_SIZE_ARB" value="0x8642"/>
> > -    <function name="ProgramParameteriARB"  alias="ProgramParameteri">
> > -        <param name="program" type="GLuint"/>
> > -        <param name="pname" type="GLenum"/>
> > -        <param name="value" type="GLint"/>
> > -    </function>
> > -    <function name="FramebufferTextureARB"
> alias="FramebufferTexture">
> > -        <param name="target" type="GLenum"/>
> > -        <param name="attachment" type="GLenum"/>
> > -        <param name="texture" type="GLuint"/>
> > -        <param name="level" type="GLint"/>
> > -    </function>
> > -    <function name="FramebufferTextureLayerARB"
> alias="FramebufferTextureLayer">
> > -        <param name="target" type="GLenum"/>
> > -        <param name="attachment" type="GLenum"/>
> > -        <param name="texture" type="GLuint"/>
> > -        <param name="level" type="GLint"/>
> > -        <param name="layer" type="GLint"/>
> > -    </function>
> > -    <function name="FramebufferTextureFaceARB" exec="skip">
> > -        <param name="target" type="GLenum"/>
> > -        <param name="attachment" type="GLenum"/>
> > -        <param name="texture" type="GLuint"/>
> > -        <param name="level" type="GLint"/>
> > -        <param name="face" type="GLenum"/>
> > -    </function>
> > -</category>
> > -
> > -</OpenGLAPI>
> > diff --git a/src/mapi/glapi/gen/Makefile.am
> > b/src/mapi/glapi/gen/Makefile.am index a5a26a6..40b0e65 100644
> > --- a/src/mapi/glapi/gen/Makefile.am
> > +++ b/src/mapi/glapi/gen/Makefile.am
> > @@ -133,7 +133,6 @@ API_XML = \
> >         ARB_ES3_compatibility.xml \
> >         ARB_framebuffer_no_attachments.xml \
> >         ARB_framebuffer_object.xml \
> > -       ARB_geometry_shader4.xml \
> >         ARB_get_program_binary.xml \
> >         ARB_get_texture_sub_image.xml \
> >         ARB_gpu_shader_fp64.xml \
> > diff --git a/src/mapi/glapi/gen/gl_API.xml
> > b/src/mapi/glapi/gen/gl_API.xml index ec83cd4..6243bdd 100644
> > --- a/src/mapi/glapi/gen/gl_API.xml
> > +++ b/src/mapi/glapi/gen/gl_API.xml
> > @@ -7975,7 +7975,7 @@
> >
> >  <!-- 46. GL_ARB_framebuffer_sRGB -->
> >
> > -<xi:include href="ARB_geometry_shader4.xml"
> > xmlns:xi="http://www.w3.org/2001/XInclude"/>
> > +<!-- 47. GL_ARB_geometry_shader4. There are no intentions to
> > +implement this extension -->
> >
> >  <!-- 48. GL_ARB_half_float_vertex -->
> >
> > diff --git a/src/mesa/main/api_validate.c
> > b/src/mesa/main/api_validate.c index a490189..cbfb6b5 100644
> > --- a/src/mesa/main/api_validate.c
> > +++ b/src/mesa/main/api_validate.c
> > @@ -170,7 +170,7 @@ _mesa_valid_prim_mode(struct gl_context *ctx,
> GLenum mode, const char *name)
> >        return GL_FALSE;
> >     }
> >
> > -   /* From the ARB_geometry_shader4 spec:
> > +   /* From the OpenGL 4.5 specification, section 11.3.1:
> >      *
> >      * The error INVALID_OPERATION is generated if Begin, or any command
> that
> >      * implicitly calls Begin, is called when a geometry shader is active and:
> > diff --git a/src/mesa/main/config.h b/src/mesa/main/config.h index
> > f29de5f..2d53e2f 100644
> > --- a/src/mesa/main/config.h
> > +++ b/src/mesa/main/config.h
> > @@ -246,7 +246,7 @@
> >  #define MAX_FEEDBACK_BUFFERS 4
> >  #define MAX_FEEDBACK_ATTRIBS 32
> >
> > -/** For GL_ARB_geometry_shader4 */
> > +/** For geometry shader */
> >  /*@{*/
> >  #define MAX_GEOMETRY_UNIFORM_COMPONENTS              512
> >  #define MAX_GEOMETRY_OUTPUT_VERTICES                 256
> > diff --git a/src/mesa/main/context.h b/src/mesa/main/context.h index
> > 4798b1f..8b64f45 100644
> > --- a/src/mesa/main/context.h
> > +++ b/src/mesa/main/context.h
> > @@ -330,8 +330,7 @@ _mesa_is_gles31(const struct gl_context *ctx)
> > static inline bool  _mesa_has_geometry_shaders(const struct gl_context
> > *ctx)  {
> > -   return _mesa_is_desktop_gl(ctx) &&
> > -      (ctx->Version >= 32 || ctx->Extensions.ARB_geometry_shader4);
> > +   return _mesa_is_desktop_gl(ctx) && ctx->Version >= 32;
> >  }
> >
> >
> > diff --git a/src/mesa/main/dlist.c b/src/mesa/main/dlist.c index
> > 2b65b2e..ba2e670 100644
> > --- a/src/mesa/main/dlist.c
> > +++ b/src/mesa/main/dlist.c
> > @@ -457,11 +457,6 @@ typedef enum
> >     OPCODE_SAMPLER_PARAMETERIIV,
> >     OPCODE_SAMPLER_PARAMETERUIV,
> >
> > -   /* GL_ARB_geometry_shader4 */
> > -   OPCODE_PROGRAM_PARAMETERI,
> > -   OPCODE_FRAMEBUFFER_TEXTURE,
> > -   OPCODE_FRAMEBUFFER_TEXTURE_FACE,
> > -
> >     /* GL_ARB_sync */
> >     OPCODE_WAIT_SYNC,
> >
> > @@ -7554,44 +7549,6 @@ save_SamplerParameterIuiv(GLuint sampler,
> GLenum pname, const GLuint *params)
> >     }
> >  }
> >
> > -/* GL_ARB_geometry_shader4 */
> > -static void GLAPIENTRY
> > -save_ProgramParameteri(GLuint program, GLenum pname, GLint value) -{
> > -   Node *n;
> > -   GET_CURRENT_CONTEXT(ctx);
> > -   ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
> > -   n = alloc_instruction(ctx, OPCODE_PROGRAM_PARAMETERI, 3);
> > -   if (n) {
> > -      n[1].ui = program;
> > -      n[2].e = pname;
> > -      n[3].i = value;
> > -   }
> > -   if (ctx->ExecuteFlag) {
> > -      CALL_ProgramParameteri(ctx->Exec, (program, pname, value));
> > -   }
> > -}
> > -
> > -static void GLAPIENTRY
> > -save_FramebufferTexture(GLenum target, GLenum attachment,
> > -                        GLuint texture, GLint level)
> > -{
> > -   Node *n;
> > -   GET_CURRENT_CONTEXT(ctx);
> > -   ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
> > -   n = alloc_instruction(ctx, OPCODE_FRAMEBUFFER_TEXTURE, 4);
> > -   if (n) {
> > -      n[1].e = target;
> > -      n[2].e = attachment;
> > -      n[3].ui = texture;
> > -      n[4].i = level;
> > -   }
> > -   if (ctx->ExecuteFlag) {
> > -      CALL_FramebufferTexture(ctx->Exec, (target, attachment, texture,
> level));
> > -   }
> > -}
> > -
> > -
> >  static void GLAPIENTRY
> >  save_WaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout)  { @@
> > -8841,14 +8798,6 @@ execute_list(struct gl_context *ctx, GLuint list)
> >              }
> >              break;
> >
> > -         /* GL_ARB_geometry_shader4 */
> > -         case OPCODE_PROGRAM_PARAMETERI:
> > -            CALL_ProgramParameteri(ctx->Exec, (n[1].ui, n[2].e, n[3].i));
> > -            break;
> > -         case OPCODE_FRAMEBUFFER_TEXTURE:
> > -            CALL_FramebufferTexture(ctx->Exec, (n[1].e, n[2].e,
> > -                                                   n[3].ui, n[4].i));
> > -            break;
> >           /* GL_ARB_sync */
> >           case OPCODE_WAIT_SYNC:
> >              {
> > @@ -9614,10 +9563,6 @@ _mesa_initialize_save_table(const struct
> gl_context *ctx)
> >     SET_BlendEquationiARB(table, save_BlendEquationi);
> >     SET_BlendEquationSeparateiARB(table, save_BlendEquationSeparatei);
> >
> > -   /* OpenGL 3.2 */
> > -   SET_ProgramParameteri(table, save_ProgramParameteri);
> > -   SET_FramebufferTexture(table, save_FramebufferTexture);
> > -
> >     /* GL_NV_conditional_render */
> >     SET_BeginConditionalRender(table, save_BeginConditionalRender);
> >     SET_EndConditionalRender(table, save_EndConditionalRender); diff
> > --git a/src/mesa/main/get.c b/src/mesa/main/get.c index
> > 539c411..c6a2e5b 100644
> > --- a/src/mesa/main/get.c
> > +++ b/src/mesa/main/get.c
> > @@ -398,7 +398,6 @@ EXTRA_EXT(EXT_pixel_buffer_object);
> >  EXTRA_EXT(ARB_vertex_program);
> >  EXTRA_EXT2(NV_point_sprite, ARB_point_sprite);
> > EXTRA_EXT2(ARB_vertex_program, ARB_fragment_program);
> > -EXTRA_EXT(ARB_geometry_shader4);
> EXTRA_EXT(ARB_color_buffer_float);
> >  EXTRA_EXT(EXT_framebuffer_sRGB);
> >  EXTRA_EXT(OES_EGL_image_external);
> > @@ -455,12 +454,6 @@ static const int extra_gl32_es3[] = {
> >      EXTRA_END,
> >  };
> >
> > -static const int extra_gl32_ARB_geometry_shader4[] = {
> > -    EXTRA_VERSION_32,
> > -    EXT(ARB_geometry_shader4),
> > -    EXTRA_END
> > -};
> > -
> >  static const int extra_gl40_ARB_sample_shading[] = {
> >     EXTRA_VERSION_40,
> >     EXT(ARB_sample_shading),
> > diff --git a/src/mesa/main/get_hash_params.py
> > b/src/mesa/main/get_hash_params.py
> > index 9b22b91..0c58b30 100644
> > --- a/src/mesa/main/get_hash_params.py
> > +++ b/src/mesa/main/get_hash_params.py
> > @@ -765,14 +765,6 @@ descriptor=[
> >    [ "MAX_TRANSFORM_FEEDBACK_BUFFERS",
> "CONTEXT_INT(Const.MaxTransformFeedbackBuffers),
> extra_ARB_transform_feedback3" ],
> >    [ "MAX_VERTEX_STREAMS", "CONTEXT_INT(Const.MaxVertexStreams),
> > extra_ARB_transform_feedback3_ARB_gpu_shader5" ],
> >
> > -# GL_ARB_geometry_shader4
> > -  [ "MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB",
> >
> "CONTEXT_INT(Const.Program[MESA_SHADER_GEOMETRY].MaxTextureIma
> geUnits)
> > , extra_gl32_ARB_geometry_shader4" ],
> > -  [ "MAX_GEOMETRY_OUTPUT_VERTICES_ARB",
> > "CONTEXT_INT(Const.MaxGeometryOutputVertices),
> > extra_gl32_ARB_geometry_shader4" ],
> > -  [ "MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB",
> > "CONTEXT_INT(Const.MaxGeometryTotalOutputComponents),
> > extra_gl32_ARB_geometry_shader4" ],
> > -  [ "MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB",
> >
> "CONTEXT_INT(Const.Program[MESA_SHADER_GEOMETRY].MaxUniformCo
> mponents)
> > , extra_gl32_ARB_geometry_shader4" ],
> > -  [ "MAX_GEOMETRY_VARYING_COMPONENTS_ARB",
> >
> "CONTEXT_INT(Const.Program[MESA_SHADER_GEOMETRY].MaxOutputCo
> mponents),
> > extra_ARB_geometry_shader4" ],
> > -  [ "MAX_VERTEX_VARYING_COMPONENTS_ARB",
> >
> "CONTEXT_INT(Const.Program[MESA_SHADER_VERTEX].MaxOutputCompo
> nents),
> > extra_ARB_geometry_shader4" ],
> > -
> >  # GL_ARB_color_buffer_float
> >    [ "RGBA_FLOAT_MODE_ARB", "BUFFER_FIELD(Visual.floatMode,
> > TYPE_BOOLEAN), extra_core_ARB_color_buffer_float_and_new_buffers"
> ],
> >
> > @@ -800,6 +792,10 @@ descriptor=[
> >    [ "CONTEXT_PROFILE_MASK", "CONTEXT_INT(Const.ProfileMask),
> extra_version_32" ],
> >    [ "MAX_GEOMETRY_INPUT_COMPONENTS",
> "CONTEXT_INT(Const.Program[MESA_SHADER_GEOMETRY].MaxInputComp
> onents), extra_version_32" ],
> >    [ "MAX_GEOMETRY_OUTPUT_COMPONENTS",
> >
> "CONTEXT_INT(Const.Program[MESA_SHADER_GEOMETRY].MaxOutputCo
> mponents),
> > extra_version_32" ],
> > +  [ "MAX_GEOMETRY_TEXTURE_IMAGE_UNITS",
> > +
> "CONTEXT_INT(Const.Program[MESA_SHADER_GEOMETRY].MaxTextureIma
> geUnit
> > + s), extra_version_32" ],  [ "MAX_GEOMETRY_OUTPUT_VERTICES",
> > + "CONTEXT_INT(Const.MaxGeometryOutputVertices), extra_version_32"
> ],
> > + [ "MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS",
> > + "CONTEXT_INT(Const.MaxGeometryTotalOutputComponents),
> > + extra_version_32" ],  [ "MAX_GEOMETRY_UNIFORM_COMPONENTS",
> > +
> "CONTEXT_INT(Const.Program[MESA_SHADER_GEOMETRY].MaxUniformCo
> mponent
> > + s), extra_version_32" ],
> >
> >  # GL_ARB_robustness
> >    [ "RESET_NOTIFICATION_STRATEGY_ARB",
> > "CONTEXT_ENUM(Const.ResetStrategy), NO_EXTRA" ], diff --git
> > a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index
> > d425571..46de8f8 100644
> > --- a/src/mesa/main/mtypes.h
> > +++ b/src/mesa/main/mtypes.h
> > @@ -3397,7 +3397,7 @@ struct gl_constants
> >      */
> >     GLuint MaxUserAssignableUniformLocations;
> >
> > -   /** GL_ARB_geometry_shader4 */
> > +   /** geometry shader */
> >     GLuint MaxGeometryOutputVertices;
> >     GLuint MaxGeometryTotalOutputComponents;
> >
> > @@ -3682,7 +3682,6 @@ struct gl_extensions
> >     GLboolean ARB_enhanced_layouts;
> >     GLboolean ARB_explicit_attrib_location;
> >     GLboolean ARB_explicit_uniform_location;
> > -   GLboolean ARB_geometry_shader4;
> >     GLboolean ARB_gpu_shader5;
> >     GLboolean ARB_gpu_shader_fp64;
> >     GLboolean ARB_half_float_vertex;
> > diff --git a/src/mesa/main/tests/enum_strings.cpp
> > b/src/mesa/main/tests/enum_strings.cpp
> > index 96b2246..04e9896 100644
> > --- a/src/mesa/main/tests/enum_strings.cpp
> > +++ b/src/mesa/main/tests/enum_strings.cpp
> > @@ -1689,7 +1689,6 @@ const struct enum_info everything[] = {
> >     { 0x8D9F, "GL_INT_2_10_10_10_REV" },
> >     { 0x8DA7, "GL_FRAMEBUFFER_ATTACHMENT_LAYERED" },
> >     { 0x8DA8, "GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS" },
> > -   { 0x8DA9, "GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB" },
> >     { 0x8DAD, "GL_FLOAT_32_UNSIGNED_INT_24_8_REV" },
> >     { 0x8DB9, "GL_FRAMEBUFFER_SRGB" },
> >     { 0x8DBA, "GL_FRAMEBUFFER_SRGB_CAPABLE_EXT" }, @@ -1723,11
> +1722,6
> > @@ const struct enum_info everything[] = {
> >     { 0x8DD7, "GL_UNSIGNED_INT_SAMPLER_2D_ARRAY" },
> >     { 0x8DD8, "GL_UNSIGNED_INT_SAMPLER_BUFFER" },
> >     { 0x8DD9, "GL_GEOMETRY_SHADER" },
> > -   { 0x8DDA, "GL_GEOMETRY_VERTICES_OUT_ARB" },
> > -   { 0x8DDB, "GL_GEOMETRY_INPUT_TYPE_ARB" },
> > -   { 0x8DDC, "GL_GEOMETRY_OUTPUT_TYPE_ARB" },
> > -   { 0x8DDD, "GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB" },
> > -   { 0x8DDE, "GL_MAX_VERTEX_VARYING_COMPONENTS_ARB" },
> >     { 0x8DDF, "GL_MAX_GEOMETRY_UNIFORM_COMPONENTS" },
> >     { 0x8DE0, "GL_MAX_GEOMETRY_OUTPUT_VERTICES" },
> >     { 0x8DE1, "GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS" },
> > --
> > 2.5.0
> >
> > _______________________________________________
> > mesa-dev mailing list
> > mesa-dev at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/mesa-dev
> _______________________________________________
> 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