X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fvbo%2Fvbo_rebase.c;h=9068ae240a6bae1361dc8e3ebbc1352825edc9e5;hb=f9995b30756140724f41daf963fa06167912be7f;hp=55a82ee369e46478d509f6a3c7c16c2e8ebe04c0;hpb=5e77b61e393144e76fe0a280c3c5da2d36703bbb;p=mesa.git diff --git a/src/mesa/vbo/vbo_rebase.c b/src/mesa/vbo/vbo_rebase.c index 55a82ee369e..9068ae240a6 100644 --- a/src/mesa/vbo/vbo_rebase.c +++ b/src/mesa/vbo/vbo_rebase.c @@ -85,6 +85,18 @@ GLboolean vbo_all_varyings_in_vbos( const struct gl_client_array *arrays[] ) return GL_TRUE; } +GLboolean vbo_any_varyings_in_vbos( const struct gl_client_array *arrays[] ) +{ + GLuint i; + + for (i = 0; i < VERT_ATTRIB_MAX; i++) + if (arrays[i]->StrideB && + arrays[i]->BufferObj->Name != 0) + return GL_TRUE; + + return GL_FALSE; +} + /* Adjust primitives, indices and vertex definitions so that min_index * becomes zero. There are lots of reasons for wanting to do this, eg: * @@ -104,7 +116,7 @@ GLboolean vbo_all_varyings_in_vbos( const struct gl_client_array *arrays[] ) * - can't save time by trying to upload half a vbo - typically it is * all or nothing. */ -void vbo_rebase_prims( GLcontext *ctx, +void vbo_rebase_prims( struct gl_context *ctx, const struct gl_client_array *arrays[], const struct _mesa_prim *prim, GLuint nr_prims, @@ -124,7 +136,7 @@ void vbo_rebase_prims( GLcontext *ctx, assert(min_index != 0); if (0) - _mesa_printf("%s %d..%d\n", __FUNCTION__, min_index, max_index); + printf("%s %d..%d\n", __FUNCTION__, min_index, max_index); /* XXX this path is disabled for now. @@ -134,7 +146,7 @@ void vbo_rebase_prims( GLcontext *ctx, /* If we can just tell the hardware or the TNL to interpret our * indices with a different base, do so. */ - tmp_prims = (struct _mesa_prim *)_mesa_malloc(sizeof(*prim) * nr_prims); + tmp_prims = (struct _mesa_prim *)malloc(sizeof(*prim) * nr_prims); for (i = 0; i < nr_prims; i++) { tmp_prims[i] = prim[i]; @@ -187,7 +199,7 @@ void vbo_rebase_prims( GLcontext *ctx, else { /* Otherwise the primitives need adjustment. */ - tmp_prims = (struct _mesa_prim *)_mesa_malloc(sizeof(*prim) * nr_prims); + tmp_prims = (struct _mesa_prim *)malloc(sizeof(*prim) * nr_prims); for (i = 0; i < nr_prims; i++) { /* If this fails, it could indicate an application error: @@ -229,10 +241,10 @@ void vbo_rebase_prims( GLcontext *ctx, max_index - min_index ); if (tmp_indices) - _mesa_free(tmp_indices); + free(tmp_indices); if (tmp_prims) - _mesa_free(tmp_prims); + free(tmp_prims); }