[Mesa-dev] Understanding Components of SWR

vivek pandya vivekvpandya at gmail.com
Sat Sep 12 07:27:15 UTC 2020


Hello,

I would like to understand the high level architecture of SWR codebase.

Is there any document for extending SWR for architectures other than Intel?
It seems like SWR uses llvm_pipe shader creation, so is it still based on
tgsi IR to LLVM conversion?
Is there a path from NIR->LLVM (it seems so as per
https://phoronix.com/scan.php?page=news_item&px=LLVM-Switches-To-NIR-Default
?
If yes please point to the code?
If not then How much effort will it take to get a NIR to LLVM IR converter?

To get LLVM directly from NIR I am thinking to use RADV's NIR to LLVM IR
converter but make it more suitable to generate LLVM IR for any other
architecture by simply having a text file to look up for NIR to LLVM ir
mapping and that makes RADV's LLVMIR generator target independent. If it is
not one to one mapping then something more complex like LLVM's table gen
can be used.

Is the above idea possible at high-level? or I am missing lots of important
points?

Overall idea is to have SWR retargettable for any architecture that is
supported by LLVM codege and also don't want to use TGSI instead use NIR.

Thanks,
Vivek
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20200912/684b82f0/attachment.htm>


More information about the mesa-dev mailing list