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

Reply via email to