diff options
author | Tom Stellard <[email protected]> | 2010-11-01 22:06:20 -0700 |
---|---|---|
committer | Tom Stellard <[email protected]> | 2010-11-01 22:06:20 -0700 |
commit | 6b999c89ce1a5bf2d5e8533929b8f2101beaa481 (patch) | |
tree | 3971650a20d40979dc991e926ed100783273dd6f /src/mesa | |
parent | ad00a92ee720c275d3852faea4e442a8da876ca2 (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/mesa')
-rw-r--r-- | src/mesa/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 5927498818b..885e227e794 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: |