diff --git a/src/gallium/drivers/svga/svga_draw.c b/src/gallium/drivers/svga/svga_draw.c index 651b4a4385d..9bf0cfe7f92 100644 --- a/src/gallium/drivers/svga/svga_draw.c +++ b/src/gallium/drivers/svga/svga_draw.c @@ -684,7 +684,7 @@ validate_vertex_buffers(struct svga_hwtnl *hwtnl, /* Set IA slot0 input buffer to the SO buffer */ assert(vbuf_count == 1); - vbuffer_attrs[0].stride = svga->curr.velems->strides[0]; + vbuffer_attrs[0].stride = svga->state.sw.need_swtnl ? hwtnl->cmd.vdecl[0].array.stride : svga->curr.velems->strides[0]; vbuffer_attrs[0].offset = hwtnl->cmd.vbufs[0].buffer_offset; vbuffer_attrs[0].sid = 0; assert(so_vertex_count->buffer != NULL); @@ -699,7 +699,7 @@ validate_vertex_buffers(struct svga_hwtnl *hwtnl, struct svga_buffer *sbuf = svga_buffer(hwtnl->cmd.vbufs[i].buffer.resource); - vbuffer_attrs[i].stride = svga->curr.velems->strides[i]; + vbuffer_attrs[i].stride = svga->state.sw.need_swtnl ? hwtnl->cmd.vdecl[i].array.stride : svga->curr.velems->strides[i]; vbuffer_attrs[i].offset = hwtnl->cmd.vbufs[i].buffer_offset; vbuffer_attrs[i].sid = 0;