DirectXのHLSLの新しいシェーダコンパイラがオープンソースで公開


GDC 2016のDirectX 12 AdvancementsでHLSL 6.0からシェーダコンパイラがLLVM/Clangベースになる話が予告されていましたが,GitHubにソースが公開になりました(Previewリリース).
New DirectX Shader Compiler based on Clang/LLVM now available as Open Source
https://blogs.msdn.microsoft.com/directx/2017/01/23/new-directx-shader-compiler-based-on-clangllvm-now-available-as-open-source/
リポジトリ
https://github.com/Microsoft/DirectXShaderCompiler
今回からシェーダコンパイラがLLVM/Clangになりシェーダの中間言語(DXIL)が策定されました.
DXILを使用するには現状ではWindows 10のInsider Preview Build 15007を入れる必要があるようです.ただし,現状GPUベンダーのドライバが対応していないようなのでWARPで動かす必要があります.
Running Shaders
https://github.com/Microsoft/DirectXShaderCompiler/wiki/Running-Shaders
Wikiを読んでいると今回オープンソースになりましたが,Windows SDKに付属する形にはなるようです.現在はPreviewリリースということだそうです.
https://github.com/Microsoft/DirectXShaderCompiler/wiki
今回のコンパイラからHLSL 6.0にも対応するようでWave operationが使えるようになります.Waveオペレーションは,GPUのスレッド間でのデータのやりとりなどができる仕組み(GPUのWavefront/Warp内での)で従来だとスレッドグループ共有メモリとスレッドグループ同期データをやり取りするような手法の置き換えが可能になることが予想できます.
HLSL 6.0
https://msdn.microsoft.com/en-us/library/windows/desktop/mt733232(v=vs.85).aspx
スライド:DirectX 12 Advancements
https://onedrive.live.com/?cid=A4B88088C01D9E9A&id=A4B88088C01D9E9A%21170&parId=A4B88088C01D9E9A%21106&o=OneUp