};
uint32_t max_index = 0xffff;
+ unsigned index_bias = info->index_size ? info->index_bias : 0;
for (int i = 0; i < vtx->num_elements; i++) {
struct pipe_vertex_element *elem = &vtx->pipe[i];
struct pipe_vertex_buffer *vb =
/* not vc4->dirty tracked: vc4->last_index_bias */
uint32_t offset = (vb->buffer_offset +
elem->src_offset +
- vb->stride * (info->index_bias +
+ vb->stride * (index_bias +
extra_index_bias));
uint32_t vb_size = rsc->bo->size - offset;
uint32_t elem_size =
&vc4->constbuf[PIPE_SHADER_VERTEX],
&vc4->verttex);
- vc4->last_index_bias = info->index_bias + extra_index_bias;
+ vc4->last_index_bias = index_bias + extra_index_bias;
vc4->max_index = max_index;
job->shader_rec_count++;
}
bool needs_drawarrays_shader_state = false;
+ unsigned index_bias = info->index_size ? info->index_bias : 0;
if ((vc4->dirty & (VC4_DIRTY_VTXBUF |
VC4_DIRTY_VTXSTATE |
VC4_DIRTY_PRIM_MODE |
vc4->prog.cs->uniform_dirty_bits |
vc4->prog.vs->uniform_dirty_bits |
vc4->prog.fs->uniform_dirty_bits)) ||
- vc4->last_index_bias != info->index_bias) {
+ vc4->last_index_bias != index_bias) {
if (info->index_size)
vc4_emit_gl_shader_state(vc4, info, 0);
else