Mesa (main): r300/vs: Reuse rc_match_bgnloop().

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Dec 21 01:33:58 UTC 2021


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

Author: Emma Anholt <emma at anholt.net>
Date:   Mon Dec 20 11:28:36 2021 -0800

r300/vs: Reuse rc_match_bgnloop().

Reviewed-by: Marek Olšák <marek.olsak at amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14271>

---

 src/gallium/drivers/r300/compiler/r3xx_vertprog.c | 19 ++-----------------
 1 file changed, 2 insertions(+), 17 deletions(-)

diff --git a/src/gallium/drivers/r300/compiler/r3xx_vertprog.c b/src/gallium/drivers/r300/compiler/r3xx_vertprog.c
index 24121ca8fe4..58f5d0ad60d 100644
--- a/src/gallium/drivers/r300/compiler/r3xx_vertprog.c
+++ b/src/gallium/drivers/r300/compiler/r3xx_vertprog.c
@@ -620,23 +620,8 @@ static void allocate_temporary_registers(struct radeon_compiler *c, void *user)
 		const struct rc_opcode_info * opcode = rc_get_opcode_info(inst->U.I.Opcode);
 		/* Instructions inside of loops need to use the ENDLOOP
 		 * instruction as their LastRead. */
-		if (!end_loop && inst->U.I.Opcode == RC_OPCODE_BGNLOOP) {
-			int endloops = 1;
-			struct rc_instruction * ptr;
-			for(ptr = inst->Next;
-				ptr != &compiler->Base.Program.Instructions;
-							ptr = ptr->Next){
-				if (ptr->U.I.Opcode == RC_OPCODE_BGNLOOP) {
-					endloops++;
-				} else if (ptr->U.I.Opcode == RC_OPCODE_ENDLOOP) {
-					endloops--;
-					if (endloops <= 0) {
-						end_loop = ptr;
-						break;
-					}
-				}
-			}
-		}
+		if (!end_loop && inst->U.I.Opcode == RC_OPCODE_BGNLOOP)
+			end_loop = rc_match_bgnloop(inst);
 
 		if (inst == end_loop) {
 			end_loop = NULL;



More information about the mesa-commit mailing list