From: Alyssa Rosenzweig Date: Wed, 18 Mar 2020 15:55:10 +0000 (-0400) Subject: pan/bi: Pass second src for load_vary ops X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=37f14c9e50ce144cc81bebf5124e7a9cd0ef0288;p=mesa.git pan/bi: Pass second src for load_vary ops For direct, this is just 0, but for indirct, this is a sample mask preloaded in R61. Handle this at code emit time instead of trying to do crazy monkeypatching later. Signed-off-by: Alyssa Rosenzweig Part-of: --- diff --git a/src/panfrost/bifrost/bifrost_compile.c b/src/panfrost/bifrost/bifrost_compile.c index d19cc65d786..144afe61873 100644 --- a/src/panfrost/bifrost/bifrost_compile.c +++ b/src/panfrost/bifrost/bifrost_compile.c @@ -102,7 +102,16 @@ bi_emit_ld_vary(bi_context *ctx, nir_intrinsic_instr *instr) ins.load_vary.interp_mode = BIFROST_INTERP_DEFAULT; /* TODO */ ins.load_vary.reuse = false; /* TODO */ ins.load_vary.flat = instr->intrinsic != nir_intrinsic_load_interpolated_input; - ins.dest_type = nir_type_float | nir_dest_bit_size(instr->dest), + ins.dest_type = nir_type_float | nir_dest_bit_size(instr->dest); + + if (nir_src_is_const(*nir_get_io_offset_src(instr))) { + /* Zero it out for direct */ + ins.src[1] = BIR_INDEX_ZERO; + } else { + /* R61 contains sample mask stuff, TODO RA XXX */ + ins.src[1] = BIR_INDEX_REGISTER | 61; + } + bi_emit(ctx, ins); }