A work-in-progress replacement shader compiler for bgfx. It is not backwards-compatible with the existing bgfx shader compiler.
Goals
- To take only standard GLSL as input
- To not rely on macros or other hacks for feature support
- To generate readable source that matches the original input as closely as possible for easier shader source debugging
- To be linkable as a library for runtime shader compilation
Non-goals
- To support the DX9, NVN, and PSSL backends
- To support legacy compilers or C++ versions
- To be backwards-compatibile with the existing bgfx shader compiler
Progress
- Metal
- Metal Binary
- Vulkan
- OpenGL
- OpenGL ES
- DX9
- DX11
- DX12
Run nshaderc --help
for a menu of options. To specify the compatibility version, supply the major and minor versions
in one integer. For example, for Metal 2.1, use 21, for DirectX Shader Model 5.1, use 51, and for Vulkan 1.3, use 13.
Clone recursive to get all submodules:
git clone https://github.com/Ravbug/nshaderc --depth=1 --recurse-submodules
Then build with cmake:
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..