The 32-bit condition was in one of radv's meta shaders and had it from the start.
32-bit conditions seems to be valid after lowering booleans to 32-bit. Are they supposed to be invalid before the lowering? On Wed, 19 Dec 2018 at 00:59, Jason Ekstrand <[email protected]> wrote: > > Seems reasonable though I'm a bit surprised your running peephole_select > after lowering booleans. > > On December 18, 2018 18:16:46 Timothy Arceri <[email protected]> wrote: > > > Reviewed-by: Timothy Arceri <[email protected]> > > > > On 18/12/18 3:16 am, Rhys Perry wrote: > >> Signed-off-by: Rhys Perry <[email protected]> > >> --- > >> src/compiler/nir/nir_opt_peephole_select.c | 4 +++- > >> 1 file changed, 3 insertions(+), 1 deletion(-) > >> > >> diff --git a/src/compiler/nir/nir_opt_peephole_select.c > >> b/src/compiler/nir/nir_opt_peephole_select.c > >> index ad9d0abec0..241627ed99 100644 > >> --- a/src/compiler/nir/nir_opt_peephole_select.c > >> +++ b/src/compiler/nir/nir_opt_peephole_select.c > >> @@ -205,7 +205,9 @@ nir_opt_peephole_select_block(nir_block *block, > >> nir_shader *shader, > >> break; > >> > >> nir_phi_instr *phi = nir_instr_as_phi(instr); > >> - nir_alu_instr *sel = nir_alu_instr_create(shader, nir_op_bcsel); > >> + nir_op sel_op = nir_src_bit_size(if_stmt->condition) == 1 ? > >> + nir_op_bcsel : nir_op_b32csel; > >> + nir_alu_instr *sel = nir_alu_instr_create(shader, sel_op); > >> nir_src_copy(&sel->src[0].src, &if_stmt->condition, sel); > >> /* Splat the condition to all channels */ > >> memset(sel->src[0].swizzle, 0, sizeof sel->src[0].swizzle); > >> > > _______________________________________________ > > mesa-dev mailing list > > [email protected] > > https://lists.freedesktop.org/mailman/listinfo/mesa-dev > > > _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
