[Mesa-dev] [PATCH 7/8] nir/spirv: cast shift operand to u32

Jason Ekstrand jason at jlekstrand.net
Mon Jul 16 15:46:29 UTC 2018


On Mon, Jul 16, 2018 at 8:32 AM Karol Herbst <kherbst at redhat.com> wrote:

> On Mon, Jul 16, 2018 at 5:24 PM, Jason Ekstrand <jason at jlekstrand.net>
> wrote:
> > Do we need to do something similar for specialization constants?
> >
>
> I don't think so. The problem here wasn't constants, but simply that
> we can end up with non 32 bit shift values inside the SPIR-V, but we
> only support 32 bit shifts in nir. It is legal SPIR-V, so we might
> just want to fix that.
>

Right, but you can have 64 or 16-bit specialization constants as well.


> > On Mon, Jul 16, 2018 at 7:28 AM Karol Herbst <kherbst at redhat.com> wrote:
> >>
> >> Signed-off-by: Karol Herbst <kherbst at redhat.com>
> >> ---
> >>  src/compiler/spirv/vtn_alu.c | 10 ++++++++++
> >>  1 file changed, 10 insertions(+)
> >>
> >> diff --git a/src/compiler/spirv/vtn_alu.c b/src/compiler/spirv/vtn_alu.c
> >> index 5db6c7f0a87..d6f149d12e9 100644
> >> --- a/src/compiler/spirv/vtn_alu.c
> >> +++ b/src/compiler/spirv/vtn_alu.c
> >> @@ -743,6 +743,16 @@ vtn_handle_alu(struct vtn_builder *b, SpvOp opcode,
> >>           src[1] = tmp;
> >>        }
> >>
> >> +      switch (op) {
> >> +      case nir_op_ishl:
> >> +      case nir_op_ishr:
> >> +      case nir_op_ushr:
> >> +         src[1] = nir_u2u32(&b->nb, src[1]);
> >> +         break;
> >> +      default:
> >> +         break;
> >> +      }
> >> +
> >>        val->ssa->def = nir_build_alu(&b->nb, op, src[0], src[1], src[2],
> >> src[3]);
> >>        break;
> >>     } /* default */
> >> --
> >> 2.17.1
> >>
> >> _______________________________________________
> >> mesa-dev mailing list
> >> mesa-dev at lists.freedesktop.org
> >> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180716/a2032e7a/attachment.html>


More information about the mesa-dev mailing list