diff options
| author | Tom Stellard <tstellar@gmail.com> | 2010-11-01 22:06:20 -0700 | 
|---|---|---|
| committer | Tom Stellard <tstellar@gmail.com> | 2010-11-01 22:06:20 -0700 | 
| commit | 6b999c89ce1a5bf2d5e8533929b8f2101beaa481 (patch) | |
| tree | 3971650a20d40979dc991e926ed100783273dd6f /src | |
| 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')
| -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 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: | 
