メインメニューを開く

「SPIR-V」を編集中

警告: ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。ログインまたはアカウントを作成すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。

この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。

最新版 編集中の文章
1行目: 1行目:
'''SPIR-V'''(語源:Standard Portable Intermediate Representation V、読み:すぴあ・ふぁいぶ)とは、[[Vulkan]]のために開発された[[シェーディング言語]]の[[中間コード]]表現である。
+
'''SPIR-V'''(語源:Standard Portable Intermediate Representation V)とは、[[Vulkan]]のために開発された[[シェーディング言語]]の[[中間コード]]表現である。
  
==概要==
+
[[OpenCL]]のために開発された「[[SPIR]]」と似ているが別物である。SPIRは[[LLVM]]を利用していたが、SPIR-Vからはより[[シェーダー]]に特化して効率的に利用できるよう独自実装になった。順当にいけばSPIR 3.0という名称になりそうなものであったが、なぜかV(5.0)まで一気に飛んだ。
SPIR-Vは[[OpenCL]]のために開発された「[[SPIR]]」の後続として登場した。
 
SPIRの後続ではあるが完全に別物であり互換性はまったくない。
 
  
SPIRでは[[LLVM]]を利用して[[GPU]]だけでなく[[FPGA]]などの幅広いデバイスを想定してグダグダになっていた。この問題を反省しSPIR-Vでは[[GPU]]だけに特化したシンプルな実装に全面刷新となった。
+
VulkanではSDKに付属のglslangを利用して[[GLSL]]および[[HLSL]]からSPIR-V[[バイナリ]]を出力することができる。
  
順当にいけばSPIR 3.0という名称になりそうなものであったが、なぜかV(5.0)まで一気に飛んだ。
+
== 関連項目 ==
  
==動作環境==
+
* [[Vulkan]]
「SPIR-VはOpenGL 4.6と[[Vulkan]]で使える」とあるが、OpenGL 4.6がまともに動く環境は存在しないので、実質的にVulkan専用のような状態になっている。
+
* [[HLSL]]
 +
* [[GLSL]]
 +
* [[Cg]]
  
また、[[Vulkan]]もまともに動くのは[[Android]]くらいなので、実質的に[[Android]]専用のような状態になっている。[[Vulkan]]はAndroid 7.0 (API Level 24)から利用できる。
+
== 外部リンク ==
 +
* 仕様書 = https://www.khronos.org/registry/spir-v/specs/1.0/SPIRV.html
  
SPIR-Vから[[GLSL]]や[[HLSL]]、MSL([[Metal]])へ逆コンパイルする公式ツールもあり、直接使うよりは、そのような使い方がメインになりそうではある。
+
[[category: コンピューターグラフィックス]]
 
 
==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: シェーディング言語]]
 

MonoBookへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細はMonoBook:著作権を参照)。 著作権保護されている作品は、許諾なしに投稿しないでください!

このページを編集するには、下記の確認用の質問に回答してください (詳細):

取り消し 編集の仕方 (新しいウィンドウで開きます)