summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r600/r600_asm.c
diff options
context:
space:
mode:
authorVincent Lejeune <[email protected]>2013-03-03 21:35:38 +0100
committerVincent Lejeune <[email protected]>2013-03-03 21:39:51 +0100
commit83e7d111afd8d340ce8fe13ea139271400eb362e (patch)
treed87dd03ec897448c20c7fd47236b2b0637960020 /src/gallium/drivers/r600/r600_asm.c
parent138b5b9a12b7e1537494aac556589ac9981b557b (diff)
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.
Diffstat (limited to 'src/gallium/drivers/r600/r600_asm.c')
-rw-r--r--src/gallium/drivers/r600/r600_asm.c1
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 b5a29cbb003..cb3e7a63025 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 &&