On 11/25/2015 03:16 AM, Marta Lofstedt wrote: > From: Marta Lofstedt <marta.lofst...@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.lofst...@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)); > - } > -}
You can't remove this function. It's still used for GL_PROGRAM_BINARY_RETRIEVABLE_HINT. See https://www.opengl.org/sdk/docs/man/html/glProgramParameter.xhtml. We support GL_ARB_get_program_binary on compatibility profile. We should probably have a compatibility profile piglit test for this. :) > - > -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].MaxTextureImageUnits), > 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].MaxUniformComponents), > extra_gl32_ARB_geometry_shader4" ], > - [ "MAX_GEOMETRY_VARYING_COMPONENTS_ARB", > "CONTEXT_INT(Const.Program[MESA_SHADER_GEOMETRY].MaxOutputComponents), > extra_ARB_geometry_shader4" ], > - [ "MAX_VERTEX_VARYING_COMPONENTS_ARB", > "CONTEXT_INT(Const.Program[MESA_SHADER_VERTEX].MaxOutputComponents), > 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].MaxInputComponents), > extra_version_32" ], > [ "MAX_GEOMETRY_OUTPUT_COMPONENTS", > "CONTEXT_INT(Const.Program[MESA_SHADER_GEOMETRY].MaxOutputComponents), > extra_version_32" ], > + [ "MAX_GEOMETRY_TEXTURE_IMAGE_UNITS", > "CONTEXT_INT(Const.Program[MESA_SHADER_GEOMETRY].MaxTextureImageUnits), > 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].MaxUniformComponents), > 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" }, > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev