MicrosoftがShaderConductorというシェーダ変換ツールを公開しています.
ShaderConductor
https://github.com/Microsoft/ShaderConductor
このツールは,HLSLから以下のシェーダを出力ができるものになっています.
- DXIL (Direct3D12)
- SPIR-V (Vulkan)
- GLSL (OpenGL)
- ESSL (OpenGL ES)
- MSL (Metal)
- HLSL (Direct3D9/10/11)
DXILとSPIR-V はDirectXShaderCompilerから出力を行い,残りはSPIR-VをSPIR-V-Crossを使って出力するというものになっています.
DirectXShaderCompilerによるVulkan向けSPIR-V出力に関しては下記の記事などが参考になると思います.EA SEEDの事例ですがVulkan向けのシェーダをHLSLで開発する話があります.DirectXShaderCompilerからのフローはだいぶ完成度が高まっている感じはあります.
Running Microsoft FXC in Docker
https://www.wihlidal.com/blog/pipeline/2018-09-17-linux-fxc-docker/
Khronos Munich 2018 – Halcyon and Vulkan
https://www.ea.com/seed/news/khronos-munich-2018-halcyon-vulkan
日本語での関連記事は新masafumi’s Diaryの方で書いています.
EA SEEDのHalcyonのDirect3D12やVulkan向けのシェーダの話
http://masafumi.cocolog-nifty.com/masafumis_diary/2018/10/ea-seedhalcyond.html
HalcyonのVulkan対応の話
http://masafumi.cocolog-nifty.com/masafumis_diary/2018/10/halcyonvulkan-c.html