SPIRV-Reflect
SPIRV-Reflect is a lightweight library that provides a C/C++ reflection API for SPIR-V shader bytecode in Vulkan applications. (by KhronosGroup)
SPIRV-Cross
SPIRV-Cross is a practical tool and library for performing reflection on SPIR-V and disassembling SPIR-V back to high level languages. (by KhronosGroup)
Our great sponsors
SPIRV-Reflect | SPIRV-Cross | |
---|---|---|
4 | 10 | |
613 | 1,907 | |
3.9% | 2.0% | |
7.9 | 9.0 | |
2 days ago | 11 days ago | |
C | GLSL | |
Apache License 2.0 | Apache License 2.0 |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
SPIRV-Reflect
Posts with mentions or reviews of SPIRV-Reflect.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2022-07-28.
-
[Part 4] Update of my Vulkan toy renderer: Mesh Shader Pipeline, Reversed-Z Depth Buffer, SPIRV-Reflect and many more
Automated descriptor set layout creation using SpirV-reflect. This will be used for more stuff in the future.
- GLSL std140 layout for Arrays of Scalars
-
Is it possible to get set number from uniform block reflection in glslang?
You might be able to get it with https://github.com/KhronosGroup/SPIRV-Reflect ?
- Reflection on shaders to determine uniforms, samplers, attributes, etc.
SPIRV-Cross
Posts with mentions or reviews of SPIRV-Cross.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2022-08-11.
-
Why aren't there constantly more shading languages popping up all the time like other languages?
There also exists something like SPIRV-Cross which promises to be able to generate code from the SPIRV intermediate representation into Metal and all versions of GLSL and HLSL. I am not sure really how good it is at this point, but going forward we might start to see more high-level shader languages, that compile to SPRIV and then from there to the myriad of different shader formats different platforms expect.
-
The trouble with SPIR-V, 2022 edition
If you have shaders, I believe you can use SPIRV-Cross to generate GLSL, which you can probably get to pass as OpenCL C with just a bunch of macro tweaks, or at worst some small changes to spv-cross.
-
Need guidance on SPIRV reflection
Regarding reflection, here is a guide: https://github.com/KhronosGroup/SPIRV-Cross/wiki/Reflection-API-user-guide
-
What are your (dynamic) shader workflows when targeting multiple backends (Vulkan and Metal)?
I am working on an engine that targets Vulkan and Metal. I'm at the point now where I want to be able to dynamically update my shader at runtime to suit the type of data being sent in for drawing. I am currently using offline compilation for my GLSL (for Vulkan) and MSL (for Metal) shaders. What are your workflows for situations like this? For those using tools like SPIR-V Cross and shaderc, what has your experience been with these tools keeping up to date with the latest features in the specs?
-
How are Vulkan, CUDA, Triton and all other things connected?
For cross-platform support look at WebGPU and Vulkan (e.g,: [0] [1]. Essentially, you would need to write the func in WGSL or GLSL, HLSL or MSL. Each of these can be cross-compiled to SPIR-V (what Vulkan needs) with cross-compilers such as spirv-cross and naga.
-
Is it possible to get set number from uniform block reflection in glslang?
Just for reference, the library I'm using (both for compiling the shaders and for reflection), is SPIRV-Cross by the Khronos Group and here you have the docs for the reflection API. I wanted to check out `glslang` but honestly this one so far has worked like a charm.
-
Reflection on shaders to determine uniforms, samplers, attributes, etc.
Aside from SPIRV-Reflect, if you're using SPIRV-cross to cross compile your shaders, there is also a --reflect arg you can pass which spits out reflection info in JSON format. We already need to cross compile from spirv, so it just removes a tool in the chain to depend on.
- Finally managed to make my own shading language working! (need some opinion about the lang)
-
Need a little help with shaders.
For your own engine, use the format your API uses. If you need crossplatformness, there is a new path available. Write your shaders in a language that compiles to SPIR-V (HLSL/GLSL are the most obvious languages), and then use SPIR-V Cross to compile the SPIR-V back to HLSL/GLSL for other API to consume.
- Getting descriptors from SPIRV
What are some alternatives?
When comparing SPIRV-Reflect and SPIRV-Cross you can also consider the following projects:
vulkan-guide - Introductory guide to vulkan.
rust-gpu - 🐉 Making Rust a first-class language and ecosystem for GPU shaders 🚧
meshoptimizer - Mesh optimization library that makes meshes smaller and faster to render
naga - Universal shader translation in Rust
glslang - Khronos-reference front end for GLSL/ESSL, partial front end for HLSL, and a SPIR-V generator.
shaderc - A collection of tools, libraries, and tests for Vulkan shader compilation.
rivi-loader - Vulkan Compute program loader in Rust
Orochi
DirectXShaderCompiler - This repo hosts the source for the DirectX Shader Compiler which is based on LLVM/Clang.
wgpu - Cross-platform, safe, pure-rust graphics api.
anydsl - Meta project to quickly build dependencies
SPIRV-Reflect vs vulkan-guide
SPIRV-Cross vs rust-gpu
SPIRV-Reflect vs meshoptimizer
SPIRV-Cross vs naga
SPIRV-Cross vs glslang
SPIRV-Cross vs shaderc
SPIRV-Cross vs rivi-loader
SPIRV-Cross vs vulkan-guide
SPIRV-Cross vs Orochi
SPIRV-Cross vs DirectXShaderCompiler
SPIRV-Cross vs wgpu
SPIRV-Cross vs anydsl