summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Stellard <tstellar@gmail.com>2010-11-01 22:06:20 -0700
committerTom Stellard <tstellar@gmail.com>2010-11-01 22:06:20 -0700
commit6b999c89ce1a5bf2d5e8533929b8f2101beaa481 (patch)
tree3971650a20d40979dc991e926ed100783273dd6f /src
parentad00a92ee720c275d3852faea4e442a8da876ca2 (diff)
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.
Diffstat (limited to 'src')
-rw-r--r--src/mesa/drivers/dri/r300/compiler/radeon_dataflow.c3
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 5927498818..885e227e79 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: