「SPIR-V」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
imported>Administrator
 
5行目: 5行目:
 
SPIRの後続ではあるが完全に別物であり互換性はまったくない。
 
SPIRの後続ではあるが完全に別物であり互換性はまったくない。
  
SPIRでは[[LLVM]]を利用して[[GPU]]や[[FPGA]]など幅広いデバイスを想定していたが、SPIR-Vからは[[GPU]]だけに特化したシンプルな独自実装になった。
+
SPIRでは[[LLVM]]を利用して[[GPU]]や[[FPGA]]などの幅広いデバイスを想定してグダグダになっていた。これを反省し、SPIR-Vでは[[GPU]]だけに特化したシンプルな独自実装に全面刷新となった。
  
 
順当にいけばSPIR 3.0という名称になりそうなものであったが、なぜかV(5.0)まで一気に飛んだ。
 
順当にいけばSPIR 3.0という名称になりそうなものであったが、なぜかV(5.0)まで一気に飛んだ。

2019年11月6日 (水) 00:54時点における最新版

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の方が圧倒的に簡単だと思われる。

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

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