diff options
Diffstat (limited to 'src/mesa/drivers')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_draw_upload.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_draw_upload.c b/src/mesa/drivers/dri/i965/brw_draw_upload.c index b0042a5449..8c4e1bd569 100644 --- a/src/mesa/drivers/dri/i965/brw_draw_upload.c +++ b/src/mesa/drivers/dri/i965/brw_draw_upload.c @@ -583,7 +583,10 @@ void brw_upload_indices( struct brw_context *brw, index_buffer->ptr, bufferobj); } else { - if (((1 << get_index_type(index_buffer->type)) - 1) & offset) { + /* If the index buffer isn't aligned to its element size, we have to + * rebase it into a temporary. + */ + if ((get_size(index_buffer->type) - 1) & offset) { struct gl_buffer_object *vbo; GLuint voffset; GLubyte *map = ctx->Driver.MapBuffer(ctx, |