「SPIR-V」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
 
37行目: 37行目:
  
 
[[category: コンピューターグラフィックス]]
 
[[category: コンピューターグラフィックス]]
 +
[[category: 3DCG]]
 +
[[category: シェーディング言語]]

2020年5月19日 (火) 02:10時点における最新版

SPIR-V(語源:Standard Portable Intermediate Representation V、読み:すぴあ・ふぁいぶ)とは、Vulkanのために開発されたシェーディング言語中間コード表現である。

概要[編集 | ソースを編集]

SPIR-VはOpenCLのために開発された「SPIR」の後続として登場した。 SPIRの後続ではあるが完全に別物であり互換性はまったくない。

SPIRではLLVMを利用してGPUFPGAなどの幅広いデバイスを想定してグダグダになっていた。これを反省し、SPIR-VではGPUだけに特化したシンプルな独自実装に全面刷新となった。

順当にいけばSPIR 3.0という名称になりそうなものであったが、なぜかV(5.0)まで一気に飛んだ。

動作環境[編集 | ソースを編集]

「SPIR-VはOpenGL 4.6とVulkanで使える」とあるが、OpenGL 4.6がまともに動く環境は存在しないので、実質的にVulkan専用のような状態になっている。

また、Vulkanもまともに動くのはAndroidくらいなので、実質的にAndroid専用のような状態になっている。VulkanはAndroid 7.0 (API Level 24)から利用できる。

SPIR-VからGLSLHLSL、MSL(Metal)へ逆コンパイルする公式ツールもあり、直接使うよりは、そのような使い方がメインになりそうではある。

SPIR-Vを出力する[編集 | ソースを編集]

Vulkanでは公式SDKに付属のglslangを利用してGLSLからSPIR-Vを出力することができる。

また、マイクロソフトグーグルなどが開発するDirectX Shader Compiler(dxc)を利用してHLSLからSPIR-Vを出力することもできる。

利用開始までの難易度はglslangよりdxcの方が圧倒的に簡単だと思われる。

関連項目[編集 | ソースを編集]

外部リンク[編集 | ソースを編集]