diff options
Diffstat (limited to 'src/mesa/vbo')
-rw-r--r-- | src/mesa/vbo/vbo_exec_array.c | 528 |
1 files changed, 276 insertions, 252 deletions
diff --git a/src/mesa/vbo/vbo_exec_array.c b/src/mesa/vbo/vbo_exec_array.c index dc1ef763626..0900c8a915e 100644 --- a/src/mesa/vbo/vbo_exec_array.c +++ b/src/mesa/vbo/vbo_exec_array.c @@ -62,8 +62,7 @@ check_array_data(struct gl_context *ctx, struct gl_vertex_array_object *vao, /* need to map now */ bo->Mappings[MAP_INTERNAL].Pointer = ctx->Driver.MapBufferRange(ctx, 0, bo->Size, - GL_MAP_READ_BIT, bo, - MAP_INTERNAL); + GL_MAP_READ_BIT, bo, MAP_INTERNAL); } data = ADD_POINTERS(_mesa_vertex_attrib_address(array, binding), bo->Mappings[MAP_INTERNAL].Pointer); @@ -74,18 +73,17 @@ check_array_data(struct gl_context *ctx, struct gl_vertex_array_object *vao, GLfloat *f = (GLfloat *) ((GLubyte *) data + binding->Stride * j); GLint k; for (k = 0; k < array->Size; k++) { - if (IS_INF_OR_NAN(f[k]) || - f[k] >= 1.0e20F || f[k] <= -1.0e10F) { + if (IS_INF_OR_NAN(f[k]) || f[k] >= 1.0e20F || f[k] <= -1.0e10F) { printf("Bad array data:\n"); printf(" Element[%u].%u = %f\n", j, k, f[k]); - printf(" Array %u at %p\n", attrib, (void* ) array); + printf(" Array %u at %p\n", attrib, (void *) array); printf(" Type 0x%x, Size %d, Stride %d\n", - array->Type, array->Size, binding->Stride); + array->Type, array->Size, binding->Stride); printf(" Address/offset %p in Buffer Object %u\n", - array->Ptr, bo->Name); - f[k] = 1.0F; /* XXX replace the bad value! */ + array->Ptr, bo->Name); + f[k] = 1.0F; /* XXX replace the bad value! */ } - /*assert(!IS_INF_OR_NAN(f[k]));*/ + /*assert(!IS_INF_OR_NAN(f[k])); */ } } break; @@ -120,8 +118,9 @@ unmap_array_buffer(struct gl_context *ctx, struct gl_vertex_array_object *vao, * For debug purposes; not normally used. */ static void -check_draw_elements_data(struct gl_context *ctx, GLsizei count, GLenum elemType, - const void *elements, GLint basevertex) +check_draw_elements_data(struct gl_context *ctx, GLsizei count, + GLenum elemType, const void *elements, + GLint basevertex) { struct gl_vertex_array_object *vao = ctx->Array.VAO; const void *elemMap; @@ -130,10 +129,9 @@ check_draw_elements_data(struct gl_context *ctx, GLsizei count, GLenum elemType, if (_mesa_is_bufferobj(vao->IndexBufferObj)) { elemMap = ctx->Driver.MapBufferRange(ctx, 0, - vao->IndexBufferObj->Size, - GL_MAP_READ_BIT, - vao->IndexBufferObj, - MAP_INTERNAL); + vao->IndexBufferObj->Size, + GL_MAP_READ_BIT, + vao->IndexBufferObj, MAP_INTERNAL); elements = ADD_POINTERS(elements, elemMap); } @@ -191,7 +189,7 @@ print_draw_arrays(struct gl_context *ctx, const struct gl_vertex_array_object *vao = ctx->Array.VAO; printf("vbo_exec_DrawArrays(mode 0x%x, start %d, count %d):\n", - mode, start, count); + mode, start, count); unsigned i; for (i = 0; i < VERT_ATTRIB_MAX; ++i) { @@ -204,14 +202,14 @@ print_draw_arrays(struct gl_context *ctx, struct gl_buffer_object *bufObj = binding->BufferObj; printf("attr %s: size %d stride %d enabled %d " - "ptr %p Bufobj %u\n", - gl_vert_attrib_name((gl_vert_attrib)i), - array->Size, binding->Stride, array->Enabled, + "ptr %p Bufobj %u\n", + gl_vert_attrib_name((gl_vert_attrib) i), + array->Size, binding->Stride, array->Enabled, array->Ptr, bufObj->Name); if (_mesa_is_bufferobj(bufObj)) { GLubyte *p = ctx->Driver.MapBufferRange(ctx, 0, bufObj->Size, - GL_MAP_READ_BIT, bufObj, + GL_MAP_READ_BIT, bufObj, MAP_INTERNAL); int offset = (int) (GLintptr) _mesa_vertex_attrib_address(array, binding); @@ -258,17 +256,17 @@ recalculate_input_bindings(struct gl_context *ctx) * are available as per-vertex attributes. */ for (i = 0; i < VERT_ATTRIB_FF_MAX; i++) { - if (array[VERT_ATTRIB_FF(i)].Enabled) - inputs[i] = &vertexAttrib[VERT_ATTRIB_FF(i)]; - else { - inputs[i] = &vbo->currval[VBO_ATTRIB_POS+i]; + if (array[VERT_ATTRIB_FF(i)].Enabled) + inputs[i] = &vertexAttrib[VERT_ATTRIB_FF(i)]; + else { + inputs[i] = &vbo->currval[VBO_ATTRIB_POS + i]; const_inputs |= VERT_BIT(i); } } for (i = 0; i < MAT_ATTRIB_MAX; i++) { - inputs[VERT_ATTRIB_GENERIC(i)] = - &vbo->currval[VBO_ATTRIB_MAT_FRONT_AMBIENT+i]; + inputs[VERT_ATTRIB_GENERIC(i)] = + &vbo->currval[VBO_ATTRIB_MAT_FRONT_AMBIENT + i]; const_inputs |= VERT_BIT_GENERIC(i); } @@ -276,7 +274,8 @@ recalculate_input_bindings(struct gl_context *ctx) * slots: */ for (i = MAT_ATTRIB_MAX; i < VERT_ATTRIB_GENERIC_MAX; i++) { - inputs[VERT_ATTRIB_GENERIC(i)] = &vbo->currval[VBO_ATTRIB_GENERIC0+i]; + inputs[VERT_ATTRIB_GENERIC(i)] = + &vbo->currval[VBO_ATTRIB_GENERIC0 + i]; const_inputs |= VERT_BIT_GENERIC(i); } break; @@ -289,7 +288,7 @@ recalculate_input_bindings(struct gl_context *ctx) assert(ctx->API != API_OPENGLES); /* In the compatibility profile of desktop OpenGL, the generic[0] - * attribute array aliases and overrides the legacy position array. + * attribute array aliases and overrides the legacy position array. * Otherwise, legacy attributes available in the legacy slots, * generic attributes in the generic slots and materials are not * available as per-vertex attributes. @@ -311,7 +310,7 @@ recalculate_input_bindings(struct gl_context *ctx) if (array[VERT_ATTRIB_FF(i)].Enabled) inputs[i] = &vertexAttrib[VERT_ATTRIB_FF(i)]; else { - inputs[i] = &vbo->currval[VBO_ATTRIB_POS+i]; + inputs[i] = &vbo->currval[VBO_ATTRIB_POS + i]; const_inputs |= VERT_BIT_FF(i); } } @@ -322,7 +321,7 @@ recalculate_input_bindings(struct gl_context *ctx) &vertexAttrib[VERT_ATTRIB_GENERIC(i)]; else { inputs[VERT_ATTRIB_GENERIC(i)] = - &vbo->currval[VBO_ATTRIB_GENERIC0+i]; + &vbo->currval[VBO_ATTRIB_GENERIC0 + i]; const_inputs |= VERT_BIT_GENERIC(i); } } @@ -337,7 +336,7 @@ recalculate_input_bindings(struct gl_context *ctx) for (i = 0; i < VERT_ATTRIB_FF_MAX; i++) { assert(!array[VERT_ATTRIB_FF(i)].Enabled); - inputs[i] = &vbo->currval[VBO_ATTRIB_POS+i]; + inputs[i] = &vbo->currval[VBO_ATTRIB_POS + i]; const_inputs |= VERT_BIT_FF(i); } @@ -347,7 +346,7 @@ recalculate_input_bindings(struct gl_context *ctx) &vertexAttrib[VERT_ATTRIB_GENERIC(i)]; else { inputs[VERT_ATTRIB_GENERIC(i)] = - &vbo->currval[VBO_ATTRIB_GENERIC0+i]; + &vbo->currval[VBO_ATTRIB_GENERIC0 + i]; const_inputs |= VERT_BIT_GENERIC(i); } } @@ -356,7 +355,7 @@ recalculate_input_bindings(struct gl_context *ctx) break; } - _mesa_set_varying_vp_inputs( ctx, VERT_BIT_ALL & (~const_inputs) ); + _mesa_set_varying_vp_inputs(ctx, VERT_BIT_ALL & (~const_inputs)); ctx->NewDriverState |= ctx->DriverFlags.NewArray; } @@ -396,6 +395,7 @@ vbo_bind_arrays(struct gl_context *ctx) } } + /** * Helper function called by the other DrawArrays() functions below. * This is where we handle primitive restart for drawing non-indexed @@ -421,7 +421,8 @@ vbo_draw_arrays(struct gl_context *ctx, GLenum mode, GLint start, prim[0].is_indirect = 0; /* Implement the primitive restart index */ - if (ctx->Array.PrimitiveRestart && !ctx->Array.PrimitiveRestartFixedIndex && + if (ctx->Array.PrimitiveRestart && + !ctx->Array.PrimitiveRestartFixedIndex && ctx->Array.RestartIndex < count) { GLuint primCount = 0; @@ -465,8 +466,7 @@ vbo_draw_arrays(struct gl_context *ctx, GLenum mode, GLint start, prim[0].count = count; vbo->draw_prims(ctx, prim, 1, NULL, - GL_TRUE, start, start + count - 1, - NULL, 0, NULL); + GL_TRUE, start, start + count - 1, NULL, 0, NULL); } if (MESA_DEBUG_FLAGS & DEBUG_ALWAYS_FLUSH) { @@ -509,21 +509,20 @@ vbo_exec_EvalMesh1(GLenum mode, GLint i1, GLint i2) prim = GL_LINE_STRIP; break; default: - _mesa_error( ctx, GL_INVALID_ENUM, "glEvalMesh1(mode)" ); + _mesa_error(ctx, GL_INVALID_ENUM, "glEvalMesh1(mode)"); return; } /* No effect if vertex maps disabled. */ - if (!ctx->Eval.Map1Vertex4 && - !ctx->Eval.Map1Vertex3) + if (!ctx->Eval.Map1Vertex4 && !ctx->Eval.Map1Vertex3) return; du = ctx->Eval.MapGrid1du; u = ctx->Eval.MapGrid1u1 + i1 * du; CALL_Begin(GET_DISPATCH(), (prim)); - for (i=i1;i<=i2;i++,u+=du) { + for (i = i1; i <= i2; i++, u += du) { CALL_EvalCoord1f(GET_DISPATCH(), (u)); } CALL_End(GET_DISPATCH(), ()); @@ -543,14 +542,13 @@ vbo_exec_EvalMesh2(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2) case GL_FILL: break; default: - _mesa_error( ctx, GL_INVALID_ENUM, "glEvalMesh2(mode)" ); + _mesa_error(ctx, GL_INVALID_ENUM, "glEvalMesh2(mode)"); return; } /* No effect if vertex maps disabled. */ - if (!ctx->Eval.Map2Vertex4 && - !ctx->Eval.Map2Vertex3) + if (!ctx->Eval.Map2Vertex4 && !ctx->Eval.Map2Vertex3) return; du = ctx->Eval.MapGrid2du; @@ -561,37 +559,37 @@ vbo_exec_EvalMesh2(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2) switch (mode) { case GL_POINT: CALL_Begin(GET_DISPATCH(), (GL_POINTS)); - for (v=v1,j=j1;j<=j2;j++,v+=dv) { - for (u=u1,i=i1;i<=i2;i++,u+=du) { - CALL_EvalCoord2f(GET_DISPATCH(), (u, v)); - } + for (v = v1, j = j1; j <= j2; j++, v += dv) { + for (u = u1, i = i1; i <= i2; i++, u += du) { + CALL_EvalCoord2f(GET_DISPATCH(), (u, v)); + } } CALL_End(GET_DISPATCH(), ()); break; case GL_LINE: - for (v=v1,j=j1;j<=j2;j++,v+=dv) { - CALL_Begin(GET_DISPATCH(), (GL_LINE_STRIP)); - for (u=u1,i=i1;i<=i2;i++,u+=du) { - CALL_EvalCoord2f(GET_DISPATCH(), (u, v)); - } - CALL_End(GET_DISPATCH(), ()); + for (v = v1, j = j1; j <= j2; j++, v += dv) { + CALL_Begin(GET_DISPATCH(), (GL_LINE_STRIP)); + for (u = u1, i = i1; i <= i2; i++, u += du) { + CALL_EvalCoord2f(GET_DISPATCH(), (u, v)); + } + CALL_End(GET_DISPATCH(), ()); } - for (u=u1,i=i1;i<=i2;i++,u+=du) { - CALL_Begin(GET_DISPATCH(), (GL_LINE_STRIP)); - for (v=v1,j=j1;j<=j2;j++,v+=dv) { - CALL_EvalCoord2f(GET_DISPATCH(), (u, v)); - } - CALL_End(GET_DISPATCH(), ()); + for (u = u1, i = i1; i <= i2; i++, u += du) { + CALL_Begin(GET_DISPATCH(), (GL_LINE_STRIP)); + for (v = v1, j = j1; j <= j2; j++, v += dv) { + CALL_EvalCoord2f(GET_DISPATCH(), (u, v)); + } + CALL_End(GET_DISPATCH(), ()); } break; case GL_FILL: - for (v=v1,j=j1;j<j2;j++,v+=dv) { - CALL_Begin(GET_DISPATCH(), (GL_TRIANGLE_STRIP)); - for (u=u1,i=i1;i<=i2;i++,u+=du) { - CALL_EvalCoord2f(GET_DISPATCH(), (u, v)); - CALL_EvalCoord2f(GET_DISPATCH(), (u, v+dv)); - } - CALL_End(GET_DISPATCH(), ()); + for (v = v1, j = j1; j < j2; j++, v += dv) { + CALL_Begin(GET_DISPATCH(), (GL_TRIANGLE_STRIP)); + for (u = u1, i = i1; i <= i2; i++, u += du) { + CALL_EvalCoord2f(GET_DISPATCH(), (u, v)); + CALL_EvalCoord2f(GET_DISPATCH(), (u, v + dv)); + } + CALL_End(GET_DISPATCH(), ()); } break; } @@ -637,7 +635,8 @@ vbo_exec_DrawArraysInstanced(GLenum mode, GLint start, GLsizei count, _mesa_debug(ctx, "glDrawArraysInstanced(%s, %d, %d, %d)\n", _mesa_enum_to_string(mode), start, count, numInstances); - if (!_mesa_validate_DrawArraysInstanced(ctx, mode, start, count, numInstances)) + if (!_mesa_validate_DrawArraysInstanced(ctx, mode, start, count, + numInstances)) return; if (0) @@ -654,13 +653,15 @@ vbo_exec_DrawArraysInstanced(GLenum mode, GLint start, GLsizei count, * Called from glDrawArraysInstancedBaseInstance when in immediate mode. */ static void GLAPIENTRY -vbo_exec_DrawArraysInstancedBaseInstance(GLenum mode, GLint first, GLsizei count, - GLsizei numInstances, GLuint baseInstance) +vbo_exec_DrawArraysInstancedBaseInstance(GLenum mode, GLint first, + GLsizei count, GLsizei numInstances, + GLuint baseInstance) { GET_CURRENT_CONTEXT(ctx); if (MESA_VERBOSE & VERBOSE_DRAW) - _mesa_debug(ctx, "glDrawArraysInstancedBaseInstance(%s, %d, %d, %d, %d)\n", + _mesa_debug(ctx, + "glDrawArraysInstancedBaseInstance(%s, %d, %d, %d, %d)\n", _mesa_enum_to_string(mode), first, count, numInstances, baseInstance); @@ -689,8 +690,8 @@ dump_element_buffer(struct gl_context *ctx, GLenum type) { const GLvoid *map = ctx->Driver.MapBufferRange(ctx, 0, - ctx->Array.VAO->IndexBufferObj->Size, - GL_MAP_READ_BIT, + ctx->Array.VAO->IndexBufferObj->Size, + GL_MAP_READ_BIT, ctx->Array.VAO->IndexBufferObj, MAP_INTERNAL); switch (type) { @@ -734,8 +735,7 @@ dump_element_buffer(struct gl_context *ctx, GLenum type) ; } - ctx->Driver.UnmapBuffer(ctx, ctx->Array.VAO->IndexBufferObj, - MAP_INTERNAL); + ctx->Driver.UnmapBuffer(ctx, ctx->Array.VAO->IndexBufferObj, MAP_INTERNAL); } #endif @@ -747,12 +747,12 @@ dump_element_buffer(struct gl_context *ctx, GLenum type) */ static void vbo_validated_drawrangeelements(struct gl_context *ctx, GLenum mode, - GLboolean index_bounds_valid, - GLuint start, GLuint end, - GLsizei count, GLenum type, - const GLvoid *indices, - GLint basevertex, GLuint numInstances, - GLuint baseInstance) + GLboolean index_bounds_valid, + GLuint start, GLuint end, + GLsizei count, GLenum type, + const GLvoid * indices, + GLint basevertex, GLuint numInstances, + GLuint baseInstance) { struct vbo_context *vbo = vbo_context(ctx); struct _mesa_index_buffer ib; @@ -785,7 +785,7 @@ vbo_validated_drawrangeelements(struct gl_context *ctx, GLenum mode, * successive primitives layed out linearly in the vertex arrays. * Unless the vertex arrays are all in a VBO (or locked as with * CVA), the OpenGL semantics imply that we need to re-read or - * re-upload the vertex data on each draw call. + * re-upload the vertex data on each draw call. * * In the case of hardware tnl, we want to avoid starting the * upload at zero, as it will mean every draw call uploads an @@ -823,11 +823,9 @@ vbo_validated_drawrangeelements(struct gl_context *ctx, GLenum mode, * Called by glDrawRangeElementsBaseVertex() in immediate mode. */ static void GLAPIENTRY -vbo_exec_DrawRangeElementsBaseVertex(GLenum mode, - GLuint start, GLuint end, - GLsizei count, GLenum type, - const GLvoid *indices, - GLint basevertex) +vbo_exec_DrawRangeElementsBaseVertex(GLenum mode, GLuint start, GLuint end, + GLsizei count, GLenum type, + const GLvoid * indices, GLint basevertex) { static GLuint warnCount = 0; GLboolean index_bounds_valid = GL_TRUE; @@ -841,16 +839,15 @@ vbo_exec_DrawRangeElementsBaseVertex(GLenum mode, if (MESA_VERBOSE & VERBOSE_DRAW) _mesa_debug(ctx, - "glDrawRangeElementsBaseVertex(%s, %u, %u, %d, %s, %p, %d)\n", - _mesa_enum_to_string(mode), start, end, count, - _mesa_enum_to_string(type), indices, basevertex); + "glDrawRangeElementsBaseVertex(%s, %u, %u, %d, %s, %p, %d)\n", + _mesa_enum_to_string(mode), start, end, count, + _mesa_enum_to_string(type), indices, basevertex); if (!_mesa_validate_DrawRangeElements(ctx, mode, start, end, count, type, indices)) return; - if ((int) end + basevertex < 0 || - start + basevertex >= max_element) { + if ((int) end + basevertex < 0 || start + basevertex >= max_element) { /* The application requested we draw using a range of indices that's * outside the bounds of the current VBO. This is invalid and appears * to give undefined results. The safest thing to do is to simply @@ -887,15 +884,13 @@ vbo_exec_DrawRangeElementsBaseVertex(GLenum mode, if (0) { printf("glDraw[Range]Elements{,BaseVertex}" - "(start %u, end %u, type 0x%x, count %d) ElemBuf %u, " - "base %d\n", - start, end, type, count, - ctx->Array.VAO->IndexBufferObj->Name, - basevertex); + "(start %u, end %u, type 0x%x, count %d) ElemBuf %u, " + "base %d\n", + start, end, type, count, + ctx->Array.VAO->IndexBufferObj->Name, basevertex); } - if ((int) start + basevertex < 0 || - end + basevertex >= max_element) + if ((int) start + basevertex < 0 || end + basevertex >= max_element) index_bounds_valid = GL_FALSE; #if 0 @@ -905,7 +900,7 @@ vbo_exec_DrawRangeElementsBaseVertex(GLenum mode, #endif vbo_validated_drawrangeelements(ctx, mode, index_bounds_valid, start, end, - count, type, indices, basevertex, 1, 0); + count, type, indices, basevertex, 1, 0); } @@ -914,7 +909,7 @@ vbo_exec_DrawRangeElementsBaseVertex(GLenum mode, */ static void GLAPIENTRY vbo_exec_DrawRangeElements(GLenum mode, GLuint start, GLuint end, - GLsizei count, GLenum type, const GLvoid *indices) + GLsizei count, GLenum type, const GLvoid * indices) { if (MESA_VERBOSE & VERBOSE_DRAW) { GET_CURRENT_CONTEXT(ctx); @@ -925,7 +920,7 @@ vbo_exec_DrawRangeElements(GLenum mode, GLuint start, GLuint end, } vbo_exec_DrawRangeElementsBaseVertex(mode, start, end, count, type, - indices, 0); + indices, 0); } @@ -934,7 +929,7 @@ vbo_exec_DrawRangeElements(GLenum mode, GLuint start, GLuint end, */ static void GLAPIENTRY vbo_exec_DrawElements(GLenum mode, GLsizei count, GLenum type, - const GLvoid *indices) + const GLvoid * indices) { GET_CURRENT_CONTEXT(ctx); @@ -947,7 +942,7 @@ vbo_exec_DrawElements(GLenum mode, GLsizei count, GLenum type, return; vbo_validated_drawrangeelements(ctx, mode, GL_FALSE, ~0, ~0, - count, type, indices, 0, 1, 0); + count, type, indices, 0, 1, 0); } @@ -956,7 +951,7 @@ vbo_exec_DrawElements(GLenum mode, GLsizei count, GLenum type, */ static void GLAPIENTRY vbo_exec_DrawElementsBaseVertex(GLenum mode, GLsizei count, GLenum type, - const GLvoid *indices, GLint basevertex) + const GLvoid * indices, GLint basevertex) { GET_CURRENT_CONTEXT(ctx); @@ -969,7 +964,7 @@ vbo_exec_DrawElementsBaseVertex(GLenum mode, GLsizei count, GLenum type, return; vbo_validated_drawrangeelements(ctx, mode, GL_FALSE, ~0, ~0, - count, type, indices, basevertex, 1, 0); + count, type, indices, basevertex, 1, 0); } @@ -978,7 +973,7 @@ vbo_exec_DrawElementsBaseVertex(GLenum mode, GLsizei count, GLenum type, */ static void GLAPIENTRY vbo_exec_DrawElementsInstanced(GLenum mode, GLsizei count, GLenum type, - const GLvoid *indices, GLsizei numInstances) + const GLvoid * indices, GLsizei numInstances) { GET_CURRENT_CONTEXT(ctx); @@ -992,7 +987,7 @@ vbo_exec_DrawElementsInstanced(GLenum mode, GLsizei count, GLenum type, return; vbo_validated_drawrangeelements(ctx, mode, GL_FALSE, ~0, ~0, - count, type, indices, 0, numInstances, 0); + count, type, indices, 0, numInstances, 0); } @@ -1000,14 +995,16 @@ vbo_exec_DrawElementsInstanced(GLenum mode, GLsizei count, GLenum type, * Called by glDrawElementsInstancedBaseVertex() in immediate mode. */ static void GLAPIENTRY -vbo_exec_DrawElementsInstancedBaseVertex(GLenum mode, GLsizei count, GLenum type, - const GLvoid *indices, GLsizei numInstances, - GLint basevertex) +vbo_exec_DrawElementsInstancedBaseVertex(GLenum mode, GLsizei count, + GLenum type, const GLvoid * indices, + GLsizei numInstances, + GLint basevertex) { GET_CURRENT_CONTEXT(ctx); if (MESA_VERBOSE & VERBOSE_DRAW) - _mesa_debug(ctx, "glDrawElementsInstancedBaseVertex(%s, %d, %s, %p, %d; %d)\n", + _mesa_debug(ctx, + "glDrawElementsInstancedBaseVertex(%s, %d, %s, %p, %d; %d)\n", _mesa_enum_to_string(mode), count, _mesa_enum_to_string(type), indices, numInstances, basevertex); @@ -1017,7 +1014,8 @@ vbo_exec_DrawElementsInstancedBaseVertex(GLenum mode, GLsizei count, GLenum type return; vbo_validated_drawrangeelements(ctx, mode, GL_FALSE, ~0, ~0, - count, type, indices, basevertex, numInstances, 0); + count, type, indices, + basevertex, numInstances, 0); } @@ -1025,14 +1023,18 @@ vbo_exec_DrawElementsInstancedBaseVertex(GLenum mode, GLsizei count, GLenum type * Called by glDrawElementsInstancedBaseInstance() in immediate mode. */ static void GLAPIENTRY -vbo_exec_DrawElementsInstancedBaseInstance(GLenum mode, GLsizei count, GLenum type, - const GLvoid *indices, GLsizei numInstances, +vbo_exec_DrawElementsInstancedBaseInstance(GLenum mode, GLsizei count, + GLenum type, + const GLvoid *indices, + GLsizei numInstances, GLuint baseInstance) { GET_CURRENT_CONTEXT(ctx); if (MESA_VERBOSE & VERBOSE_DRAW) - _mesa_debug(ctx, "glDrawElementsInstancedBaseInstance(%s, %d, %s, %p, %d, %d)\n", + _mesa_debug(ctx, + "glDrawElementsInstancedBaseInstance" + "(%s, %d, %s, %p, %d, %d)\n", _mesa_enum_to_string(mode), count, _mesa_enum_to_string(type), indices, numInstances, baseInstance); @@ -1051,14 +1053,20 @@ vbo_exec_DrawElementsInstancedBaseInstance(GLenum mode, GLsizei count, GLenum ty * Called by glDrawElementsInstancedBaseVertexBaseInstance() in immediate mode. */ static void GLAPIENTRY -vbo_exec_DrawElementsInstancedBaseVertexBaseInstance(GLenum mode, GLsizei count, GLenum type, - const GLvoid *indices, GLsizei numInstances, - GLint basevertex, GLuint baseInstance) +vbo_exec_DrawElementsInstancedBaseVertexBaseInstance(GLenum mode, + GLsizei count, + GLenum type, + const GLvoid *indices, + GLsizei numInstances, + GLint basevertex, + GLuint baseInstance) { GET_CURRENT_CONTEXT(ctx); if (MESA_VERBOSE & VERBOSE_DRAW) - _mesa_debug(ctx, "glDrawElementsInstancedBaseVertexBaseInstance(%s, %d, %s, %p, %d, %d, %d)\n", + _mesa_debug(ctx, + "glDrawElementsInstancedBaseVertexBaseInstance" + "(%s, %d, %s, %p, %d, %d, %d)\n", _mesa_enum_to_string(mode), count, _mesa_enum_to_string(type), indices, numInstances, basevertex, baseInstance); @@ -1068,8 +1076,8 @@ vbo_exec_DrawElementsInstancedBaseVertexBaseInstance(GLenum mode, GLsizei count, return; vbo_validated_drawrangeelements(ctx, mode, GL_FALSE, ~0, ~0, - count, type, indices, basevertex, numInstances, - baseInstance); + count, type, indices, basevertex, + numInstances, baseInstance); } @@ -1080,10 +1088,9 @@ vbo_exec_DrawElementsInstancedBaseVertexBaseInstance(GLenum mode, GLsizei count, */ static void vbo_validated_multidrawelements(struct gl_context *ctx, GLenum mode, - const GLsizei *count, GLenum type, - const GLvoid * const *indices, - GLsizei primcount, - const GLint *basevertex) + const GLsizei *count, GLenum type, + const GLvoid * const *indices, + GLsizei primcount, const GLint *basevertex) { struct vbo_context *vbo = vbo_context(ctx); struct _mesa_index_buffer ib; @@ -1104,12 +1111,12 @@ vbo_validated_multidrawelements(struct gl_context *ctx, GLenum mode, vbo_bind_arrays(ctx); - min_index_ptr = (uintptr_t)indices[0]; + min_index_ptr = (uintptr_t) indices[0]; max_index_ptr = 0; for (i = 0; i < primcount; i++) { - min_index_ptr = MIN2(min_index_ptr, (uintptr_t)indices[i]); - max_index_ptr = MAX2(max_index_ptr, (uintptr_t)indices[i] + - index_type_size * count[i]); + min_index_ptr = MIN2(min_index_ptr, (uintptr_t) indices[i]); + max_index_ptr = MAX2(max_index_ptr, (uintptr_t) indices[i] + + index_type_size * count[i]); } /* Check if we can handle this thing as a bunch of index offsets from the @@ -1120,10 +1127,11 @@ vbo_validated_multidrawelements(struct gl_context *ctx, GLenum mode, */ if (index_type_size != 1) { for (i = 0; i < primcount; i++) { - if ((((uintptr_t)indices[i] - min_index_ptr) % index_type_size) != 0) { - fallback = GL_TRUE; - break; - } + if ((((uintptr_t) indices[i] - min_index_ptr) % index_type_size) != + 0) { + fallback = GL_TRUE; + break; + } } } @@ -1148,58 +1156,59 @@ vbo_validated_multidrawelements(struct gl_context *ctx, GLenum mode, ib.count = (max_index_ptr - min_index_ptr) / index_type_size; ib.type = type; ib.obj = ctx->Array.VAO->IndexBufferObj; - ib.ptr = (void *)min_index_ptr; + ib.ptr = (void *) min_index_ptr; for (i = 0; i < primcount; i++) { - prim[i].begin = (i == 0); - prim[i].end = (i == primcount - 1); - prim[i].weak = 0; - prim[i].pad = 0; - prim[i].mode = mode; - prim[i].start = ((uintptr_t)indices[i] - min_index_ptr) / index_type_size; - prim[i].count = count[i]; - prim[i].indexed = 1; + prim[i].begin = (i == 0); + prim[i].end = (i == primcount - 1); + prim[i].weak = 0; + prim[i].pad = 0; + prim[i].mode = mode; + prim[i].start = + ((uintptr_t) indices[i] - min_index_ptr) / index_type_size; + prim[i].count = count[i]; + prim[i].indexed = 1; prim[i].num_instances = 1; prim[i].base_instance = 0; prim[i].draw_id = i; prim[i].is_indirect = 0; - if (basevertex != NULL) - prim[i].basevertex = basevertex[i]; - else - prim[i].basevertex = 0; + if (basevertex != NULL) + prim[i].basevertex = basevertex[i]; + else + prim[i].basevertex = 0; } vbo->draw_prims(ctx, prim, primcount, &ib, false, ~0, ~0, NULL, 0, NULL); - } else { + } + else { /* render one prim at a time */ for (i = 0; i < primcount; i++) { - if (count[i] == 0) - continue; - ib.count = count[i]; - ib.type = type; - ib.obj = ctx->Array.VAO->IndexBufferObj; - ib.ptr = indices[i]; - - prim[0].begin = 1; - prim[0].end = 1; - prim[0].weak = 0; - prim[0].pad = 0; - prim[0].mode = mode; - prim[0].start = 0; - prim[0].count = count[i]; - prim[0].indexed = 1; + if (count[i] == 0) + continue; + ib.count = count[i]; + ib.type = type; + ib.obj = ctx->Array.VAO->IndexBufferObj; + ib.ptr = indices[i]; + + prim[0].begin = 1; + prim[0].end = 1; + prim[0].weak = 0; + prim[0].pad = 0; + prim[0].mode = mode; + prim[0].start = 0; + prim[0].count = count[i]; + prim[0].indexed = 1; prim[0].num_instances = 1; prim[0].base_instance = 0; prim[0].draw_id = i; prim[0].is_indirect = 0; - if (basevertex != NULL) - prim[0].basevertex = basevertex[i]; - else - prim[0].basevertex = 0; + if (basevertex != NULL) + prim[0].basevertex = basevertex[i]; + else + prim[0].basevertex = 0; - vbo->draw_prims(ctx, prim, 1, &ib, - false, ~0, ~0, NULL, 0, NULL); + vbo->draw_prims(ctx, prim, 1, &ib, false, ~0, ~0, NULL, 0, NULL); } } @@ -1213,9 +1222,8 @@ vbo_validated_multidrawelements(struct gl_context *ctx, GLenum mode, static void GLAPIENTRY vbo_exec_MultiDrawElements(GLenum mode, - const GLsizei *count, GLenum type, - const GLvoid * const *indices, - GLsizei primcount) + const GLsizei *count, GLenum type, + const GLvoid * const *indices, GLsizei primcount) { GET_CURRENT_CONTEXT(ctx); @@ -1224,16 +1232,16 @@ vbo_exec_MultiDrawElements(GLenum mode, return; vbo_validated_multidrawelements(ctx, mode, count, type, indices, primcount, - NULL); + NULL); } static void GLAPIENTRY vbo_exec_MultiDrawElementsBaseVertex(GLenum mode, - const GLsizei *count, GLenum type, - const GLvoid * const *indices, - GLsizei primcount, - const GLsizei *basevertex) + const GLsizei *count, GLenum type, + const GLvoid * const *indices, + GLsizei primcount, + const GLsizei *basevertex) { GET_CURRENT_CONTEXT(ctx); @@ -1242,9 +1250,10 @@ vbo_exec_MultiDrawElementsBaseVertex(GLenum mode, return; vbo_validated_multidrawelements(ctx, mode, count, type, indices, primcount, - basevertex); + basevertex); } + static void vbo_draw_transform_feedback(struct gl_context *ctx, GLenum mode, struct gl_transform_feedback_object *obj, @@ -1261,7 +1270,8 @@ vbo_draw_transform_feedback(struct gl_context *ctx, GLenum mode, if (ctx->Driver.GetTransformFeedbackVertexCount && (ctx->Const.AlwaysUseGetTransformFeedbackVertexCount || !_mesa_all_varyings_in_vbos(ctx->Array.VAO))) { - GLsizei n = ctx->Driver.GetTransformFeedbackVertexCount(ctx, obj, stream); + GLsizei n = + ctx->Driver.GetTransformFeedbackVertexCount(ctx, obj, stream); vbo_draw_arrays(ctx, mode, 0, n, numInstances, 0); return; } @@ -1281,14 +1291,14 @@ vbo_draw_transform_feedback(struct gl_context *ctx, GLenum mode, * (like in DrawArrays), but we have no way to know how many vertices * will be rendered. */ - vbo->draw_prims(ctx, prim, 1, NULL, - GL_FALSE, ~0, ~0, obj, stream, NULL); + vbo->draw_prims(ctx, prim, 1, NULL, GL_FALSE, ~0, ~0, obj, stream, NULL); if (MESA_DEBUG_FLAGS & DEBUG_ALWAYS_FLUSH) { _mesa_flush(ctx); } } + /** * Like DrawArrays, but take the count from a transform feedback object. * \param mode GL_POINTS, GL_LINES, GL_TRIANGLE_STRIP, etc. @@ -1311,6 +1321,7 @@ vbo_exec_DrawTransformFeedback(GLenum mode, GLuint name) vbo_draw_transform_feedback(ctx, mode, obj, 0, 1); } + static void GLAPIENTRY vbo_exec_DrawTransformFeedbackStream(GLenum mode, GLuint name, GLuint stream) { @@ -1325,6 +1336,7 @@ vbo_exec_DrawTransformFeedbackStream(GLenum mode, GLuint name, GLuint stream) vbo_draw_transform_feedback(ctx, mode, obj, stream, 1); } + static void GLAPIENTRY vbo_exec_DrawTransformFeedbackInstanced(GLenum mode, GLuint name, GLsizei primcount) @@ -1340,9 +1352,11 @@ vbo_exec_DrawTransformFeedbackInstanced(GLenum mode, GLuint name, vbo_draw_transform_feedback(ctx, mode, obj, 0, primcount); } + static void GLAPIENTRY vbo_exec_DrawTransformFeedbackStreamInstanced(GLenum mode, GLuint name, - GLuint stream, GLsizei primcount) + GLuint stream, + GLsizei primcount) { GET_CURRENT_CONTEXT(ctx); struct gl_transform_feedback_object *obj = @@ -1356,6 +1370,7 @@ vbo_exec_DrawTransformFeedbackStreamInstanced(GLenum mode, GLuint name, vbo_draw_transform_feedback(ctx, mode, obj, stream, primcount); } + static void vbo_validated_drawarraysindirect(struct gl_context *ctx, GLenum mode, const GLvoid *indirect) @@ -1365,14 +1380,15 @@ vbo_validated_drawarraysindirect(struct gl_context *ctx, vbo_bind_arrays(ctx); vbo->draw_indirect_prims(ctx, mode, - ctx->DrawIndirectBuffer, (GLsizeiptr)indirect, - 1 /* draw_count */, 16 /* stride */, + ctx->DrawIndirectBuffer, (GLsizeiptr) indirect, + 1 /* draw_count */ , 16 /* stride */ , NULL, 0, NULL); if (MESA_DEBUG_FLAGS & DEBUG_ALWAYS_FLUSH) _mesa_flush(ctx); } + static void vbo_validated_multidrawarraysindirect(struct gl_context *ctx, GLenum mode, @@ -1380,22 +1396,21 @@ vbo_validated_multidrawarraysindirect(struct gl_context *ctx, GLsizei primcount, GLsizei stride) { struct vbo_context *vbo = vbo_context(ctx); - GLsizeiptr offset = (GLsizeiptr)indirect; + GLsizeiptr offset = (GLsizeiptr) indirect; if (primcount == 0) return; vbo_bind_arrays(ctx); - vbo->draw_indirect_prims(ctx, mode, - ctx->DrawIndirectBuffer, offset, - primcount, stride, - NULL, 0, NULL); + vbo->draw_indirect_prims(ctx, mode, ctx->DrawIndirectBuffer, offset, + primcount, stride, NULL, 0, NULL); if (MESA_DEBUG_FLAGS & DEBUG_ALWAYS_FLUSH) _mesa_flush(ctx); } + static void vbo_validated_drawelementsindirect(struct gl_context *ctx, GLenum mode, GLenum type, @@ -1406,21 +1421,21 @@ vbo_validated_drawelementsindirect(struct gl_context *ctx, vbo_bind_arrays(ctx); - ib.count = 0; /* unknown */ + ib.count = 0; /* unknown */ ib.type = type; ib.obj = ctx->Array.VAO->IndexBufferObj; ib.ptr = NULL; vbo->draw_indirect_prims(ctx, mode, - ctx->DrawIndirectBuffer, (GLsizeiptr)indirect, - 1 /* draw_count */, 20 /* stride */, - NULL, 0, - &ib); + ctx->DrawIndirectBuffer, (GLsizeiptr) indirect, + 1 /* draw_count */ , 20 /* stride */ , + NULL, 0, &ib); if (MESA_DEBUG_FLAGS & DEBUG_ALWAYS_FLUSH) _mesa_flush(ctx); } + static void vbo_validated_multidrawelementsindirect(struct gl_context *ctx, GLenum mode, GLenum type, @@ -1429,7 +1444,7 @@ vbo_validated_multidrawelementsindirect(struct gl_context *ctx, { struct vbo_context *vbo = vbo_context(ctx); struct _mesa_index_buffer ib; - GLsizeiptr offset = (GLsizeiptr)indirect; + GLsizeiptr offset = (GLsizeiptr) indirect; if (primcount == 0) return; @@ -1438,21 +1453,20 @@ vbo_validated_multidrawelementsindirect(struct gl_context *ctx, /* NOTE: IndexBufferObj is guaranteed to be a VBO. */ - ib.count = 0; /* unknown */ + ib.count = 0; /* unknown */ ib.type = type; ib.obj = ctx->Array.VAO->IndexBufferObj; ib.ptr = NULL; vbo->draw_indirect_prims(ctx, mode, ctx->DrawIndirectBuffer, offset, - primcount, stride, - NULL, 0, - &ib); + primcount, stride, NULL, 0, &ib); if (MESA_DEBUG_FLAGS & DEBUG_ALWAYS_FLUSH) _mesa_flush(ctx); } + /** * Like [Multi]DrawArrays/Elements, but they take most arguments from * a buffer object. @@ -1472,9 +1486,9 @@ vbo_exec_DrawArraysIndirect(GLenum mode, const GLvoid *indirect) vbo_validated_drawarraysindirect(ctx, mode, indirect); } + static void GLAPIENTRY -vbo_exec_DrawElementsIndirect(GLenum mode, GLenum type, - const GLvoid *indirect) +vbo_exec_DrawElementsIndirect(GLenum mode, GLenum type, const GLvoid *indirect) { GET_CURRENT_CONTEXT(ctx); @@ -1489,9 +1503,9 @@ vbo_exec_DrawElementsIndirect(GLenum mode, GLenum type, vbo_validated_drawelementsindirect(ctx, mode, type, indirect); } + static void GLAPIENTRY -vbo_exec_MultiDrawArraysIndirect(GLenum mode, - const GLvoid *indirect, +vbo_exec_MultiDrawArraysIndirect(GLenum mode, const GLvoid *indirect, GLsizei primcount, GLsizei stride) { GET_CURRENT_CONTEXT(ctx); @@ -1502,18 +1516,17 @@ vbo_exec_MultiDrawArraysIndirect(GLenum mode, /* If <stride> is zero, the array elements are treated as tightly packed. */ if (stride == 0) - stride = 4 * sizeof(GLuint); /* sizeof(DrawArraysIndirectCommand) */ + stride = 4 * sizeof(GLuint); /* sizeof(DrawArraysIndirectCommand) */ - if (!_mesa_validate_MultiDrawArraysIndirect(ctx, mode, - indirect, + if (!_mesa_validate_MultiDrawArraysIndirect(ctx, mode, indirect, primcount, stride)) return; - vbo_validated_multidrawarraysindirect(ctx, mode, - indirect, + vbo_validated_multidrawarraysindirect(ctx, mode, indirect, primcount, stride); } + static void GLAPIENTRY vbo_exec_MultiDrawElementsIndirect(GLenum mode, GLenum type, const GLvoid *indirect, @@ -1528,18 +1541,17 @@ vbo_exec_MultiDrawElementsIndirect(GLenum mode, GLenum type, /* If <stride> is zero, the array elements are treated as tightly packed. */ if (stride == 0) - stride = 5 * sizeof(GLuint); /* sizeof(DrawElementsIndirectCommand) */ + stride = 5 * sizeof(GLuint); /* sizeof(DrawElementsIndirectCommand) */ - if (!_mesa_validate_MultiDrawElementsIndirect(ctx, mode, type, - indirect, + if (!_mesa_validate_MultiDrawElementsIndirect(ctx, mode, type, indirect, primcount, stride)) return; - vbo_validated_multidrawelementsindirect(ctx, mode, type, - indirect, + vbo_validated_multidrawelementsindirect(ctx, mode, type, indirect, primcount, stride); } + static void vbo_validated_multidrawarraysindirectcount(struct gl_context *ctx, GLenum mode, @@ -1559,13 +1571,13 @@ vbo_validated_multidrawarraysindirectcount(struct gl_context *ctx, vbo->draw_indirect_prims(ctx, mode, ctx->DrawIndirectBuffer, offset, maxdrawcount, stride, - ctx->ParameterBuffer, drawcount, - NULL); + ctx->ParameterBuffer, drawcount, NULL); if (MESA_DEBUG_FLAGS & DEBUG_ALWAYS_FLUSH) _mesa_flush(ctx); } + static void vbo_validated_multidrawelementsindirectcount(struct gl_context *ctx, GLenum mode, GLenum type, @@ -1576,7 +1588,7 @@ vbo_validated_multidrawelementsindirectcount(struct gl_context *ctx, { struct vbo_context *vbo = vbo_context(ctx); struct _mesa_index_buffer ib; - GLsizeiptr offset = (GLsizeiptr)indirect; + GLsizeiptr offset = (GLsizeiptr) indirect; if (maxdrawcount == 0) return; @@ -1585,7 +1597,7 @@ vbo_validated_multidrawelementsindirectcount(struct gl_context *ctx, /* NOTE: IndexBufferObj is guaranteed to be a VBO. */ - ib.count = 0; /* unknown */ + ib.count = 0; /* unknown */ ib.type = type; ib.obj = ctx->Array.VAO->IndexBufferObj; ib.ptr = NULL; @@ -1593,16 +1605,15 @@ vbo_validated_multidrawelementsindirectcount(struct gl_context *ctx, vbo->draw_indirect_prims(ctx, mode, ctx->DrawIndirectBuffer, offset, maxdrawcount, stride, - ctx->ParameterBuffer, drawcount, - &ib); + ctx->ParameterBuffer, drawcount, &ib); if (MESA_DEBUG_FLAGS & DEBUG_ALWAYS_FLUSH) _mesa_flush(ctx); } + static void GLAPIENTRY -vbo_exec_MultiDrawArraysIndirectCount(GLenum mode, - GLintptr indirect, +vbo_exec_MultiDrawArraysIndirectCount(GLenum mode, GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride) { @@ -1612,27 +1623,26 @@ vbo_exec_MultiDrawArraysIndirectCount(GLenum mode, _mesa_debug(ctx, "glMultiDrawArraysIndirectCountARB" "(%s, %lx, %lx, %i, %i)\n", _mesa_enum_to_string(mode), - (unsigned long)indirect, (unsigned long)drawcount, + (unsigned long) indirect, (unsigned long) drawcount, maxdrawcount, stride); /* If <stride> is zero, the array elements are treated as tightly packed. */ if (stride == 0) - stride = 4 * sizeof(GLuint); /* sizeof(DrawArraysIndirectCommand) */ + stride = 4 * sizeof(GLuint); /* sizeof(DrawArraysIndirectCommand) */ if (!_mesa_validate_MultiDrawArraysIndirectCount(ctx, mode, indirect, drawcount, maxdrawcount, stride)) return; - vbo_validated_multidrawarraysindirectcount(ctx, mode, - indirect, drawcount, + vbo_validated_multidrawarraysindirectcount(ctx, mode, indirect, drawcount, maxdrawcount, stride); } + static void GLAPIENTRY vbo_exec_MultiDrawElementsIndirectCount(GLenum mode, GLenum type, - GLintptr indirect, - GLintptr drawcount, + GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride) { GET_CURRENT_CONTEXT(ctx); @@ -1641,21 +1651,21 @@ vbo_exec_MultiDrawElementsIndirectCount(GLenum mode, GLenum type, _mesa_debug(ctx, "glMultiDrawElementsIndirectCountARB" "(%s, %s, %lx, %lx, %i, %i)\n", _mesa_enum_to_string(mode), _mesa_enum_to_string(type), - (unsigned long)indirect, (unsigned long)drawcount, + (unsigned long) indirect, (unsigned long) drawcount, maxdrawcount, stride); /* If <stride> is zero, the array elements are treated as tightly packed. */ if (stride == 0) - stride = 5 * sizeof(GLuint); /* sizeof(DrawElementsIndirectCommand) */ + stride = 5 * sizeof(GLuint); /* sizeof(DrawElementsIndirectCommand) */ if (!_mesa_validate_MultiDrawElementsIndirectCount(ctx, mode, type, indirect, drawcount, maxdrawcount, stride)) return; - vbo_validated_multidrawelementsindirectcount(ctx, mode, type, - indirect, drawcount, - maxdrawcount, stride); + vbo_validated_multidrawelementsindirectcount(ctx, mode, type, indirect, + drawcount, maxdrawcount, + stride); } @@ -1684,18 +1694,24 @@ vbo_initialize_exec_dispatch(const struct gl_context *ctx, if (ctx->API != API_OPENGLES && ctx->Extensions.ARB_draw_elements_base_vertex) { SET_DrawElementsBaseVertex(exec, vbo_exec_DrawElementsBaseVertex); - SET_MultiDrawElementsBaseVertex(exec, vbo_exec_MultiDrawElementsBaseVertex); + SET_MultiDrawElementsBaseVertex(exec, + vbo_exec_MultiDrawElementsBaseVertex); if (_mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx)) { - SET_DrawRangeElementsBaseVertex(exec, vbo_exec_DrawRangeElementsBaseVertex); - SET_DrawElementsInstancedBaseVertex(exec, vbo_exec_DrawElementsInstancedBaseVertex); + SET_DrawRangeElementsBaseVertex(exec, + vbo_exec_DrawRangeElementsBaseVertex); + SET_DrawElementsInstancedBaseVertex(exec, + vbo_exec_DrawElementsInstancedBaseVertex); } } if (_mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx)) { - SET_DrawArraysInstancedBaseInstance(exec, vbo_exec_DrawArraysInstancedBaseInstance); - SET_DrawElementsInstancedBaseInstance(exec, vbo_exec_DrawElementsInstancedBaseInstance); - SET_DrawElementsInstancedBaseVertexBaseInstance(exec, vbo_exec_DrawElementsInstancedBaseVertexBaseInstance); + SET_DrawArraysInstancedBaseInstance(exec, + vbo_exec_DrawArraysInstancedBaseInstance); + SET_DrawElementsInstancedBaseInstance(exec, + vbo_exec_DrawElementsInstancedBaseInstance); + SET_DrawElementsInstancedBaseVertexBaseInstance(exec, + vbo_exec_DrawElementsInstancedBaseVertexBaseInstance); } if (ctx->API == API_OPENGL_CORE || _mesa_is_gles31(ctx)) { @@ -1706,8 +1722,10 @@ vbo_initialize_exec_dispatch(const struct gl_context *ctx, if (ctx->API == API_OPENGL_CORE) { SET_MultiDrawArraysIndirect(exec, vbo_exec_MultiDrawArraysIndirect); SET_MultiDrawElementsIndirect(exec, vbo_exec_MultiDrawElementsIndirect); - SET_MultiDrawArraysIndirectCountARB(exec, vbo_exec_MultiDrawArraysIndirectCount); - SET_MultiDrawElementsIndirectCountARB(exec, vbo_exec_MultiDrawElementsIndirectCount); + SET_MultiDrawArraysIndirectCountARB(exec, + vbo_exec_MultiDrawArraysIndirectCount); + SET_MultiDrawElementsIndirectCountARB(exec, + vbo_exec_MultiDrawElementsIndirectCount); } if (_mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx)) { @@ -1717,9 +1735,12 @@ vbo_initialize_exec_dispatch(const struct gl_context *ctx, if (_mesa_is_desktop_gl(ctx)) { SET_DrawTransformFeedback(exec, vbo_exec_DrawTransformFeedback); - SET_DrawTransformFeedbackStream(exec, vbo_exec_DrawTransformFeedbackStream); - SET_DrawTransformFeedbackInstanced(exec, vbo_exec_DrawTransformFeedbackInstanced); - SET_DrawTransformFeedbackStreamInstanced(exec, vbo_exec_DrawTransformFeedbackStreamInstanced); + SET_DrawTransformFeedbackStream(exec, + vbo_exec_DrawTransformFeedbackStream); + SET_DrawTransformFeedbackInstanced(exec, + vbo_exec_DrawTransformFeedbackInstanced); + SET_DrawTransformFeedbackStreamInstanced(exec, + vbo_exec_DrawTransformFeedbackStreamInstanced); } } @@ -1737,6 +1758,7 @@ _mesa_DrawArrays(GLenum mode, GLint first, GLsizei count) vbo_exec_DrawArrays(mode, first, count); } + void GLAPIENTRY _mesa_DrawArraysInstanced(GLenum mode, GLint first, GLsizei count, GLsizei primcount) @@ -1744,6 +1766,7 @@ _mesa_DrawArraysInstanced(GLenum mode, GLint first, GLsizei count, vbo_exec_DrawArraysInstanced(mode, first, count, primcount); } + void GLAPIENTRY _mesa_DrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices) @@ -1754,7 +1777,7 @@ _mesa_DrawElements(GLenum mode, GLsizei count, GLenum type, void GLAPIENTRY _mesa_DrawElementsBaseVertex(GLenum mode, GLsizei count, GLenum type, - const GLvoid *indices, GLint basevertex) + const GLvoid *indices, GLint basevertex) { vbo_exec_DrawElementsBaseVertex(mode, count, type, indices, basevertex); } @@ -1762,7 +1785,7 @@ _mesa_DrawElementsBaseVertex(GLenum mode, GLsizei count, GLenum type, void GLAPIENTRY _mesa_DrawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count, - GLenum type, const GLvoid *indices) + GLenum type, const GLvoid * indices) { vbo_exec_DrawRangeElements(mode, start, end, count, type, indices); } @@ -1770,17 +1793,17 @@ _mesa_DrawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count, void GLAPIENTRY _mesa_DrawRangeElementsBaseVertex(GLenum mode, GLuint start, GLuint end, - GLsizei count, GLenum type, - const GLvoid *indices, GLint basevertex) + GLsizei count, GLenum type, + const GLvoid *indices, GLint basevertex) { vbo_exec_DrawRangeElementsBaseVertex(mode, start, end, count, type, - indices, basevertex); + indices, basevertex); } void GLAPIENTRY _mesa_MultiDrawElementsEXT(GLenum mode, const GLsizei *count, GLenum type, - const GLvoid **indices, GLsizei primcount) + const GLvoid ** indices, GLsizei primcount) { vbo_exec_MultiDrawElements(mode, count, type, indices, primcount); } @@ -1788,14 +1811,15 @@ _mesa_MultiDrawElementsEXT(GLenum mode, const GLsizei *count, GLenum type, void GLAPIENTRY _mesa_MultiDrawElementsBaseVertex(GLenum mode, - const GLsizei *count, GLenum type, - const GLvoid **indices, GLsizei primcount, - const GLint *basevertex) + const GLsizei *count, GLenum type, + const GLvoid **indices, GLsizei primcount, + const GLint *basevertex) { vbo_exec_MultiDrawElementsBaseVertex(mode, count, type, indices, - primcount, basevertex); + primcount, basevertex); } + void GLAPIENTRY _mesa_DrawTransformFeedback(GLenum mode, GLuint name) { |