Patch enables ES2 extension that utilizes existing ES3 functionality. Changes make all the subtests to run and pass in WebGL conformance test 'webgl-draw-buffers' when running Chrome on OpenGL ES.
v2: remove unused boolean (Ilia Mirkin) Signed-off-by: Tapani Pälli <tapani.pa...@intel.com> --- src/glsl/glcpp/glcpp-parse.y | 1 + src/glsl/glsl_parser_extras.cpp | 1 + src/glsl/glsl_parser_extras.h | 2 ++ src/mapi/glapi/gen/es_EXT.xml | 9 +++++++++ src/mesa/main/extensions.c | 1 + 5 files changed, 14 insertions(+) diff --git a/src/glsl/glcpp/glcpp-parse.y b/src/glsl/glcpp/glcpp-parse.y index f1119eb..3dd2ebc 100644 --- a/src/glsl/glcpp/glcpp-parse.y +++ b/src/glsl/glcpp/glcpp-parse.y @@ -2374,6 +2374,7 @@ _glcpp_parser_handle_version_declaration(glcpp_parser_t *parser, intmax_t versio if (parser->is_gles) { add_builtin_define(parser, "GL_ES", 1); add_builtin_define(parser, "GL_EXT_separate_shader_objects", 1); + add_builtin_define(parser, "GL_EXT_draw_buffers", 1); if (extensions != NULL) { if (extensions->OES_EGL_image_external) diff --git a/src/glsl/glsl_parser_extras.cpp b/src/glsl/glsl_parser_extras.cpp index 27e3301..2d49c3e 100644 --- a/src/glsl/glsl_parser_extras.cpp +++ b/src/glsl/glsl_parser_extras.cpp @@ -556,6 +556,7 @@ static const _mesa_glsl_extension _mesa_glsl_supported_extensions[] = { EXT(AMD_shader_trinary_minmax, true, false, dummy_true), EXT(AMD_vertex_shader_layer, true, false, AMD_vertex_shader_layer), EXT(AMD_vertex_shader_viewport_index, true, false, AMD_vertex_shader_viewport_index), + EXT(EXT_draw_buffers, false, true, dummy_true), EXT(EXT_separate_shader_objects, false, true, dummy_true), EXT(EXT_shader_integer_mix, true, true, EXT_shader_integer_mix), EXT(EXT_texture_array, true, false, EXT_texture_array), diff --git a/src/glsl/glsl_parser_extras.h b/src/glsl/glsl_parser_extras.h index c14d74c..7a13875 100644 --- a/src/glsl/glsl_parser_extras.h +++ b/src/glsl/glsl_parser_extras.h @@ -470,6 +470,8 @@ struct _mesa_glsl_parse_state { bool AMD_vertex_shader_layer_warn; bool AMD_vertex_shader_viewport_index_enable; bool AMD_vertex_shader_viewport_index_warn; + bool EXT_draw_buffers_enable; + bool EXT_draw_buffers_warn; bool EXT_separate_shader_objects_enable; bool EXT_separate_shader_objects_warn; bool EXT_shader_integer_mix_enable; diff --git a/src/mapi/glapi/gen/es_EXT.xml b/src/mapi/glapi/gen/es_EXT.xml index e2dc390..3a2adeb 100644 --- a/src/mapi/glapi/gen/es_EXT.xml +++ b/src/mapi/glapi/gen/es_EXT.xml @@ -837,4 +837,13 @@ </function> </category> +<!-- 151. GL_EXT_draw_buffers --> +<category name="GL_EXT_draw_buffers" number="151"> + <function name="DrawBuffersEXT" alias="DrawBuffers" + static_dispatch="false" es2="2.0"> + <param name="n" type="GLsizei" counter="true"/> + <param name="bufs" type="const GLenum *" count="n"/> + </function> +</category> + </OpenGLAPI> diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c index 0df04c2..3b206bf 100644 --- a/src/mesa/main/extensions.c +++ b/src/mesa/main/extensions.c @@ -212,6 +212,7 @@ static const struct extension extension_table[] = { { "GL_EXT_compiled_vertex_array", o(dummy_true), GLL, 1996 }, { "GL_EXT_copy_texture", o(dummy_true), GLL, 1995 }, { "GL_EXT_depth_bounds_test", o(EXT_depth_bounds_test), GL, 2002 }, + { "GL_EXT_draw_buffers", o(dummy_true), ES2, 2012 }, { "GL_EXT_draw_buffers2", o(EXT_draw_buffers2), GL, 2006 }, { "GL_EXT_draw_instanced", o(ARB_draw_instanced), GL, 2006 }, { "GL_EXT_draw_range_elements", o(dummy_true), GLL, 1997 }, -- 1.9.3 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev