差分

ナビゲーションに移動 検索に移動

SPIR-V

1,237 バイト追加, 2019年11月1日 (金) 07:42
'''SPIR-V'''(語源:Standard Portable Intermediate Representation V)とは、V、読み:すぴあ・ふぁいぶ)とは、[[Vulkan]]のために開発された[[シェーディング言語]]の[[中間コード]]表現である。
== 概要 ==SPIR-Vは[[OpenCL]]のために開発された「[[SPIR]]」と名称は似ているが別物である。SPIRは[[LLVM]]を利用していたが、SPIR-Vからはより[[シェーダー]]に特化して効率的に利用できるよう独自実装になった。順当にいけばSPIR 3.0という名称になりそうなものであったが、なぜかV(5.0)まで一気に飛んだ。」の後続として登場した。SPIRの後続ではあるが完全に別物であり互換性はまったくない。
SPIRでは[[VulkanLLVM]]ではを利用して[[SDKGPU]]に付属のglslangを利用して[[GLSLFPGA]]および[[HLSL]]からSPIRなど幅広いデバイスを想定していたが、SPIR-VVからは[[バイナリGPU]]を出力することができる。だけに特化したシンプルな独自実装になった。
== 関連項目 ==* [[Vulkan]]* [[HLSL]]* [[GLSL]]* [[Cg]]順当にいけば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から[[GLSL]]や[[HLSL]]、MSL([[Metal]])へ逆コンパイルする公式ツールもあり、直接使うよりは、そのような使い方がメインになりそうではある。 ==SPIR-Vを出力する==[[Vulkan]]では公式[[SDK]]に付属の[[glslang]]を利用して[[GLSL]]からSPIR-Vを出力することができる。 また、[[マイクロソフト]]や[[グーグル]]などが開発する[[DirectX Shader Compiler]](dxc)を利用して[[HLSL]]からSPIR-Vを出力することもできる。 利用開始までの難易度はglslangよりdxcの方が圧倒的に簡単だと思われる。 ==関連項目==* [[DirectX Shader CompilerでSPIR-Vを出力する]]* [[SPIR-VからGLSLを生成する]]* [[SPIR-VからHLSLを生成する]]* [[MacにMoltenVKを入れてVulkanを使ってみる]]*[[Vulkan]]*[[HLSL]]*[[GLSL]]*[[Cg]] == 外部リンク ==* 仕様書 = https://www.khronos.org/registry/spir-v/specs/1.0/SPIRV.html
[[category: コンピューターグラフィックス]]
匿名利用者

案内メニュー