aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlyssa Rosenzweig <[email protected]>2019-10-15 16:49:37 -0400
committerAlyssa Rosenzweig <[email protected]>2019-10-15 21:41:12 -0400
commit923aa3918c08660fdfc43641ca887cfaa098a669 (patch)
tree7eb32e48067629ac62f32d8bf7b618e0e5513c1f
parent47b58199f0d097a9e29bed58c4ddfc84d3bf1278 (diff)
pan/midgard: Fix mir_mask_of_read_components with dot products
Signed-off-by: Alyssa Rosenzweig <[email protected]>
-rw-r--r--src/panfrost/midgard/mir.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/panfrost/midgard/mir.c b/src/panfrost/midgard/mir.c
index b9df0527e3f..5d49f7f79f1 100644
--- a/src/panfrost/midgard/mir.c
+++ b/src/panfrost/midgard/mir.c
@@ -411,19 +411,19 @@ mir_mask_of_read_components(midgard_instruction *ins, unsigned node)
* readmasks based on the writemask */
unsigned qmask = (ins->type == TAG_ALU_4) ? ins->mask : 0xF;
- unsigned swizzle = mir_get_swizzle(ins, i);
- unsigned m = mir_mask_of_read_components_single(swizzle, qmask);
-
/* Handle dot products and things */
if (ins->type == TAG_ALU_4 && !ins->compact_branch) {
unsigned channel_override =
GET_CHANNEL_COUNT(alu_opcode_props[ins->alu.op].props);
if (channel_override)
- m = mask_of(channel_override);
+ qmask = mask_of(channel_override);
}
- mask |= m;
+ unsigned swizzle = mir_get_swizzle(ins, i);
+ unsigned m = mir_mask_of_read_components_single(swizzle, qmask);
+
+ mask |= m;
}
return mask;