st/mesa: GL_ARB_instanced_arrays support
This commit is contained in:
@@ -387,9 +387,16 @@ setup_interleaved_attribs(struct gl_context *ctx,
|
||||
vbuffer->max_index = max_index;
|
||||
}
|
||||
|
||||
/*
|
||||
if (arrays[mesaAttr]->InstanceDivisor)
|
||||
vbuffer[attr].max_index = arrays[mesaAttr]->_MaxElement;
|
||||
else
|
||||
vbuffer[attr].max_index = max_index;
|
||||
*/
|
||||
|
||||
velements[attr].src_offset =
|
||||
(unsigned) (arrays[mesaAttr]->Ptr - offset0);
|
||||
velements[attr].instance_divisor = 0;
|
||||
velements[attr].instance_divisor = arrays[mesaAttr]->InstanceDivisor;
|
||||
velements[attr].vertex_buffer_index = 0;
|
||||
velements[attr].src_format =
|
||||
st_pipe_vertex_format(arrays[mesaAttr]->Type,
|
||||
@@ -481,9 +488,13 @@ setup_non_interleaved_attribs(struct gl_context *ctx,
|
||||
|
||||
/* common-case setup */
|
||||
vbuffer[attr].stride = stride; /* in bytes */
|
||||
if (arrays[mesaAttr]->InstanceDivisor)
|
||||
vbuffer[attr].max_index = arrays[mesaAttr]->_MaxElement;
|
||||
else
|
||||
vbuffer[attr].max_index = max_index;
|
||||
|
||||
velements[attr].src_offset = 0;
|
||||
velements[attr].instance_divisor = 0;
|
||||
velements[attr].instance_divisor = arrays[mesaAttr]->InstanceDivisor;
|
||||
velements[attr].vertex_buffer_index = attr;
|
||||
velements[attr].src_format
|
||||
= st_pipe_vertex_format(arrays[mesaAttr]->Type,
|
||||
|
@@ -464,5 +464,6 @@ void st_init_extensions(struct st_context *st)
|
||||
|
||||
if (screen->get_param(screen, PIPE_CAP_INSTANCED_DRAWING)) {
|
||||
ctx->Extensions.ARB_draw_instanced = GL_TRUE;
|
||||
ctx->Extensions.ARB_instanced_arrays = GL_TRUE;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user