<div dir="ltr"><div>Hello,</div><div><br></div><div>I would like to understand the high level architecture of SWR codebase.</div><div><br></div><div>Is there any document for extending SWR for architectures other than Intel?</div><div>It seems like SWR uses llvm_pipe shader creation, so is it still based on tgsi IR to LLVM conversion? <br></div><div>Is there a path from NIR->LLVM (it seems so as per <a href="https://phoronix.com/scan.php?page=news_item&px=LLVM-Switches-To-NIR-Default">https://phoronix.com/scan.php?page=news_item&px=LLVM-Switches-To-NIR-Default</a> ?</div><div> If yes please point to the code? <br></div><div>If not then How much effort will it take to get a NIR to LLVM IR converter? <br></div><div><br></div><div>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. <br></div><div><br></div><div>Is the above idea possible at high-level? or I am missing lots of important points?</div><div><br></div><div>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.</div><div><br></div><div>Thanks,</div><div>Vivek<br></div><div><br></div></div>