Reviewed-by: Marta Lofstedt <[email protected]>
> -----Original Message----- > From: Ilia Mirkin [mailto:[email protected]] On Behalf Of Ilia Mirkin > Sent: Friday, January 22, 2016 9:24 PM > To: [email protected] > Cc: Lofstedt, Marta; Ilia Mirkin > Subject: [PATCH v2] glsl: add GL_OES_geometry_point_size and > conditionalize gl_PointSize > > For now this will be enabled in tandem with GL_OES_geometry_shader. > Should a driver come along that wants to separate them out, another enable > can be added. > > Also adds the missed GL_OES_geometry_shader define in glcpp. > > Signed-off-by: Ilia Mirkin <[email protected]> > --- > > v1 -> v2: add glcpp defines for both exts > > src/glsl/builtin_variables.cpp | 7 ++++++- > src/glsl/glcpp/glcpp-parse.y | 7 +++++++ > src/glsl/glsl_parser_extras.cpp | 1 + > src/glsl/glsl_parser_extras.h | 2 ++ > src/mesa/main/extensions_table.h | 1 + > 5 files changed, 17 insertions(+), 1 deletion(-) > > diff --git a/src/glsl/builtin_variables.cpp b/src/glsl/builtin_variables.cpp > index > ccc04c0..25d92cc 100644 > --- a/src/glsl/builtin_variables.cpp > +++ b/src/glsl/builtin_variables.cpp > @@ -1201,7 +1201,12 @@ builtin_variable_generator::generate_varyings() > /* gl_Position and gl_PointSize are not visible from fragment shaders. */ > if (state->stage != MESA_SHADER_FRAGMENT) { > add_varying(VARYING_SLOT_POS, vec4_t, "gl_Position"); > - add_varying(VARYING_SLOT_PSIZ, float_t, "gl_PointSize"); > + if (!state->es_shader || > + state->stage == MESA_SHADER_VERTEX || > + (state->stage == MESA_SHADER_GEOMETRY && > + state->OES_geometry_point_size_enable)) { > + add_varying(VARYING_SLOT_PSIZ, float_t, "gl_PointSize"); > + } > } > > if (state->is_version(130, 0)) { > diff --git a/src/glsl/glcpp/glcpp-parse.y b/src/glsl/glcpp/glcpp-parse.y index > ef1a657..43a1aa9 100644 > --- a/src/glsl/glcpp/glcpp-parse.y > +++ b/src/glsl/glcpp/glcpp-parse.y > @@ -2386,6 +2386,13 @@ > _glcpp_parser_handle_version_declaration(glcpp_parser_t *parser, > intmax_t versio > add_builtin_define(parser, > "GL_OES_texture_storage_multisample_2d_array", 1); > if (extensions->ARB_blend_func_extended) > add_builtin_define(parser, "GL_EXT_blend_func_extended", 1); > + > + if (version >= 310) { > + if (extensions->OES_geometry_shader) { > + add_builtin_define(parser, "GL_OES_geometry_point_size", > 1); > + add_builtin_define(parser, "GL_OES_geometry_shader", 1); > + } > + } > } > } else { > add_builtin_define(parser, "GL_ARB_draw_buffers", 1); diff > --git a/src/glsl/glsl_parser_extras.cpp b/src/glsl/glsl_parser_extras.cpp > index > 6038954..7dad466 100644 > --- a/src/glsl/glsl_parser_extras.cpp > +++ b/src/glsl/glsl_parser_extras.cpp > @@ -598,6 +598,7 @@ static const _mesa_glsl_extension > _mesa_glsl_supported_extensions[] = { > /* OES extensions go here, sorted alphabetically. > */ > EXT(OES_EGL_image_external, false, true, > OES_EGL_image_external), > + EXT(OES_geometry_point_size, false, true, > OES_geometry_shader), > EXT(OES_geometry_shader, false, true, > OES_geometry_shader), > EXT(OES_standard_derivatives, false, true, > OES_standard_derivatives), > EXT(OES_texture_3D, false, true, dummy_true), > diff --git a/src/glsl/glsl_parser_extras.h b/src/glsl/glsl_parser_extras.h > index > 3f88e01..a905b56 100644 > --- a/src/glsl/glsl_parser_extras.h > +++ b/src/glsl/glsl_parser_extras.h > @@ -591,6 +591,8 @@ struct _mesa_glsl_parse_state { > */ > bool OES_EGL_image_external_enable; > bool OES_EGL_image_external_warn; > + bool OES_geometry_point_size_enable; > + bool OES_geometry_point_size_warn; > bool OES_geometry_shader_enable; > bool OES_geometry_shader_warn; > bool OES_standard_derivatives_enable; diff --git > a/src/mesa/main/extensions_table.h b/src/mesa/main/extensions_table.h > index 7a4b8a2..7fb4de2 100644 > --- a/src/mesa/main/extensions_table.h > +++ b/src/mesa/main/extensions_table.h > @@ -312,6 +312,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_point_size , OES_geometry_shader > , > x , x , x , 31, 2015) > 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) > -- > 2.4.10 _______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
