[libre-riscv-dev] shader compiler progress update

Jacob Lifshay programmerjake at gmail.com
Fri Dec 21 23:09:47 GMT 2018


I haven't made any commits to Kazan in the last week or so because I've
been working on implementing the SIMT to masked-vectors conversion and been
running into problems.

The conversion generally requires a structured CFG. I've started several
implementations of CFG structuring using a few different algorithms only to
run into algorithmic problems before I got any of them to compile.

I'm currently thinking about either parsing the Op*Merge operations from
the input SPIR-V into a structured-code tree or implementing a conversion
based on merging masks at the immediate post-dominator. Both of those are
rather complicated.

One of the benefits of the immediate post-dominator algorithm is that the
shader compiler will also support OpenCL shaders (since OpenCL SPIR-V
doesn't have the Op*Merge instructions).

The benefit of the Op*Merge implementation is that the input SPIR-V is
already structured, though the structure is very complex to parse.

Jacob


More information about the libre-riscv-dev mailing list