Mesa (master): r300/compiler: Don't track readers into an IF block.

Tom Stellard tstellar at kemper.freedesktop.org
Tue Nov 2 05:51:29 UTC 2010


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

Author: Tom Stellard <tstellar at gmail.com>
Date:   Mon Nov  1 22:06:20 2010 -0700

r300/compiler: Don't track readers into an IF block.

This makes rc_get_readers_normal() more conservative than it needs to be,
but it fixes some incorrect behavior in the optimization passes.

---

 .../drivers/dri/r300/compiler/radeon_dataflow.c    |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_dataflow.c b/src/mesa/drivers/dri/r300/compiler/radeon_dataflow.c
index 5927498..885e227 100644
--- a/src/mesa/drivers/dri/r300/compiler/radeon_dataflow.c
+++ b/src/mesa/drivers/dri/r300/compiler/radeon_dataflow.c
@@ -624,6 +624,9 @@ void  rc_get_readers_normal(
 			data->Abort = 1;
 			return;
 		case RC_OPCODE_IF:
+			/* XXX We can do better here, but this will have to
+			 * do until this dataflow analysis is more mature. */
+			data->Abort = 1;
 			branch_depth++;
 			break;
 		case RC_OPCODE_ELSE:




More information about the mesa-commit mailing list