[LLVMdev] SwiftShader using LLVM

Nicolas Capens nicolas.capens at gmail.com
Thu Oct 28 16:28:11 PDT 2010


Hi all,

 

I thought some of you might be interested to know that TransGaming
SwiftShader now features a back-end based on LLVM. SwiftShader is a
high-performance 3D software rendering toolkit
(http://transgaming.com/business/swiftshader/technology/). It has recently
been licensed by Adobe for the Flash Molehill 3D API
(http://labs.adobe.com/technologies/flash/molehill/).

 

That version doesn't use LLVM though; it uses the much smaller and faster
SwiftAsm back-end. However, the Direct3D 9 demo available from the
TransGaming website fully relies on LLVM for dynamic code generation. You
may be pleased to know that the generated code performs the same or faster
than hand-tuned dynamically generated assembly code. LLVM's optimization
passes have been indispensable to achieve exceptional Shader Model 3.0
performance. On top of LLVM we're using another abstraction layer, called
Reactor, which defines a powerful high-level language.

 

If you decide to try out the demo, make sure to check out the SwiftConfig
functionality. While running a Direct3D 9 application with SwiftShader in
windowed mode, you can interactively change its settings by opening
http://localhost:8080/swiftconfig in your browser. These settings include
some LLVM optimization passes that can be selected or reordered!

 

So finally you know what my secret vector intensive project was. ;-) I'd
like to thank all LLVM developers for providing this incredibly versatile
compiler infrastructure, and I hope I'll be able to contribute some more
myself in the near future. If you have any questions about the use of LLVM
in SwiftShader, feel free to ask!

 

Cheers,

 

Nicolas Capens

Lead SwiftShader Developer

TransGaming Inc.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20101029/0edf1afc/attachment.html>


More information about the llvm-dev mailing list