Replacing NIR with SPIR-V?

Abel Bernabeu abel.bernabeu at
Thu Jan 20 01:17:34 UTC 2022


My name Abel Bernabeu and I currently chair the Graphics and ML Special
Interest Group within RISC-V.

As part of my work for RISC-V I am currently looking at what is needed for
supporting a graphics product that uses a (potentially extended) RISC-V ISA
for its shading cores. My initial focus has been on analyzing the
functional gap between RISC-V and SPIR-V, assuming that whatever is needed
for a modern graphics accelerator is inevitably present on SPIR-V.

Now, the thing is that most of the potential adopters on our committee will
likely be interested in using mesa for developing their drivers and that
means using NIR as intermediate representation. Thus, I also need to
consider NIR when looking at the functional gap, doubling the amount of
work during the analysis.

Why is mesa using NIR as intermediate representation rather than SPIR-V? It
would make my life easier if mesa used SPIR-V rather than NIR for
communicating the front-end and the backends.

I know it is a lot of work to migrate to SPIR-V, but I am interested in
knowing what is the opinion of the mesa developers:

- My understanding is that when mesa adopted NIR, there was no SPIR-V. Was
a comparison made after the SPIR-V ratification?

- Does it make sense to move to SPIR-V?

- Is it feasible in terms of functionality supported by SPIR-V?

- Is the cost worth the potential advantage of using a more commonly
adopted standard?

Thanks in advance for your time and thoughts.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the mesa-dev mailing list