I'm going to play some with SPIR-V, and the first step is to look at existing projects/blogs. Below is what I have found so far. Have I missed anything relevant?
Blogs
Redefining the shading languages ecosystem with SPIR-VGreat overview of the benefits of SPIR-V, and what problems it does not solve.
Software
glslangKhronos' reference compiler front end for the OpenGL ES and OpenGL shading languages. This can now generate SPIR-V.
lunarglass
LunarGLASS: LunarG's LLVM Adaptation to Shader Compiler Stacks.
It compiles shaders to LLVM IR using the glslang frontend, and it can use the SPIR-V output from glslang, so it seems to contain most code needed to convert SPIR-V to LLVM IR.
https://github.com/cheery/spirthon
Translation from python bytecode to SPIR-V.
This also contains
- A SPIR-V decoder/encoder (assembler/disassembler)
- Machine readable specification for SPIR-V in json -format that can be used to drive a decoder/encoder. And the script used to generate it.
https://github.com/Philip-Trettner/SpirvNet
SPIR-V generator for .NET IL written in C#.
https://github.com/jteeuwen/spirv
A SPIR-V encoder/decoder written in Go.
https://github.com/kusma/SPIR-V
Simple SPIR-V parser written in C.
https://github.com/Philip-Trettner/SpirvSpecToJson
SPIR-V HTML Specification to JSON converter written in C#.
https://github.com/GeirGrusom/spirv-emit
SPIR-V bytecode emitter written in C#.
There is also the {Zoclee}™ Shade project that is an open source virtual machine for SPIR-V binaries.
ReplyDeletehttps://github.com/Zoclee/Shade
SPIR-V assembler/disassembler.
ReplyDeletehttps://github.com/kristerw/spirv-tools