Module: Mesa Branch: master Commit: d8c16200e9730e4f4f56dc1478dc72dccce26203 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d8c16200e9730e4f4f56dc1478dc72dccce26203
Author: Alyssa Rosenzweig <[email protected]> Date: Thu May 21 17:51:06 2020 -0400 pan/mdg: Ensure we don't DCE into impossible masks We round up for ld/st. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5153> --- src/panfrost/midgard/midgard_opt_dce.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/panfrost/midgard/midgard_opt_dce.c b/src/panfrost/midgard/midgard_opt_dce.c index be9307e712a..93d3d45b241 100644 --- a/src/panfrost/midgard/midgard_opt_dce.c +++ b/src/panfrost/midgard/midgard_opt_dce.c @@ -73,9 +73,14 @@ midgard_opt_dead_code_eliminate_block(compiler_context *ctx, midgard_block *bloc mir_foreach_instr_in_block_rev(block, ins) { if (can_cull_mask(ctx, ins)) { unsigned type_size = nir_alu_type_get_type_size(ins->dest_type); + unsigned round_size = type_size; unsigned oldmask = ins->mask; - unsigned rounded = mir_round_bytemask_up(live[ins->dest], type_size); + /* Make sure we're packable */ + if (type_size == 16 && ins->type == TAG_LOAD_STORE_4) + round_size = 32; + + unsigned rounded = mir_round_bytemask_up(live[ins->dest], round_size); unsigned cmask = mir_from_bytemask(rounded, type_size); ins->mask &= cmask; _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
