On Mon, Nov 2, 2015 at 7:46 PM, Ian Romanick <i...@freedesktop.org> wrote: > On 11/01/2015 07:29 PM, Ilia Mirkin wrote: >> On Sun, Nov 1, 2015 at 10:24 PM, Ryan Houdek <sonicadvan...@gmail.com> wrote: >>> This has been tested with the piglits in the mailing list and >>> on the Dolphin emulator. >>> --- >>> docs/GL3.txt | 2 +- >>> docs/relnotes/11.1.0.html | 2 + >>> .../glapi/gen/ARB_draw_elements_base_vertex.xml | 6 +- >>> src/mapi/glapi/gen/es_EXT.xml | 88 >>> ++++++++++++++++++++++ >>> src/mesa/main/extensions.c | 2 + >>> src/mesa/vbo/vbo_exec_array.c | 12 ++- >>> 6 files changed, 105 insertions(+), 7 deletions(-) >>> >>> diff --git a/docs/GL3.txt b/docs/GL3.txt >>> index 7964a5e..7f6b8c9 100644 >>> --- a/docs/GL3.txt >>> +++ b/docs/GL3.txt >>> @@ -243,7 +243,7 @@ GLES3.2, GLSL ES 3.2 >>> GL_KHR_texture_compression_astc_ldr DONE (i965/gen9+) >>> GL_OES_copy_image not started (based >>> on GL_ARB_copy_image, which is done for some drivers) >>> GL_OES_draw_buffers_indexed not started >>> - GL_OES_draw_elements_base_vertex not started (based >>> on GL_ARB_draw_elements_base_vertex, which is done for all drivers) >>> + GL_OES_draw_elements_base_vertex DONE (all drivers) >>> GL_OES_geometry_shader not started (based >>> on GL_ARB_geometry_shader4, which is done for all drivers) >>> GL_OES_gpu_shader5 not started (based >>> on parts of GL_ARB_gpu_shader5, which is done for some drivers) >>> GL_OES_primitive_bounding box not started >>> diff --git a/docs/relnotes/11.1.0.html b/docs/relnotes/11.1.0.html >>> index 972361f..7160244 100644 >>> --- a/docs/relnotes/11.1.0.html >>> +++ b/docs/relnotes/11.1.0.html >>> @@ -55,6 +55,8 @@ Note: some of the new features are only available with >>> certain drivers. >>> <li>GL_ARB_texture_barrier / GL_NV_texture_barrier on i965</li> >>> <li>GL_ARB_texture_query_lod on softpipe</li> >>> <li>GL_ARB_texture_view on radeonsi</li> >>> +<li>GL_EXT_draw_elements_base_vertex on all drivers</li> >>> +<li>GL_OES_draw_elements_base_vertex on all drivers</li> >>> <li>EGL_KHR_create_context on softpipe, llvmpipe</li> >>> <li>EGL_KHR_gl_colorspace on softpipe, llvmpipe</li> >>> <li>new virgl gallium driver for qemu virtio-gpu</li> >>> diff --git a/src/mapi/glapi/gen/ARB_draw_elements_base_vertex.xml >>> b/src/mapi/glapi/gen/ARB_draw_elements_base_vertex.xml >>> index 120bda1..72aa62c 100644 >>> --- a/src/mapi/glapi/gen/ARB_draw_elements_base_vertex.xml >>> +++ b/src/mapi/glapi/gen/ARB_draw_elements_base_vertex.xml >>> @@ -8,7 +8,7 @@ >>> >>> <category name="GL_ARB_draw_elements_base_vertex" number="62"> >>> >>> - <function name="DrawElementsBaseVertex" exec="dynamic"> >>> + <function name="DrawElementsBaseVertex" es2="3.2" exec="dynamic"> >>> <param name="mode" type="GLenum"/> >>> <param name="count" type="GLsizei"/> >>> <param name="type" type="GLenum"/> >>> @@ -16,7 +16,7 @@ >>> <param name="basevertex" type="GLint"/> >>> </function> >>> >>> - <function name="DrawRangeElementsBaseVertex" exec="dynamic"> >>> + <function name="DrawRangeElementsBaseVertex" es2="3.2" exec="dynamic"> >>> <param name="mode" type="GLenum"/> >>> <param name="start" type="GLuint"/> >>> <param name="end" type="GLuint"/> >>> @@ -35,7 +35,7 @@ >>> <param name="basevertex" type="const GLint *"/> >>> </function> >>> >>> - <function name="DrawElementsInstancedBaseVertex" exec="dynamic"> >>> + <function name="DrawElementsInstancedBaseVertex" es2="3.2" >>> exec="dynamic"> >>> <param name="mode" type="GLenum"/> >>> <param name="count" type="GLsizei"/> >>> <param name="type" type="GLenum"/> >>> diff --git a/src/mapi/glapi/gen/es_EXT.xml b/src/mapi/glapi/gen/es_EXT.xml >>> index cfca5a9..9277285 100644 >>> --- a/src/mapi/glapi/gen/es_EXT.xml >>> +++ b/src/mapi/glapi/gen/es_EXT.xml >>> @@ -817,4 +817,92 @@ >>> </function> >>> </category> >>> >>> +<category name="GL_EXT_draw_elements_base_vertex" number="204"> >>> + >>> + <function name="DrawElementsBaseVertexEXT" >>> alias="DrawElementsBaseVertex" >> >> indentation fail >> >>> + exec="dynamic"> >>> + <param name="mode" type="GLenum"/> >>> + <param name="count" type="GLsizei"/> >>> + <param name="type" type="GLenum"/> >>> + <param name="indices" type="const GLvoid *"/> >>> + <param name="basevertex" type="GLint"/> >>> + </function> >>> + >>> + <function name="DrawRangeElementsBaseVertexEXT" >>> alias="DrawRangeElementsBaseVertex" >>> + exec="dynamic"> >>> + <param name="mode" type="GLenum"/> >>> + <param name="start" type="GLuint"/> >>> + <param name="end" type="GLuint"/> >>> + <param name="count" type="GLsizei"/> >>> + <param name="type" type="GLenum"/> >>> + <param name="indices" type="const GLvoid *"/> >>> + <param name="basevertex" type="GLint"/> >>> + </function> >>> + >>> + <function name="MultiDrawElementsBaseVertexEXT" >>> alias="MultiDrawElementsBaseVertex" >>> + exec="dynamic"> >>> + <param name="mode" type="GLenum"/> >>> + <param name="count" type="const GLsizei *"/> >>> + <param name="type" type="GLenum"/> >>> + <param name="indices" type="const GLvoid * const *"/> >>> + <param name="primcount" type="GLsizei"/> >>> + <param name="basevertex" type="const GLint *"/> >>> + </function> >>> + >>> + <function name="DrawElementsInstancedBaseVertexEXT" >>> alias="DrawElementsInstancedBaseVertex" >>> + exec="dynamic"> >>> + <param name="mode" type="GLenum"/> >>> + <param name="count" type="GLsizei"/> >>> + <param name="type" type="GLenum"/> >>> + <param name="indices" type="const GLvoid *"/> >>> + <param name="primcount" type="GLsizei"/> >>> + <param name="basevertex" type="GLint"/> >>> + </function> >>> + >>> +</category> >>> + >>> +<category name="GL_OES_draw_elements_base_vertex" number="219"> >>> + >>> + <function name="DrawElementsBaseVertexOES" >>> alias="DrawElementsBaseVertex" >> >> indentation fail. actually perhaps it's the rest of the files that are >> fail... will check what the other bits of it look like. >> >>> + exec="dynamic"> >>> + <param name="mode" type="GLenum"/> >>> + <param name="count" type="GLsizei"/> >>> + <param name="type" type="GLenum"/> >>> + <param name="indices" type="const GLvoid *"/> >>> + <param name="basevertex" type="GLint"/> >>> + </function> >>> + >>> + <function name="DrawRangeElementsBaseVertexOES" >>> alias="DrawRangeElementsBaseVertex" >>> + es2="3.0" exec="dynamic"> >>> + <param name="mode" type="GLenum"/> >>> + <param name="start" type="GLuint"/> >>> + <param name="end" type="GLuint"/> >>> + <param name="count" type="GLsizei"/> >>> + <param name="type" type="GLenum"/> >>> + <param name="indices" type="const GLvoid *"/> >>> + <param name="basevertex" type="GLint"/> >>> + </function> >>> + >>> + <function name="MultiDrawElementsBaseVertexOES" >>> alias="MultiDrawElementsBaseVertex" >>> + exec="dynamic"> >>> + <param name="mode" type="GLenum"/> >>> + <param name="count" type="const GLsizei *"/> >>> + <param name="type" type="GLenum"/> >>> + <param name="indices" type="const GLvoid * const *"/> >>> + <param name="primcount" type="GLsizei"/> >>> + <param name="basevertex" type="const GLint *"/> >>> + </function> >>> + >>> + <function name="DrawElementsInstancedBaseVertexOES" >>> alias="DrawElementsInstancedBaseVertex" >>> + es2="3.0" exec="dynamic"> >>> + <param name="mode" type="GLenum"/> >>> + <param name="count" type="GLsizei"/> >>> + <param name="type" type="GLenum"/> >>> + <param name="indices" type="const GLvoid *"/> >>> + <param name="primcount" type="GLsizei"/> >>> + <param name="basevertex" type="GLint"/> >>> + </function> >>> + >>> +</category> >>> + >>> </OpenGLAPI> >>> diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c >>> index 64972fa..d964f03 100644 >>> --- a/src/mesa/main/extensions.c >>> +++ b/src/mesa/main/extensions.c >>> @@ -230,6 +230,7 @@ static const struct extension extension_table[] = { >>> { "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_elements_base_vertex", >>> o(ARB_draw_elements_base_vertex), ES2, 2014 }, >>> { "GL_EXT_draw_instanced", o(ARB_draw_instanced), >>> GL, 2006 }, >>> { "GL_EXT_draw_range_elements", o(dummy_true), >>> GLL, 1997 }, >>> { "GL_EXT_fog_coord", o(dummy_true), >>> GLL, 1999 }, >>> @@ -306,6 +307,7 @@ static const struct extension extension_table[] = { >>> { "GL_OES_depth32", o(dummy_false), >>> DISABLE, 2005 }, >>> { "GL_OES_depth_texture", o(ARB_depth_texture), >>> ES2, 2006 }, >>> { "GL_OES_depth_texture_cube_map", >>> o(OES_depth_texture_cube_map), ES2, 2012 }, >>> + { "GL_OES_draw_elements_base_vertex", >>> o(ARB_draw_elements_base_vertex), ES2, 2014 }, >>> { "GL_OES_draw_texture", o(OES_draw_texture), >>> ES1, 2004 }, >>> { "GL_OES_EGL_sync", o(dummy_true), >>> ES1 | ES2, 2010 }, >>> /* FIXME: Mesa expects GL_OES_EGL_image to be available in OpenGL >>> contexts. */ >>> diff --git a/src/mesa/vbo/vbo_exec_array.c b/src/mesa/vbo/vbo_exec_array.c >>> index 34d2c1d..af22f0a 100644 >>> --- a/src/mesa/vbo/vbo_exec_array.c >>> +++ b/src/mesa/vbo/vbo_exec_array.c >>> @@ -1807,13 +1807,19 @@ vbo_initialize_exec_dispatch(const struct >>> gl_context *ctx, >>> SET_EvalMesh2(exec, vbo_exec_EvalMesh2); >>> } >>> >>> - if (_mesa_is_desktop_gl(ctx)) { >>> + if (ctx->API != API_OPENGLES2 && >>> ctx->Extensions.ARB_draw_elements_base_vertex) { >> >> != OPENGLES :) >> >>> SET_DrawElementsBaseVertex(exec, vbo_exec_DrawElementsBaseVertex); >>> - SET_DrawRangeElementsBaseVertex(exec, >>> vbo_exec_DrawRangeElementsBaseVertex); >>> SET_MultiDrawElementsBaseVertex(exec, >>> vbo_exec_MultiDrawElementsBaseVertex); >>> + >>> + if (_mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx)) { >> >> indentation still fail. >> >> I'll fix these up myself before pushing, I guess... it's getting >> trivial enough. But in the future, please pay attention to such >> details. >> >> Reviewed-by: Ilia Mirkin <imir...@alum.mit.edu> > > With Ilia's requested changes, > > Reviewed-by: Ian Romanick <ian.d.roman...@intel.com> > > Also... please use the [PATCH v2], etc. notation. When there were four > patches in my inbox with exactly the same subject, it was confusing > which one to review.
FWIW I already pushed this last night. I made some final very minor adjustments. http://cgit.freedesktop.org/mesa/mesa/commit/?id=af7c98a9c75b17fc8c8ed0989aa732766e5b06d1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev