diff options
author | Alyssa Rosenzweig <[email protected]> | 2019-10-16 12:25:32 -0400 |
---|---|---|
committer | Alyssa Rosenzweig <[email protected]> | 2019-10-20 12:02:31 +0000 |
commit | e9202ff3cbbcceb691e6b64af5d379f0e8c03643 (patch) | |
tree | d48316eafbb3bd32f986bddf4412a237799a2c96 /src/panfrost/midgard/midgard_ra_pipeline.c | |
parent | d079631248c81e8b82b5deb8a4559e84f1a7893a (diff) |
pan/midgard: Report byte masks for read components
Read component masks don't have a particular type associated, since the
type of the ALU operation may not match the type of the operands in
question. So let's generate byte masks instead, and update the rest of
the compiler to use byte masks when analyzing reads.
Preparation for mixed types.
Signed-off-by: Alyssa Rosenzweig <[email protected]>
Diffstat (limited to 'src/panfrost/midgard/midgard_ra_pipeline.c')
-rw-r--r-- | src/panfrost/midgard/midgard_ra_pipeline.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/panfrost/midgard/midgard_ra_pipeline.c b/src/panfrost/midgard/midgard_ra_pipeline.c index 3fa3e9fbecd..a85383fc249 100644 --- a/src/panfrost/midgard/midgard_ra_pipeline.c +++ b/src/panfrost/midgard/midgard_ra_pipeline.c @@ -54,11 +54,11 @@ mir_pipeline_ins( unsigned node = ins->dest; unsigned read_mask = 0; - /* Analyze the bundle for a read mask */ + /* Analyze the bundle for a per-byte read mask */ for (unsigned i = 0; i < bundle->instruction_count; ++i) { midgard_instruction *q = bundle->instructions[i]; - read_mask |= mir_mask_of_read_components(q, node); + read_mask |= mir_bytemask_of_read_components(q, node); /* The fragment colour can't be pipelined (well, it is * pipelined in r0, but this is a delicate dance with @@ -74,7 +74,7 @@ mir_pipeline_ins( if (q->dest != node) continue; /* Remove the written mask from the read requirements */ - read_mask &= ~q->mask; + read_mask &= ~mir_bytemask(q); } /* Check for leftovers */ |