ShaderConductor : Microsoftのオープンソースシェーダ言語変換ツール

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