diff options
-rw-r--r-- | src/gallium/drivers/svga/svga_draw_elements.c | 8 | ||||
-rw-r--r-- | src/gallium/drivers/svga/svga_pipe_draw.c | 5 | ||||
-rw-r--r-- | src/gallium/drivers/svga/svga_swtnl_backend.c | 1 |
3 files changed, 8 insertions, 6 deletions
diff --git a/src/gallium/drivers/svga/svga_draw_elements.c b/src/gallium/drivers/svga/svga_draw_elements.c index 336a1182c39..9987cefcc41 100644 --- a/src/gallium/drivers/svga/svga_draw_elements.c +++ b/src/gallium/drivers/svga/svga_draw_elements.c @@ -279,8 +279,8 @@ svga_hwtnl_draw_range_elements(struct svga_hwtnl *hwtnl, ret = svga_hwtnl_simple_draw_range_elements(hwtnl, index_buffer, info->index_size, info->index_bias, - info->min_index, - info->max_index, + info->index_bounds_valid ? info->min_index : 0, + info->index_bounds_valid ? info->max_index : ~0, gen_prim, index_offset, count, info->start_instance, info->instance_count, @@ -307,8 +307,8 @@ svga_hwtnl_draw_range_elements(struct svga_hwtnl *hwtnl, gen_buf, gen_size, info->index_bias, - info->min_index, - info->max_index, + info->index_bounds_valid ? info->min_index : 0, + info->index_bounds_valid ? info->max_index : ~0, gen_prim, gen_offset, gen_nr, info->start_instance, diff --git a/src/gallium/drivers/svga/svga_pipe_draw.c b/src/gallium/drivers/svga/svga_pipe_draw.c index db149c37401..d33bbc06ee5 100644 --- a/src/gallium/drivers/svga/svga_pipe_draw.c +++ b/src/gallium/drivers/svga/svga_pipe_draw.c @@ -265,8 +265,9 @@ svga_draw_vbo(struct pipe_context *pipe, const struct pipe_draw_info *info, * always start from 0 for DrawArrays and does not include baseVertex for * DrawIndexed. */ - if (svga->curr.vertex_id_bias != (draws[0].start + info->index_bias)) { - svga->curr.vertex_id_bias = draws[0].start + info->index_bias; + unsigned index_bias = info->index_size ? info->index_bias : 0; + if (svga->curr.vertex_id_bias != (draws[0].start + index_bias)) { + svga->curr.vertex_id_bias = draws[0].start + index_bias; svga->dirty |= SVGA_NEW_VS_CONSTS; } diff --git a/src/gallium/drivers/svga/svga_swtnl_backend.c b/src/gallium/drivers/svga/svga_swtnl_backend.c index 01e9736af13..53ca5835707 100644 --- a/src/gallium/drivers/svga/svga_swtnl_backend.c +++ b/src/gallium/drivers/svga/svga_swtnl_backend.c @@ -330,6 +330,7 @@ svga_vbuf_render_draw_elements(struct vbuf_render *render, .start_instance = 0, .instance_count = 1, .index_bias = bias, + .index_bounds_valid = true, .min_index = svga_render->min_index, .max_index = svga_render->max_index, }; |