diff options
-rw-r--r-- | src/mapi/glapi/gen/ARB_draw_elements_base_vertex.xml | 6 | ||||
-rw-r--r-- | src/mapi/glapi/gen/es_EXT.xml | 10 | ||||
-rw-r--r-- | src/mapi/glapi/gen/gl_API.xml | 26 | ||||
-rw-r--r-- | src/mapi/glapi/gen/gl_genexec.py | 2 | ||||
-rw-r--r-- | src/mesa/main/draw.c | 99 | ||||
-rw-r--r-- | src/mesa/main/draw.h | 31 | ||||
-rw-r--r-- | src/mesa/main/tests/dispatch_sanity.cpp | 3 |
7 files changed, 77 insertions, 100 deletions
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 0350dd735a7..08ea7a31ca0 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" es2="3.2" exec="dynamic" marshal="custom"> + <function name="DrawElementsBaseVertex" es2="3.2" marshal="custom"> <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" es2="3.2" exec="dynamic" marshal="custom"> + <function name="DrawRangeElementsBaseVertex" es2="3.2" marshal="custom"> <param name="mode" type="GLenum"/> <param name="start" type="GLuint"/> <param name="end" type="GLuint"/> @@ -26,7 +26,7 @@ <param name="basevertex" type="GLint"/> </function> - <function name="MultiDrawElementsBaseVertex" exec="dynamic" marshal="custom"> + <function name="MultiDrawElementsBaseVertex" marshal="custom"> <param name="mode" type="GLenum"/> <param name="count" type="const GLsizei *" count="primcount"/> <param name="type" type="GLenum"/> diff --git a/src/mapi/glapi/gen/es_EXT.xml b/src/mapi/glapi/gen/es_EXT.xml index 4386375940f..929b40bbd4a 100644 --- a/src/mapi/glapi/gen/es_EXT.xml +++ b/src/mapi/glapi/gen/es_EXT.xml @@ -1076,7 +1076,7 @@ <category name="GL_EXT_draw_elements_base_vertex" number="204"> <function name="DrawElementsBaseVertexEXT" alias="DrawElementsBaseVertex" - es2="2.0" exec="dynamic"> + es2="2.0"> <param name="mode" type="GLenum"/> <param name="count" type="GLsizei"/> <param name="type" type="GLenum"/> @@ -1085,7 +1085,7 @@ </function> <function name="DrawRangeElementsBaseVertexEXT" alias="DrawRangeElementsBaseVertex" - es2="3.0" exec="dynamic"> + es2="3.0"> <param name="mode" type="GLenum"/> <param name="start" type="GLuint"/> <param name="end" type="GLuint"/> @@ -1096,7 +1096,7 @@ </function> <function name="MultiDrawElementsBaseVertexEXT" alias="MultiDrawElementsBaseVertex" - es2="2.0" exec="dynamic"> + es2="2.0"> <param name="mode" type="GLenum"/> <param name="count" type="const GLsizei *"/> <param name="type" type="GLenum"/> @@ -1228,7 +1228,7 @@ <category name="GL_OES_draw_elements_base_vertex" number="219"> <function name="DrawElementsBaseVertexOES" alias="DrawElementsBaseVertex" - es2="2.0" exec="dynamic"> + es2="2.0"> <param name="mode" type="GLenum"/> <param name="count" type="GLsizei"/> <param name="type" type="GLenum"/> @@ -1237,7 +1237,7 @@ </function> <function name="DrawRangeElementsBaseVertexOES" alias="DrawRangeElementsBaseVertex" - es2="3.0" exec="dynamic"> + es2="3.0"> <param name="mode" type="GLenum"/> <param name="start" type="GLuint"/> <param name="end" type="GLuint"/> diff --git a/src/mapi/glapi/gen/gl_API.xml b/src/mapi/glapi/gen/gl_API.xml index 9abc045ce87..f97aea70061 100644 --- a/src/mapi/glapi/gen/gl_API.xml +++ b/src/mapi/glapi/gen/gl_API.xml @@ -1598,53 +1598,53 @@ <glx rop="44"/> </function> - <function name="Rectd" vectorequiv="Rectdv" deprecated="3.1" exec="dynamic"> + <function name="Rectd" vectorequiv="Rectdv" deprecated="3.1"> <param name="x1" type="GLdouble"/> <param name="y1" type="GLdouble"/> <param name="x2" type="GLdouble"/> <param name="y2" type="GLdouble"/> </function> - <function name="Rectdv" deprecated="3.1" exec="dynamic"> + <function name="Rectdv" deprecated="3.1"> <param name="v1" type="const GLdouble *" count="2"/> <param name="v2" type="const GLdouble *" count="2"/> <glx rop="45"/> </function> - <function name="Rectf" vectorequiv="Rectfv" deprecated="3.1" exec="dynamic"> + <function name="Rectf" vectorequiv="Rectfv" deprecated="3.1"> <param name="x1" type="GLfloat"/> <param name="y1" type="GLfloat"/> <param name="x2" type="GLfloat"/> <param name="y2" type="GLfloat"/> </function> - <function name="Rectfv" deprecated="3.1" exec="dynamic"> + <function name="Rectfv" deprecated="3.1"> <param name="v1" type="const GLfloat *" count="2"/> <param name="v2" type="const GLfloat *" count="2"/> <glx rop="46"/> </function> - <function name="Recti" vectorequiv="Rectiv" deprecated="3.1" exec="dynamic"> + <function name="Recti" vectorequiv="Rectiv" deprecated="3.1"> <param name="x1" type="GLint"/> <param name="y1" type="GLint"/> <param name="x2" type="GLint"/> <param name="y2" type="GLint"/> </function> - <function name="Rectiv" deprecated="3.1" exec="dynamic"> + <function name="Rectiv" deprecated="3.1"> <param name="v1" type="const GLint *" count="2"/> <param name="v2" type="const GLint *" count="2"/> <glx rop="47"/> </function> - <function name="Rects" vectorequiv="Rectsv" deprecated="3.1" exec="dynamic"> + <function name="Rects" vectorequiv="Rectsv" deprecated="3.1"> <param name="x1" type="GLshort"/> <param name="y1" type="GLshort"/> <param name="x2" type="GLshort"/> <param name="y2" type="GLshort"/> </function> - <function name="Rectsv" deprecated="3.1" exec="dynamic"> + <function name="Rectsv" deprecated="3.1"> <param name="v1" type="const GLshort *" count="2"/> <param name="v2" type="const GLshort *" count="2"/> <glx rop="48"/> @@ -3199,14 +3199,14 @@ <glx handcode="true"/> </function> - <function name="DrawArrays" es1="1.0" es2="2.0" exec="dynamic" marshal="custom"> + <function name="DrawArrays" es1="1.0" es2="2.0" marshal="custom"> <param name="mode" type="GLenum"/> <param name="first" type="GLint"/> <param name="count" type="GLsizei"/> <glx rop="193" handcode="true"/> </function> - <function name="DrawElements" es1="1.0" es2="2.0" exec="dynamic" marshal="custom"> + <function name="DrawElements" es1="1.0" es2="2.0" marshal="custom"> <param name="mode" type="GLenum"/> <param name="count" type="GLsizei"/> <param name="type" type="GLenum"/> @@ -3777,7 +3777,7 @@ <glx rop="4097"/> </function> - <function name="DrawRangeElements" es2="3.0" exec="dynamic" marshal="custom"> + <function name="DrawRangeElements" es2="3.0" marshal="custom"> <param name="mode" type="GLenum"/> <param name="start" type="GLuint"/> <param name="end" type="GLuint"/> @@ -10298,14 +10298,14 @@ </category> <category name="GL_EXT_multi_draw_arrays" number="148"> - <function name="MultiDrawArraysEXT" es1="1.0" es2="2.0" exec="dynamic" alias="MultiDrawArrays"> + <function name="MultiDrawArraysEXT" es1="1.0" es2="2.0" alias="MultiDrawArrays"> <param name="mode" type="GLenum"/> <param name="first" type="const GLint *"/> <param name="count" type="const GLsizei *"/> <param name="primcount" type="GLsizei"/> </function> - <function name="MultiDrawElementsEXT" es1="1.0" es2="2.0" exec="dynamic" marshal="custom"> + <function name="MultiDrawElementsEXT" es1="1.0" es2="2.0" marshal="custom"> <param name="mode" type="GLenum"/> <param name="count" type="const GLsizei *" count="primcount"/> <param name="type" type="GLenum"/> diff --git a/src/mapi/glapi/gen/gl_genexec.py b/src/mapi/glapi/gen/gl_genexec.py index 9f7c8ca8baa..8bca9ed6904 100644 --- a/src/mapi/glapi/gen/gl_genexec.py +++ b/src/mapi/glapi/gen/gl_genexec.py @@ -149,8 +149,6 @@ _mesa_initialize_exec_table(struct gl_context *ctx) assert(exec != NULL); assert(ctx->Version > 0); - - _mesa_initialize_exec_dispatch(ctx, exec); """ diff --git a/src/mesa/main/draw.c b/src/mesa/main/draw.c index 669f0c5375e..2438091ec5d 100644 --- a/src/mesa/main/draw.c +++ b/src/mesa/main/draw.c @@ -600,8 +600,8 @@ _mesa_draw_arrays(struct gl_context *ctx, GLenum mode, GLint start, /** * Execute a glRectf() function. */ -static void GLAPIENTRY -_mesa_exec_Rectf(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2) +void GLAPIENTRY +_mesa_Rectf(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2) { GET_CURRENT_CONTEXT(ctx); ASSERT_OUTSIDE_BEGIN_END(ctx); @@ -617,46 +617,46 @@ _mesa_exec_Rectf(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2) } -static void GLAPIENTRY -_mesa_exec_Rectd(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2) +void GLAPIENTRY +_mesa_Rectd(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2) { - _mesa_exec_Rectf((GLfloat) x1, (GLfloat) y1, (GLfloat) x2, (GLfloat) y2); + _mesa_Rectf((GLfloat) x1, (GLfloat) y1, (GLfloat) x2, (GLfloat) y2); } -static void GLAPIENTRY -_mesa_exec_Rectdv(const GLdouble *v1, const GLdouble *v2) +void GLAPIENTRY +_mesa_Rectdv(const GLdouble *v1, const GLdouble *v2) { - _mesa_exec_Rectf((GLfloat) v1[0], (GLfloat) v1[1], (GLfloat) v2[0], (GLfloat) v2[1]); + _mesa_Rectf((GLfloat) v1[0], (GLfloat) v1[1], (GLfloat) v2[0], (GLfloat) v2[1]); } -static void GLAPIENTRY -_mesa_exec_Rectfv(const GLfloat *v1, const GLfloat *v2) +void GLAPIENTRY +_mesa_Rectfv(const GLfloat *v1, const GLfloat *v2) { - _mesa_exec_Rectf(v1[0], v1[1], v2[0], v2[1]); + _mesa_Rectf(v1[0], v1[1], v2[0], v2[1]); } -static void GLAPIENTRY -_mesa_exec_Recti(GLint x1, GLint y1, GLint x2, GLint y2) +void GLAPIENTRY +_mesa_Recti(GLint x1, GLint y1, GLint x2, GLint y2) { - _mesa_exec_Rectf((GLfloat) x1, (GLfloat) y1, (GLfloat) x2, (GLfloat) y2); + _mesa_Rectf((GLfloat) x1, (GLfloat) y1, (GLfloat) x2, (GLfloat) y2); } -static void GLAPIENTRY -_mesa_exec_Rectiv(const GLint *v1, const GLint *v2) +void GLAPIENTRY +_mesa_Rectiv(const GLint *v1, const GLint *v2) { - _mesa_exec_Rectf((GLfloat) v1[0], (GLfloat) v1[1], (GLfloat) v2[0], (GLfloat) v2[1]); + _mesa_Rectf((GLfloat) v1[0], (GLfloat) v1[1], (GLfloat) v2[0], (GLfloat) v2[1]); } -static void GLAPIENTRY -_mesa_exec_Rects(GLshort x1, GLshort y1, GLshort x2, GLshort y2) +void GLAPIENTRY +_mesa_Rects(GLshort x1, GLshort y1, GLshort x2, GLshort y2) { - _mesa_exec_Rectf((GLfloat) x1, (GLfloat) y1, (GLfloat) x2, (GLfloat) y2); + _mesa_Rectf((GLfloat) x1, (GLfloat) y1, (GLfloat) x2, (GLfloat) y2); } -static void GLAPIENTRY -_mesa_exec_Rectsv(const GLshort *v1, const GLshort *v2) +void GLAPIENTRY +_mesa_Rectsv(const GLshort *v1, const GLshort *v2) { - _mesa_exec_Rectf((GLfloat) v1[0], (GLfloat) v1[1], (GLfloat) v2[0], (GLfloat) v2[1]); + _mesa_Rectf((GLfloat) v1[0], (GLfloat) v1[1], (GLfloat) v2[0], (GLfloat) v2[1]); } @@ -889,9 +889,9 @@ _mesa_DrawArraysInstancedBaseInstance(GLenum mode, GLint first, /** * Called from glMultiDrawArrays when in immediate mode. */ -static void GLAPIENTRY -_mesa_exec_MultiDrawArrays(GLenum mode, const GLint *first, - const GLsizei *count, GLsizei primcount) +void GLAPIENTRY +_mesa_MultiDrawArrays(GLenum mode, const GLint *first, + const GLsizei *count, GLsizei primcount) { GET_CURRENT_CONTEXT(ctx); GLint i; @@ -1598,8 +1598,8 @@ _mesa_validated_multidrawelements(struct gl_context *ctx, GLenum mode, void GLAPIENTRY -_mesa_MultiDrawElements(GLenum mode, const GLsizei *count, GLenum type, - const GLvoid * const *indices, GLsizei primcount) +_mesa_MultiDrawElementsEXT(GLenum mode, const GLsizei *count, GLenum type, + const GLvoid * const *indices, GLsizei primcount) { GET_CURRENT_CONTEXT(ctx); @@ -2171,49 +2171,6 @@ _mesa_MultiDrawElementsIndirectCountARB(GLenum mode, GLenum type, } -/** - * Initialize the dispatch table with the VBO functions for drawing. - */ -void -_mesa_initialize_exec_dispatch(const struct gl_context *ctx, - struct _glapi_table *exec) -{ - SET_DrawArrays(exec, _mesa_DrawArrays); - SET_DrawElements(exec, _mesa_DrawElements); - - if (_mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx)) { - SET_DrawRangeElements(exec, _mesa_DrawRangeElements); - } - - SET_MultiDrawArrays(exec, _mesa_exec_MultiDrawArrays); - SET_MultiDrawElementsEXT(exec, _mesa_MultiDrawElements); - - if (ctx->API == API_OPENGL_COMPAT) { - SET_Rectf(exec, _mesa_exec_Rectf); - SET_Rectd(exec, _mesa_exec_Rectd); - SET_Rectdv(exec, _mesa_exec_Rectdv); - SET_Rectfv(exec, _mesa_exec_Rectfv); - SET_Recti(exec, _mesa_exec_Recti); - SET_Rectiv(exec, _mesa_exec_Rectiv); - SET_Rects(exec, _mesa_exec_Rects); - SET_Rectsv(exec, _mesa_exec_Rectsv); - } - - if (ctx->API != API_OPENGLES && - ctx->Extensions.ARB_draw_elements_base_vertex) { - SET_DrawElementsBaseVertex(exec, _mesa_DrawElementsBaseVertex); - SET_MultiDrawElementsBaseVertex(exec, - _mesa_MultiDrawElementsBaseVertex); - - if (_mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx)) { - SET_DrawRangeElementsBaseVertex(exec, - _mesa_DrawRangeElementsBaseVertex); - } - } -} - - - /* GL_IBM_multimode_draw_arrays */ void GLAPIENTRY _mesa_MultiModeDrawArraysIBM( const GLenum * mode, const GLint * first, diff --git a/src/mesa/main/draw.h b/src/mesa/main/draw.h index 2e2773e3134..f8dc1a451ed 100644 --- a/src/mesa/main/draw.h +++ b/src/mesa/main/draw.h @@ -78,10 +78,6 @@ struct _mesa_index_buffer void -_mesa_initialize_exec_dispatch(const struct gl_context *ctx, - struct _glapi_table *exec); - -void _mesa_draw_gallium_fallback(struct gl_context *ctx, struct pipe_draw_info *info, const struct pipe_draw_start_count *draws, @@ -211,8 +207,8 @@ _mesa_MultiDrawArrays(GLenum mode, const GLint *first, void GLAPIENTRY -_mesa_MultiDrawElements(GLenum mode, const GLsizei *count, GLenum type, - const GLvoid *const *indices, GLsizei primcount); +_mesa_MultiDrawElementsEXT(GLenum mode, const GLsizei *count, GLenum type, + const GLvoid *const *indices, GLsizei primcount); void GLAPIENTRY @@ -233,6 +229,29 @@ _mesa_MultiModeDrawElementsIBM(const GLenum * mode, const GLsizei * count, GLenum type, const GLvoid * const * indices, GLsizei primcount, GLint modestride); +void GLAPIENTRY +_mesa_Rectf(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2); + +void GLAPIENTRY +_mesa_Rectd(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2); + +void GLAPIENTRY +_mesa_Rectdv(const GLdouble *v1, const GLdouble *v2); + +void GLAPIENTRY +_mesa_Rectfv(const GLfloat *v1, const GLfloat *v2); + +void GLAPIENTRY +_mesa_Recti(GLint x1, GLint y1, GLint x2, GLint y2); + +void GLAPIENTRY +_mesa_Rectiv(const GLint *v1, const GLint *v2); + +void GLAPIENTRY +_mesa_Rects(GLshort x1, GLshort y1, GLshort x2, GLshort y2); + +void GLAPIENTRY +_mesa_Rectsv(const GLshort *v1, const GLshort *v2); #ifdef __cplusplus } // extern "C" diff --git a/src/mesa/main/tests/dispatch_sanity.cpp b/src/mesa/main/tests/dispatch_sanity.cpp index bbb3ee03791..e499ea2f1b1 100644 --- a/src/mesa/main/tests/dispatch_sanity.cpp +++ b/src/mesa/main/tests/dispatch_sanity.cpp @@ -2264,6 +2264,7 @@ const struct function gles2_functions_possible[] = { { "glDrawArrays", 20, _gloffset_DrawArrays }, { "glDrawBuffersNV", 20, -1 }, { "glDrawElements", 20, _gloffset_DrawElements }, + { "glDrawElementsBaseVertex", 20, -1 }, { "glEGLImageTargetRenderbufferStorageOES", 20, -1 }, { "glEGLImageTargetTexture2DOES", 20, -1 }, { "glEnable", 20, _gloffset_Enable }, @@ -2323,6 +2324,7 @@ const struct function gles2_functions_possible[] = { { "glMapBufferRangeEXT", 20, -1 }, { "glMultiDrawArraysEXT", 20, -1 }, { "glMultiDrawElementsEXT", 20, -1 }, + { "glMultiDrawElementsBaseVertex", 20, -1 }, { "glPixelStorei", 20, _gloffset_PixelStorei }, { "glPolygonOffset", 20, _gloffset_PolygonOffset }, { "glReadBufferNV", 20, _gloffset_ReadBuffer }, @@ -2556,6 +2558,7 @@ const struct function gles3_functions_possible[] = { // { "glDrawBuffers", 30, -1 }, { "glDrawElementsInstanced", 30, -1 }, { "glDrawRangeElements", 30, -1 }, + { "glDrawRangeElementsBaseVertex", 30, -1 }, // We check for the aliased -EXT version in GLES 2 // { "glEndQuery", 30, -1 }, { "glEndTransformFeedback", 30, -1 }, |