「DirectX Shader Compiler」の版間の差分
Administrator (トーク | 投稿記録) 編集の要約なし |
Administrator (トーク | 投稿記録) 編集の要約なし |
||
| (同じ利用者による、間の3版が非表示) | |||
| 1行目: | 1行目: | ||
'''DirectX Shader Compiler'''(通称:dxc)とは、[[マイクロソフト]]が中心となり[[オープンソース]]のもとで開発が行われている | '''DirectX Shader Compiler'''(通称:dxc)とは、[[マイクロソフト]]が中心となり[[オープンソース]]のもとで開発が行われている[[HLSL]]の新しい[[コンパイラ]]である。 | ||
==概要== | ==概要== | ||
dxcは[[DirectX 12]] | dxcは[[DirectX 12]]から登場した[[HLSL]]の新しい[[コンパイラ]]である。 | ||
[[Windows]]だけでなく[[MacOS]]や[[Linux]]でも動くという特徴がある。 | dxcは[[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の両方が搭載されている。 | |||
最近では[[Google]]もdxcの開発に加わり、[[Android]]の[[Vulkan]]で使用できる中間コード([[SPIR-V]])も出力できるようになった。 | |||
* [[DirectX Shader CompilerでSPIR-Vを出力する]] | * [[DirectX Shader CompilerでSPIR-Vを出力する]] | ||
== dxcで使用できるプロファイル == | == dxcで使用できるプロファイル == | ||
表向きは[[Shader Model]] 6.0以降ということになっている。 | |||
しかしShader Model 4.0以降であればコンパイルは通るようだ。 | |||
なお、Shader Model 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, | ||
|} | |} | ||