メインメニューを開く

差分

SPIR-V

1,367 バイト追加, 2022年11月2日 (水) 08:48
'''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)まで一気に飛んだ。
== 外部リンク 動作環境==* 仕様書 = https://www.khronos.org/registry/spir「SPIR-v/specs/1VはOpenGL 4.0/SPIRV6と[[Vulkan]]で使える」とあるが、OpenGL 4.html6がまともに動く環境は存在しないので、実質的に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: コンピューター・グラフィックス]][[category: 3DCG]][[category: コンピューターグラフィックスシェーディング言語]]