From b918a421d89a95f80e15267992ae97c8ce839e6f Mon Sep 17 00:00:00 2001 From: antonino Date: Tue, 4 Apr 2023 17:00:53 +0200 Subject: [PATCH] zink: fix exit condition on pv emulation loop The exit condition was not correct causing the pv emulation lowering pass to emit garbage for incomplete primitives. Fixes: 5a4083349f3 ("zink: add provoking vertex mode lowering") Reviewed-by: Erik Faye-Lund Part-of: (cherry picked from commit bdb3daab7c550984b56539142f053ae7950c93ad) --- .pick_status.json | 2 +- src/gallium/drivers/zink/zink_compiler.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index 22ae251d3df..d30fca753c7 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -238,7 +238,7 @@ "description": "zink: fix exit condition on pv emulation loop", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "5a4083349f36ef6db36a962327de6952a30d0c92" }, diff --git a/src/gallium/drivers/zink/zink_compiler.c b/src/gallium/drivers/zink/zink_compiler.c index deb41d61f7c..a0a171e194e 100644 --- a/src/gallium/drivers/zink/zink_compiler.c +++ b/src/gallium/drivers/zink/zink_compiler.c @@ -523,7 +523,7 @@ lower_pv_mode_gs_end_primitive(nir_builder *b, { nir_ssa_def *out_pos_counter = nir_load_var(b, state->out_pos_counter); nir_push_if(b, nir_ilt(b, nir_isub(b, pos_counter, out_pos_counter), - nir_imm_int(b, state->primitive_vert_count - 1))); + nir_imm_int(b, state->primitive_vert_count))); nir_jump(b, nir_jump_break); nir_pop_if(b, NULL);