diff --git a/.pick_status.json b/.pick_status.json index 09f382fddcb..ff880ccd4b6 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -283,7 +283,7 @@ "description": "draw: don't touch info values that aren't valid.", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null }, diff --git a/src/gallium/auxiliary/draw/draw_pt.c b/src/gallium/auxiliary/draw/draw_pt.c index 8815765db78..ac0137c8553 100644 --- a/src/gallium/auxiliary/draw/draw_pt.c +++ b/src/gallium/auxiliary/draw/draw_pt.c @@ -153,7 +153,7 @@ draw_pt_arrays(struct draw_context *draw, if (count >= first) frontend->run(frontend, draw_info[i].start, count); - if (draw->pt.user.increment_draw_id) + if (num_draws > 1 && draw->pt.user.increment_draw_id) draw->pt.user.drawid++; } @@ -525,11 +525,14 @@ draw_vbo(struct draw_context *draw, num_draws = 1; } - if (info->index_size) + if (info->index_size) { assert(draw->pt.user.elts); - - draw->pt.user.min_index = use_info->index_bounds_valid ? use_info->min_index : 0; - draw->pt.user.max_index = use_info->index_bounds_valid ? use_info->max_index : ~0; + draw->pt.user.min_index = use_info->index_bounds_valid ? use_info->min_index : 0; + draw->pt.user.max_index = use_info->index_bounds_valid ? use_info->max_index : ~0; + } else { + draw->pt.user.min_index = 0; + draw->pt.user.max_index = ~0; + } draw->pt.user.eltSize = use_info->index_size ? draw->pt.user.eltSizeIB : 0; draw->pt.user.drawid = drawid_offset; draw->pt.user.increment_draw_id = use_info->increment_draw_id;