SPIRV-Cross
SPIRV-Reflect
Our great sponsors
SPIRV-Cross | SPIRV-Reflect | |
---|---|---|
10 | 4 | |
1,904 | 608 | |
1.8% | 3.1% | |
9.0 | 7.9 | |
15 days ago | 9 days ago | |
GLSL | C | |
Apache License 2.0 | Apache License 2.0 |
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-Cross
-
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
SPIRV-Reflect
-
[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.
What are some alternatives?
rust-gpu - 🐉 Making Rust a first-class language and ecosystem for GPU shaders 🚧
vulkan-guide - Introductory guide to vulkan.
naga - Universal shader translation in Rust
meshoptimizer - Mesh optimization library that makes meshes smaller and faster to render
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
wgpu - Cross-platform, safe, pure-rust graphics api.
Orochi
NazaraEngine - Nazara Engine is a cross-platform framework aimed at (but not limited to) real-time applications requiring audio, 2D and 3D real-time rendering, network and more.
DirectXShaderCompiler - This repo hosts the source for the DirectX Shader Compiler which is based on LLVM/Clang.