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