Mesa (main): lavapipe: fix multi-draw regression in shader parameters test

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Jul 15 00:17:57 UTC 2021


Module: Mesa
Branch: main
Commit: f144d914966eba2fd816b2948d5832b14f01a947
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f144d914966eba2fd816b2948d5832b14f01a947

Author: Dave Airlie <airlied at redhat.com>
Date:   Thu Jul 15 08:05:03 2021 +1000

lavapipe: fix multi-draw regression in shader parameters test

dEQP-VK.draw.shader_draw_parameters.base_instance.draw,Fail
dEQP-VK.draw.shader_draw_parameters.base_instance.draw_indexed,Fail

Fixes: 6b6dda56b5ff ("lavapipe: increment drawid for multidraws")
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11894>

---

 src/gallium/frontends/lavapipe/lvp_execute.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/gallium/frontends/lavapipe/lvp_execute.c b/src/gallium/frontends/lavapipe/lvp_execute.c
index 02fae7522ef..e7459b8ea77 100644
--- a/src/gallium/frontends/lavapipe/lvp_execute.c
+++ b/src/gallium/frontends/lavapipe/lvp_execute.c
@@ -1642,7 +1642,8 @@ static void handle_draw(struct lvp_cmd_buffer_entry *cmd,
    state->info.start_instance = cmd->u.draw.first_instance;
    state->info.instance_count = cmd->u.draw.instance_count;
    state->info.view_mask = subpass->view_mask;
-   state->info.increment_draw_id = true;
+   if (cmd->u.draw.draw_count > 1)
+      state->info.increment_draw_id = true;
 
    state->pctx->draw_vbo(state->pctx, &state->info, 0, NULL, cmd->u.draw.draws, cmd->u.draw.draw_count);
 }
@@ -2208,7 +2209,8 @@ static void handle_draw_indexed(struct lvp_cmd_buffer_entry *cmd,
    state->info.start_instance = cmd->u.draw_indexed.first_instance;
    state->info.instance_count = cmd->u.draw_indexed.instance_count;
    state->info.view_mask = subpass->view_mask;
-   state->info.increment_draw_id = true;
+   if (cmd->u.draw.draw_count > 1)
+      state->info.increment_draw_id = true;
 
    if (state->info.primitive_restart)
       state->info.restart_index = util_prim_restart_index_from_size(state->info.index_size);



More information about the mesa-commit mailing list