pan/midgard: Round up bytemasks when promoting uniforms

Fixes crashes with uniform promotion in certain mixed type
circumstances.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3978>
This commit is contained in:
Alyssa Rosenzweig 2020-02-27 09:37:28 -05:00 committed by Marge Bot
parent fd888d351f
commit 93ca47e046

View file

@ -160,7 +160,8 @@ midgard_promote_uniforms(compiler_context *ctx)
if (ins->load_64)
mov.alu.reg_mode = midgard_reg_mode_64;
mir_set_bytemask(&mov, mir_bytemask(ins));
uint16_t rounded = mir_round_bytemask_up(mir_bytemask(ins), mov.alu.reg_mode);
mir_set_bytemask(&mov, rounded);
mir_insert_instruction_before(ctx, ins, mov);
} else {
mir_rewrite_index_src(ctx, ins->dest, promoted);