From: Timothy Arceri Date: Fri, 14 Dec 2018 04:09:38 +0000 (+1100) Subject: tgsi/scan: fix loop exit point in tgsi_scan_tess_ctrl() X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=dd061eb0442a25cad0cc775103ae31d62280fa44;p=mesa.git tgsi/scan: fix loop exit point in tgsi_scan_tess_ctrl() This just happened not to crash/assert because all loops have at least 1 if-statement and due to a second bug we end up matching the same ENDIF to exit both the iteration over the if-statment and the loop. The second bug is fixed in the following patch. Fixes: 386d165d8d09 ("tgsi/scan: add a new pass that analyzes tess factor writes") Reviewed-by: Marek Olšák --- diff --git a/src/gallium/auxiliary/tgsi/tgsi_scan.c b/src/gallium/auxiliary/tgsi/tgsi_scan.c index d776fc7bef1..d7f7a172ee1 100644 --- a/src/gallium/auxiliary/tgsi/tgsi_scan.c +++ b/src/gallium/auxiliary/tgsi/tgsi_scan.c @@ -1172,7 +1172,7 @@ tgsi_scan_tess_ctrl(const struct tgsi_token *tokens, case TGSI_OPCODE_BGNLOOP: cond_block_tf_writemask |= - get_block_tessfactor_writemask(info, &parse, TGSI_OPCODE_ENDIF); + get_block_tessfactor_writemask(info, &parse, TGSI_OPCODE_ENDLOOP); continue; case TGSI_OPCODE_BARRIER: