From 1dc162d52fab6a7cd5e5e7fd60c9af603a1e541e Mon Sep 17 00:00:00 2001 From: Vincent Lejeune Date: Sun, 3 Mar 2013 21:35:38 +0100 Subject: [PATCH] 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. (cherry picked from commit 83e7d111afd8d340ce8fe13ea139271400eb362e) --- src/gallium/drivers/r600/r600_asm.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gallium/drivers/r600/r600_asm.c b/src/gallium/drivers/r600/r600_asm.c index 451b07221c2..bda425ce4f8 100644 --- a/src/gallium/drivers/r600/r600_asm.c +++ b/src/gallium/drivers/r600/r600_asm.c @@ -322,6 +322,7 @@ int r600_bytecode_add_output(struct r600_bytecode *bc, const struct r600_bytecod 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 &&