Mesa (master): r300/compiler: Don' t merge instructions that write output regs and ALU result
Tom Stellard
tstellar at kemper.freedesktop.org
Wed Sep 29 07:08:11 UTC 2010
Module: Mesa
Branch: master
Commit: b27a809266bd664cd101fcfdf20886cc2b7df787
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b27a809266bd664cd101fcfdf20886cc2b7df787
Author: Tom Stellard <tstellar at gmail.com>
Date: Tue Sep 28 23:10:09 2010 -0700
r300/compiler: Don't merge instructions that write output regs and ALU result
https://bugs.freedesktop.org/show_bug.cgi?id=30415
NOTE: This is a candidate for the 7.9 branch.
---
.../dri/r300/compiler/radeon_pair_schedule.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_pair_schedule.c b/src/mesa/drivers/dri/r300/compiler/radeon_pair_schedule.c
index a33b2fd..38bae26 100644
--- a/src/mesa/drivers/dri/r300/compiler/radeon_pair_schedule.c
+++ b/src/mesa/drivers/dri/r300/compiler/radeon_pair_schedule.c
@@ -475,6 +475,12 @@ static int merge_instructions(struct rc_pair_instruction * rgb, struct rc_pair_i
{
struct rc_pair_instruction backup;
+ /*Instructions can't write output registers and ALU result at the
+ * same time. */
+ if ((rgb->WriteALUResult && alpha->Alpha.OutputWriteMask)
+ || (rgb->RGB.OutputWriteMask && alpha->WriteALUResult)) {
+ return 0;
+ }
memcpy(&backup, rgb, sizeof(struct rc_pair_instruction));
if (destructive_merge_instructions(rgb, alpha))
More information about the mesa-commit
mailing list