Mesa (master): i965: Actually track the "if" depth in loop in the new FS backend.

Eric Anholt anholt at kemper.freedesktop.org
Tue Sep 28 16:38:02 UTC 2010


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

Author: Eric Anholt <eric at anholt.net>
Date:   Mon Sep 27 21:25:55 2010 -0700

i965: Actually track the "if" depth in loop in the new FS backend.

Fixes:
glsl-fs-if-nested-loop.

---

 src/mesa/drivers/dri/i965/brw_fs.cpp |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp
index d05aa29..c324be2 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
@@ -1789,6 +1789,7 @@ fs_visitor::generate_code()
       case BRW_OPCODE_IF:
 	 assert(if_stack_depth < 16);
 	 if_stack[if_stack_depth] = brw_IF(p, BRW_EXECUTE_8);
+	 if_depth_in_loop[loop_stack_depth]++;
 	 if_stack_depth++;
 	 break;
       case BRW_OPCODE_ELSE:
@@ -1798,6 +1799,7 @@ fs_visitor::generate_code()
       case BRW_OPCODE_ENDIF:
 	 if_stack_depth--;
 	 brw_ENDIF(p , if_stack[if_stack_depth]);
+	 if_depth_in_loop[loop_stack_depth]--;
 	 break;
 
       case BRW_OPCODE_DO:




More information about the mesa-commit mailing list