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. > >> + SET_DrawRangeElementsBaseVertex(exec, >> vbo_exec_DrawRangeElementsBaseVertex); >> + SET_DrawElementsInstancedBaseVertex(exec, >> vbo_exec_DrawElementsInstancedBaseVertex); >> + } >> + } >> + >> + if (_mesa_is_desktop_gl(ctx)) { >> SET_DrawArraysInstancedBaseInstance(exec, >> vbo_exec_DrawArraysInstancedBaseInstance); >> SET_DrawElementsInstancedBaseInstance(exec, >> vbo_exec_DrawElementsInstancedBaseInstance); >> - SET_DrawElementsInstancedBaseVertex(exec, >> vbo_exec_DrawElementsInstancedBaseVertex); >> SET_DrawElementsInstancedBaseVertexBaseInstance(exec, >> vbo_exec_DrawElementsInstancedBaseVertexBaseInstance); >> } >> >> -- >> 2.5.0 >> >> _______________________________________________ >> mesa-dev mailing list >> mesa-dev@lists.freedesktop.org >> http://lists.freedesktop.org/mailman/listinfo/mesa-dev > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev