Developer ExperienceHelp wantedModmaker ExperiencePlayer ExperiencePortabilityRenderer
Repository metrics
- Stars
- (3,524 stars)
- PR merge metrics
- (PR metrics pending)
Description
Source code compilers:
- glslang and SPIRV-Cross
- We should check if it supports compilation from HLSL to SPIR-V for OpenGL. (https://github.com/KhronosGroup/glslang/issues/1417)
- shaderc
- DirectXShaderCompiler and SPIRV-Cross
- vkd3d-shader
- hlsloptconv (HLSL Optimizing Converter, SM3.0 – SM4.0)
- hlslparser
- HLSLParser (Only SM3.0, no preprocessor, so doesn't support #includes)
- hlsl2glslfork (Only SM3.0)
- shgen
- XShaderCompiler (SM4 – SM5) (won't work for us currently, see https://github.com/LukasBanana/XShaderCompiler/issues/98)
- https://zz85.github.io/hlslparser/
- https://github.com/DiligentGraphics/DiligentCore/tree/master/Graphics/HLSL2GLSLConverterLib
Bytecode compilers are not suitable, we need to compile from sources. However, here's the list of some bytecode compilers:
- HLSLCrossCompiler
- DXVK's DXBC reader – Supports SM 4.0 through SM 5.0.
- mojoshader – Supports SM 1.0 through SM 3.0
Other useful links: Decompilers:
- https://github.com/etnlGD/HLSLDecompiler
- https://github.com/luxuia/dxbc_reader
- https://github.com/AndresTraks/HlslDecompiler/
- https://gitlab.winehq.org/fcasas/binary-d3dbc-parser
Other projects:
- https://github.com/felipeagc/tinyshader
- https://github.com/shader-slang/slang
- https://github.com/septag/glslcc
- https://github.com/julianrendell/GLSL2HLSL
- https://github.com/Kode/krafix
- https://github.com/KTXSoftware/kfx
- https://github.com/MicrosoftEdge/WebGL/tree/master/GLSLParse
- https://github.com/zigguratvertigo/hlsl-to-ispc
- https://github.com/mellinoe/ShaderGen
- https://github.com/DragonJoker/ShaderWriter
- https://github.com/polymonster/pmfx-shader
- https://github.com/cezbloch/shaderator
Playground, testing, live coding:
- https://github.com/tgjones/shader-playground
- https://github.com/astralis3d/HLSLexplorer
- https://github.com/atyuwen/hlsl_live_coding
Other suggestions?
This issue is a sub-task of #280