Series is Reviewed-by: Ian Romanick <ian.d.roman...@intel.com>
On 08/28/2016 11:32 AM, Ilia Mirkin wrote: > Signed-off-by: Ilia Mirkin <imir...@alum.mit.edu> > --- > src/compiler/glsl/glsl_parser_extras.cpp | 2 ++ > src/compiler/glsl/glsl_parser_extras.h | 4 +++ > src/mapi/glapi/gen/es_EXT.xml | 49 > ++++++++++++++++++++++++++++++++ > src/mapi/glapi/gen/gl_genexec.py | 1 + > src/mesa/Makefile.sources | 2 ++ > src/mesa/main/bbox.c | 44 ++++++++++++++++++++++++++++ > src/mesa/main/bbox.h | 42 +++++++++++++++++++++++++++ > src/mesa/main/context.c | 2 ++ > src/mesa/main/extensions_table.h | 2 ++ > src/mesa/main/mtypes.h | 1 + > src/mesa/main/tests/dispatch_sanity.cpp | 3 ++ > src/mesa/main/version.c | 2 +- > 12 files changed, 153 insertions(+), 1 deletion(-) > create mode 100644 src/mesa/main/bbox.c > create mode 100644 src/mesa/main/bbox.h > > diff --git a/src/compiler/glsl/glsl_parser_extras.cpp > b/src/compiler/glsl/glsl_parser_extras.cpp > index f393278..2c7e015 100644 > --- a/src/compiler/glsl/glsl_parser_extras.cpp > +++ b/src/compiler/glsl/glsl_parser_extras.cpp > @@ -631,6 +631,7 @@ static const _mesa_glsl_extension > _mesa_glsl_supported_extensions[] = { > EXT(OES_geometry_point_size), > EXT(OES_geometry_shader), > EXT(OES_gpu_shader5), > + EXT(OES_primitive_bounding_box), > EXT(OES_sample_variables), > EXT(OES_shader_image_atomic), > EXT(OES_shader_io_blocks), > @@ -656,6 +657,7 @@ static const _mesa_glsl_extension > _mesa_glsl_supported_extensions[] = { > EXT(EXT_geometry_point_size), > EXT(EXT_geometry_shader), > EXT(EXT_gpu_shader5), > + EXT(EXT_primitive_bounding_box), > EXT(EXT_separate_shader_objects), > EXT(EXT_shader_framebuffer_fetch), > EXT(EXT_shader_integer_mix), > diff --git a/src/compiler/glsl/glsl_parser_extras.h > b/src/compiler/glsl/glsl_parser_extras.h > index 6d408ef..e146fe1 100644 > --- a/src/compiler/glsl/glsl_parser_extras.h > +++ b/src/compiler/glsl/glsl_parser_extras.h > @@ -672,6 +672,8 @@ struct _mesa_glsl_parse_state { > bool OES_geometry_shader_warn; > bool OES_gpu_shader5_enable; > bool OES_gpu_shader5_warn; > + bool OES_primitive_bounding_box_enable; > + bool OES_primitive_bounding_box_warn; > bool OES_sample_variables_enable; > bool OES_sample_variables_warn; > bool OES_shader_image_atomic_enable; > @@ -719,6 +721,8 @@ struct _mesa_glsl_parse_state { > bool EXT_geometry_shader_warn; > bool EXT_gpu_shader5_enable; > bool EXT_gpu_shader5_warn; > + bool EXT_primitive_bounding_box_enable; > + bool EXT_primitive_bounding_box_warn; > bool EXT_separate_shader_objects_enable; > bool EXT_separate_shader_objects_warn; > bool EXT_shader_framebuffer_fetch_enable; > diff --git a/src/mapi/glapi/gen/es_EXT.xml b/src/mapi/glapi/gen/es_EXT.xml > index 6f2d643..b9fbec4 100644 > --- a/src/mapi/glapi/gen/es_EXT.xml > +++ b/src/mapi/glapi/gen/es_EXT.xml > @@ -939,6 +939,21 @@ > > </category> > > +<category name="GL_EXT_primitive_bounding_box" number="187"> > + > + <function name="PrimitiveBoundingBoxEXT" es2="3.1" > alias="PrimitiveBoundingBox"> > + <param name="minX" type="GLfloat"/> > + <param name="minY" type="GLfloat"/> > + <param name="minZ" type="GLfloat"/> > + <param name="minW" type="GLfloat"/> > + <param name="maxX" type="GLfloat"/> > + <param name="maxY" type="GLfloat"/> > + <param name="maxZ" type="GLfloat"/> > + <param name="maxW" type="GLfloat"/> > + </function> > + > +</category> > + > <xi:include href="KHR_robustness_es.xml" > xmlns:xi="http://www.w3.org/2001/XInclude"/> > > <category name="GL_EXT_base_instance" number="203"> > @@ -1094,6 +1109,21 @@ > > </category> > > +<category name="GL_EXT_primitive_bounding_box" number="212"> > + > + <function name="PrimitiveBoundingBoxOES" es2="3.1" > alias="PrimitiveBoundingBox"> > + <param name="minX" type="GLfloat"/> > + <param name="minY" type="GLfloat"/> > + <param name="minZ" type="GLfloat"/> > + <param name="minW" type="GLfloat"/> > + <param name="maxX" type="GLfloat"/> > + <param name="maxY" type="GLfloat"/> > + <param name="maxZ" type="GLfloat"/> > + <param name="maxW" type="GLfloat"/> > + </function> > + > +</category> > + > <category name="GL_OES_texture_buffer" number="216"> > > <function name="TexBufferOES" es2="3.1" alias="TexBuffer"> > @@ -1312,4 +1342,23 @@ > > </category> > > +<category name="ES3.2"> > + > + <!-- TODO: Move to GL 4.x when it is added to a GL version --> > + <enum name="PRIMITIVE_BOUNDING_BOX_ARB" count="8" value="0x92BE"> > + <size name="Get" mode="get"/> > + </enum> > + <function name="PrimitiveBoundingBox" es2="3.2" desktop="false"> > + <param name="minX" type="GLfloat"/> > + <param name="minY" type="GLfloat"/> > + <param name="minZ" type="GLfloat"/> > + <param name="minW" type="GLfloat"/> > + <param name="maxX" type="GLfloat"/> > + <param name="maxY" type="GLfloat"/> > + <param name="maxZ" type="GLfloat"/> > + <param name="maxW" type="GLfloat"/> > + </function> > + > +</category> > + > </OpenGLAPI> > diff --git a/src/mapi/glapi/gen/gl_genexec.py > b/src/mapi/glapi/gen/gl_genexec.py > index 85e7990..183e6ff 100644 > --- a/src/mapi/glapi/gen/gl_genexec.py > +++ b/src/mapi/glapi/gen/gl_genexec.py > @@ -56,6 +56,7 @@ header = """/** > #include "main/blit.h" > #include "main/bufferobj.h" > #include "main/arrayobj.h" > +#include "main/bbox.h" > #include "main/buffers.h" > #include "main/clear.h" > #include "main/clip.h" > diff --git a/src/mesa/Makefile.sources b/src/mesa/Makefile.sources > index 3622760..969f711 100644 > --- a/src/mesa/Makefile.sources > +++ b/src/mesa/Makefile.sources > @@ -26,6 +26,8 @@ MAIN_FILES = \ > main/attrib.h \ > main/barrier.c \ > main/barrier.h \ > + main/bbox.c \ > + main/bbox.h \ > main/blend.c \ > main/blend.h \ > main/blit.c \ > diff --git a/src/mesa/main/bbox.c b/src/mesa/main/bbox.c > new file mode 100644 > index 0000000..0ef5705 > --- /dev/null > +++ b/src/mesa/main/bbox.c > @@ -0,0 +1,44 @@ > +/* > + * Mesa 3-D graphics library > + * > + * Copyright (C) 2016 Ilia Mirkin. All Rights Reserved. > + * > + * Permission is hereby granted, free of charge, to any person obtaining a > + * copy of this software and associated documentation files (the "Software"), > + * to deal in the Software without restriction, including without limitation > + * the rights to use, copy, modify, merge, publish, distribute, sublicense, > + * and/or sell copies of the Software, and to permit persons to whom the > + * Software is furnished to do so, subject to the following conditions: > + * > + * The above copyright notice and this permission notice shall be included > + * in all copies or substantial portions of the Software. > + * > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS > + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF > MERCHANTABILITY, > + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL > + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR > + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, > + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR > + * OTHER DEALINGS IN THE SOFTWARE. > + */ > + > + > +/** > + * \file bbox.c > + * glPrimitiveBoundingBox function > + */ > + > +#include "bbox.h" > +#include "context.h" > + > +void GLAPIENTRY > +_mesa_PrimitiveBoundingBox( > + GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, > + GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW) > +{ > +} > + > +void > +_mesa_init_bbox(struct gl_context *ctx) > +{ > +} > diff --git a/src/mesa/main/bbox.h b/src/mesa/main/bbox.h > new file mode 100644 > index 0000000..d00f87e > --- /dev/null > +++ b/src/mesa/main/bbox.h > @@ -0,0 +1,42 @@ > +/* > + * Mesa 3-D graphics library > + * > + * Copyright (C) 1999-2008 Brian Paul All Rights Reserved. > + * Copyright (C) 2009 VMware, Inc. All Rights Reserved. > + * > + * Permission is hereby granted, free of charge, to any person obtaining a > + * copy of this software and associated documentation files (the "Software"), > + * to deal in the Software without restriction, including without limitation > + * the rights to use, copy, modify, merge, publish, distribute, sublicense, > + * and/or sell copies of the Software, and to permit persons to whom the > + * Software is furnished to do so, subject to the following conditions: > + * > + * The above copyright notice and this permission notice shall be included > + * in all copies or substantial portions of the Software. > + * > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS > + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF > MERCHANTABILITY, > + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL > + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR > + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, > + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR > + * OTHER DEALINGS IN THE SOFTWARE. > + */ > + > + > +#ifndef BBOX_H > +#define BBOX_H > + > +#include "glheader.h" > + > +struct gl_context; > + > +extern void GLAPIENTRY > +_mesa_PrimitiveBoundingBox( > + GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, > + GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); > + > +extern void > +_mesa_init_bbox(struct gl_context *ctx); > + > +#endif > diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c > index 8f9bbf1..f550b0c 100644 > --- a/src/mesa/main/context.c > +++ b/src/mesa/main/context.c > @@ -83,6 +83,7 @@ > #include "api_loopback.h" > #include "arrayobj.h" > #include "attrib.h" > +#include "bbox.h" > #include "blend.h" > #include "buffers.h" > #include "bufferobj.h" > @@ -809,6 +810,7 @@ init_attrib_groups(struct gl_context *ctx) > /* Attribute Groups */ > _mesa_init_accum( ctx ); > _mesa_init_attrib( ctx ); > + _mesa_init_bbox( ctx ); > _mesa_init_buffer_objects( ctx ); > _mesa_init_color( ctx ); > _mesa_init_current( ctx ); > diff --git a/src/mesa/main/extensions_table.h > b/src/mesa/main/extensions_table.h > index c25f199..edfc458 100644 > --- a/src/mesa/main/extensions_table.h > +++ b/src/mesa/main/extensions_table.h > @@ -223,6 +223,7 @@ EXT(EXT_pixel_buffer_object , > EXT_pixel_buffer_object > EXT(EXT_point_parameters , EXT_point_parameters > , GLL, x , x , x , 1997) > EXT(EXT_polygon_offset , dummy_true > , GLL, x , x , x , 1995) > EXT(EXT_polygon_offset_clamp , EXT_polygon_offset_clamp > , GLL, GLC, ES1, ES2, 2014) > +EXT(EXT_primitive_bounding_box , OES_primitive_bounding_box > , x , x , x , 31, 2014) > EXT(EXT_provoking_vertex , EXT_provoking_vertex > , GLL, GLC, x , x , 2009) > EXT(EXT_read_format_bgra , dummy_true > , x , x , ES1, ES2, 2009) > EXT(EXT_rescale_normal , dummy_true > , GLL, x , x , x , 1997) > @@ -352,6 +353,7 @@ EXT(OES_mapbuffer , dummy_true > EXT(OES_packed_depth_stencil , dummy_true > , x , x , ES1, ES2, 2007) > EXT(OES_point_size_array , dummy_true > , x , x , ES1, x , 2004) > EXT(OES_point_sprite , ARB_point_sprite > , x , x , ES1, x , 2004) > +EXT(OES_primitive_bounding_box , OES_primitive_bounding_box > , x , x , x , 31, 2014) > EXT(OES_query_matrix , dummy_true > , x , x , ES1, x , 2003) > EXT(OES_read_format , dummy_true > , GLL, GLC, ES1, x , 2003) > EXT(OES_rgb8_rgba8 , dummy_true > , x , x , ES1, ES2, 2005) > diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h > index 4013ca7..5729059 100644 > --- a/src/mesa/main/mtypes.h > +++ b/src/mesa/main/mtypes.h > @@ -3940,6 +3940,7 @@ struct gl_extensions > GLboolean EXT_vertex_array_bgra; > GLboolean EXT_window_rectangles; > GLboolean OES_copy_image; > + GLboolean OES_primitive_bounding_box; > GLboolean OES_sample_variables; > GLboolean OES_standard_derivatives; > GLboolean OES_texture_buffer; > diff --git a/src/mesa/main/tests/dispatch_sanity.cpp > b/src/mesa/main/tests/dispatch_sanity.cpp > index c0db287..42fe61a 100644 > --- a/src/mesa/main/tests/dispatch_sanity.cpp > +++ b/src/mesa/main/tests/dispatch_sanity.cpp > @@ -2607,5 +2607,8 @@ const struct function gles31_functions_possible[] = { > /* GL_OES_tessellation_shader */ > { "glPatchParameteriOES", 31, -1 }, > > + /* GL_OES_primitive_bound_box */ > + { "glPrimitiveBoundingBoxOES", 31, -1 }, > + > { NULL, 0, -1 }, > }; > diff --git a/src/mesa/main/version.c b/src/mesa/main/version.c > index b0b69b9..2aa96d5 100644 > --- a/src/mesa/main/version.c > +++ b/src/mesa/main/version.c > @@ -536,7 +536,7 @@ compute_version_es2(const struct gl_extensions > *extensions, > extensions->ARB_draw_buffers_blend && > extensions->ARB_draw_elements_base_vertex && > extensions->OES_geometry_shader && > - /*extensions->OES_primitive_bounding_box*/ false && > + extensions->OES_primitive_bounding_box && > extensions->OES_sample_variables && > extensions->ARB_tessellation_shader && > extensions->ARB_texture_border_clamp && >
signature.asc
Description: OpenPGP digital signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev