Mesa (master): r600g: Check comp_mask before merging export instructions

Vincent Lejeune vlj at kemper.freedesktop.org
Sun Mar 3 20:53:22 UTC 2013


Module: Mesa
Branch: master
Commit: 83e7d111afd8d340ce8fe13ea139271400eb362e
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=83e7d111afd8d340ce8fe13ea139271400eb362e

Author: Vincent Lejeune <vljn at ovi.com>
Date:   Sun Mar  3 21:35:38 2013 +0100

r600g: Check comp_mask before merging export instructions

Fixes a llvm uncovered (rare) bug where consecutive exports were
merged even if they have incompatible mask.

---

 src/gallium/drivers/r600/r600_asm.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/src/gallium/drivers/r600/r600_asm.c b/src/gallium/drivers/r600/r600_asm.c
index b5a29cb..cb3e7a6 100644
--- a/src/gallium/drivers/r600/r600_asm.c
+++ b/src/gallium/drivers/r600/r600_asm.c
@@ -145,6 +145,7 @@ int r600_bytecode_add_output(struct r600_bytecode *bc,
 		output->swizzle_y == bc->cf_last->output.swizzle_y &&
 		output->swizzle_z == bc->cf_last->output.swizzle_z &&
 		output->swizzle_w == bc->cf_last->output.swizzle_w &&
+		output->comp_mask == bc->cf_last->output.comp_mask &&
 		(output->burst_count + bc->cf_last->output.burst_count) <= 16) {
 
 		if ((output->gpr + output->burst_count) == bc->cf_last->output.gpr &&




More information about the mesa-commit mailing list