「DirectX Shader Compiler」を編集中

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

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

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

最新版 編集中の文章
1行目: 1行目:
'''DirectX Shader Compiler'''(通称:dxc)とは、[[マイクロソフト]]が中心となり[[オープンソース]]のもとで開発が行われている[[HLSL]]の新しい[[コンパイラ]]である。
+
'''DirectX Shader Compiler'''(通称:dxc)とは、[[マイクロソフト]]が中心となり[[オープンソース]]のもとで開発が行われている[[LLVM]]/[[Clang]]の技術をベースとした[[HLSL]]の新しい[[コンパイラ]]である。
  
 
==概要==
 
==概要==
dxcは[[DirectX 12]]から登場した[[HLSL]]の新しい[[コンパイラ]]である。
+
dxcは[[DirectX 12]]から登場した新しい[[HLSL]]向けの[[コンパイラ]]である。
dxcは[[Windows]]だけでなく[[MacOS]]や[[Linux]]でも動くという特徴がある。
+
[[Windows]]だけでなく[[MacOS]]や[[Linux]]でも動くという特徴がある。
  
 
* https://github.com/microsoft/DirectXShaderCompiler
 
* https://github.com/microsoft/DirectXShaderCompiler
  
dxcは[[LLVM]]/[[Clang]]の技術をベースとしている。
+
dxcを使うと[[HLSL]][[ソースコード]])を[[中間コード]](DXIL)に[[コンパイル]]できる。
 +
これは従来のfxc.exeで作られる中間コード(DXBC)とは別物である。
 +
移行期間なのかDirectX12ではdxcとfxcの両方が搭載されている。
  
dxcを使うと[[HLSL]]から[[中間コード]](DXIL)を出力できる。
+
また、途中から[[Google]]も開発に参加してきて[[Vulkan]]で動かすための中間コード([[SPIR-V]])も吐けるようになった。こいつ[[Android]]でも使えるぞ!
これは従来のfxc.exeで作られる中間コード(DXBC)とはまったくの別物である。
 
ちなみに[[DirectX12]]にはdxcとfxcの両方が搭載されている。
 
 
 
最近では[[Google]]もdxcの開発に加わり、[[Android]]の[[Vulkan]]で使用できる中間コード([[SPIR-V]])も出力できるようになった。
 
  
 
* [[DirectX Shader CompilerでSPIR-Vを出力する]]
 
* [[DirectX Shader CompilerでSPIR-Vを出力する]]
  
 
== dxcで使用できるプロファイル ==
 
== dxcで使用できるプロファイル ==
表向きは[[Shader Model]] 6.0以降ということになっている。
+
表向きはvs_6_0以降ということになっている。
しかしShader Model 4.0以降であればコンパイルは通るようだ。
+
しかしvs_4_0以降ならコンパイルが通る。
なお、Shader Model 3.0より古いバージョンはは駄目なようだ。
+
なお、vs_3_0より古いのは駄目だ。
  
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
| [[Vertex Shader]]         || vs_6_0, vs_6_1, vs_6_2, vs_6_3, vs_6_4, vs_6_5, vs_6_6,  
+
| Vertex Shader        || vs_6_0, vs_6_1, vs_6_2, vs_6_3, vs_6_4, vs_6_5, vs_6_6,  
 
|-
 
|-
| [[Geometry Shader]]       || gs_6_0, gs_6_1, gs_6_2, gs_6_3, gs_6_4, gs_6_5, gs_6_6,  
+
| Geometry Shader      || gs_6_0, gs_6_1, gs_6_2, gs_6_3, gs_6_4, gs_6_5, gs_6_6,  
 
|-
 
|-
| [[Pixel Shader]]         || ps_6_0, ps_6_1, ps_6_2, ps_6_3, ps_6_4, ps_6_5, ps_6_6,  
+
| Pixel Shader          || ps_6_0, ps_6_1, ps_6_2, ps_6_3, ps_6_4, ps_6_5, ps_6_6,  
 
|-
 
|-
| [[Hull Shader]]           || hs_6_0, hs_6_1, hs_6_2, hs_6_3, hs_6_4, hs_6_5, hs_6_6,  
+
| Hull Shader          || hs_6_0, hs_6_1, hs_6_2, hs_6_3, hs_6_4, hs_6_5, hs_6_6,  
 
|-
 
|-
| [[Domain Shader]]         || ds_6_0, ds_6_1, ds_6_2, ds_6_3, ds_6_4, ds_6_5, ds_6_6,
+
| Domain Shader        || ds_6_0, ds_6_1, ds_6_2, ds_6_3, ds_6_4, ds_6_5, ds_6_6,
 
|-
 
|-
| [[Library]]               || lib_6_1, lib_6_2, lib_6_3, lib_6_4, lib_6_5, lib_6_6,  
+
| Library              || lib_6_1, lib_6_2, lib_6_3, lib_6_4, lib_6_5, lib_6_6,  
 
|-
 
|-
| [[Compute Shader]]       || cs_6_0, cs_6_1, cs_6_2, cs_6_3, cs_6_4, cs_6_5, cs_6_6,  
+
| Compute Shader        || cs_6_0, cs_6_1, cs_6_2, cs_6_3, cs_6_4, cs_6_5, cs_6_6,  
 
|-
 
|-
| [[Amplification Shader]] || as_6_5, as_6_6,  
+
| Amplification Shader  || as_6_5, as_6_6,  
 
|-
 
|-
| [[Mesh Shader]]           || ms_6_5, ms_6_6,  
+
| Mesh Shader          || ms_6_5, ms_6_6,  
 
|}
 
|}
  

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

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

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