mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 16:08:04 +02:00
vbo: Make sure the internal VAO's stay within limits.
Reviewed-by: Brian Paul <brianp@vmware.com> Signed-off-by: Mathias Fröhlich <Mathias.Froehlich@web.de>
This commit is contained in:
parent
1a131aaf4b
commit
4a8ef1f5d4
2 changed files with 6 additions and 1 deletions
|
|
@ -200,8 +200,10 @@ vbo_exec_bind_arrays(struct gl_context *ctx)
|
|||
assert((~vao_enabled & vao->_Enabled) == 0);
|
||||
|
||||
/* Bind the buffer object */
|
||||
const GLuint stride = exec->vtx.vertex_size*sizeof(GLfloat);
|
||||
assert(stride <= ctx->Const.MaxVertexAttribStride);
|
||||
_mesa_bind_vertex_buffer(ctx, vao, 0, exec->vtx.bufferobj, buffer_offset,
|
||||
exec->vtx.vertex_size*sizeof(GLfloat), false);
|
||||
stride, false);
|
||||
|
||||
/* Retrieve the mapping from VBO_ATTRIB to VERT_ATTRIB space
|
||||
* Note that the position/generic0 aliasing is done in the VAO.
|
||||
|
|
@ -217,6 +219,7 @@ vbo_exec_bind_arrays(struct gl_context *ctx)
|
|||
const GLenum16 type = exec->vtx.attrtype[vbo_attr];
|
||||
const GLuint offset = (GLuint)((GLbyte *)exec->vtx.attrptr[vbo_attr] -
|
||||
(GLbyte *)exec->vtx.vertex);
|
||||
assert(offset <= ctx->Const.MaxVertexAttribRelativeOffset);
|
||||
|
||||
/* Set and enable */
|
||||
_vbo_set_attrib_format(ctx, vao, vao_attr, buffer_offset,
|
||||
|
|
|
|||
|
|
@ -493,6 +493,7 @@ update_vao(struct gl_context *ctx,
|
|||
*vao = _mesa_new_vao(ctx, ~((GLuint)0));
|
||||
|
||||
/* Bind the buffer object at binding point 0 */
|
||||
assert(stride <= ctx->Const.MaxVertexAttribStride);
|
||||
_mesa_bind_vertex_buffer(ctx, *vao, 0, bo, buffer_offset, stride, false);
|
||||
|
||||
/* Retrieve the mapping from VBO_ATTRIB to VERT_ATTRIB space
|
||||
|
|
@ -504,6 +505,7 @@ update_vao(struct gl_context *ctx,
|
|||
while (mask) {
|
||||
const int vao_attr = u_bit_scan(&mask);
|
||||
const GLubyte vbo_attr = vao_to_vbo_map[vao_attr];
|
||||
assert(offset[vbo_attr] <= ctx->Const.MaxVertexAttribRelativeOffset);
|
||||
|
||||
_vbo_set_attrib_format(ctx, *vao, vao_attr, buffer_offset,
|
||||
size[vbo_attr], type[vbo_attr], offset[vbo_attr]);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue