D3DCOMPILE 定数

D3DCOMPILE 定数は、コンパイラが HLSL コードをコンパイルする方法を指定します。

定数 説明 Note
D3DCOMPILE_DEBUG
/ZI
デバッグ ファイル/行/型/シンボル情報を出力コードに挿入するようにコンパイラに指示します。 「D3DXSHADER_DEBUG」を参照してください
D3DCOMPILE_SKIP_VALIDATION
/Vd
既知の機能と制約に対して生成されたコードを検証しないようにコンパイラに指示します。 この定数は、過去に正常にコンパイルされたシェーダーでのみ使用することをお勧めします。 DirectX は、シェーダーをデバイスに設定する前に、常にシェーダーを検証します。 「D3DXSHADER_SKIPVALIDATION」を参照してください
D3DCOMPILE_SKIP_OPTIMIZATION
/Od
コード生成中に最適化手順をスキップするようにコンパイラに指示します。 デバッグ目的でのみ、この定数を設定することをお勧めします。 「D3DXSHADER_SKIPOPTIMIZATION」を参照してください
D3DCOMPILE_PACK_MATRIX_ROW_MAJOR
/Zpr
シェーダーからの入力と出力に対して行メジャー順にマトリックスをパックするようにコンパイラに指示します。 「D3DXSHADER_PACKMATRIX_ROWMAJOR」を参照してください
D3DCOMPILE_PACK_MATRIX_COLUMN_MAJOR
/Zpc
シェーダーからの入力と出力で行列を列メジャー順にパックするようにコンパイラに指示します。 一連のドット積はベクトル行列乗算を実行できるため、通常、この種類のパッキングの方が効率的です。 「D3DXSHADER_PACKMATRIX_COLUMNMAJOR」を参照してください
D3DCOMPILE_PARTIAL_PRECISION
/Gpp
部分的な精度ですべての計算を実行するようにコンパイラに指示します。 この定数を設定すると、コンパイルされたコードが一部のハードウェアで高速に実行される可能性があります。 「D3DXSHADER_PARTIALPRECISION」を参照してください
D3DCOMPILE_FORCE_VS_SOFTWARE_NO_OPT
次に高いシェーダー プロファイルの頂点シェーダーをコンパイルするようにコンパイラに指示します。 この定数を使用すると、デバッグのオンと最適化がオフになります。 このフラグは Direct3D 9 にのみ適用されました。 「D3DXSHADER_FORCE_VS_SOFTWARE_NOOPT」を参照してください
D3DCOMPILE_FORCE_PS_SOFTWARE_NO_OPT
次に高いシェーダー プロファイルのピクセル シェーダーをコンパイルするようにコンパイラに指示します。 この定数を使用すると、デバッグのオンと最適化もオフになります。 このフラグは Direct3D 9 にのみ適用されました。 「D3DXSHADER_FORCE_PS_SOFTWARE_NOOPT」を参照してください
D3DCOMPILE_NO_PRESHADER
/Op
プリシェーダーを無効にするようにコンパイラに指示します。 この定数を設定した場合、コンパイラは評価のために静的式を取り出しません。 このフラグは、従来の Direct3D 9 および Direct3D 10 Effects (FX) にのみ適用されました。 「D3DXSHADER_NO_PRESHADER」を参照してください
D3DCOMPILE_AVOID_FLOW_CONTROL
/Gfa
可能な場合はフロー制御コンストラクトを使用しないようにコンパイラに指示します。 「D3DXSHADER_AVOID_FLOW_CONTROL」を参照してください
D3DCOMPILE_ENABLE_STRICTNESS
/Ges
厳密なコンパイルを強制します。これにより、レガシ構文が許可されない可能性があります。 既定では、コンパイラは非推奨の構文の厳密さを無効にします。
D3DCOMPILE_IEEE_STRICTNESS
/Gis
IEEE 規則を破る可能性のある最適化を回避する IEEE 厳密コンパイルを強制します。 「D3DXSHADER_IEEE_STRICTNESS」を参照してください
D3DCOMPILE_ENABLE_BACKWARDS_COMPATIBILITY
/Gec
以前のシェーダーが 5_0 ターゲットにコンパイルできるようにコンパイラに指示します。 「D3DXSHADER_ENABLE_BACKWARDS_COMPATIBILITY」を参照してください
D3DCOMPILE_OPTIMIZATION_LEVEL0
/O0
最も低い最適化レベルを使用するようにコンパイラに指示します。 この定数を設定すると、コンパイラによって生成されるコードが遅くなる可能性がありますが、コードはより迅速に生成されます。 シェーダーを反復的に開発するときに、この定数を設定します。 「D3DXSHADER_OPTIMIZATION_LEVEL0」を参照してください
D3DCOMPILE_OPTIMIZATION_LEVEL1
/O1
2 番目に低い最適化レベルを使用するようにコンパイラに指示します。 「D3DXSHADER_OPTIMIZATION_LEVEL1」を参照してください
D3DCOMPILE_OPTIMIZATION_LEVEL2
/O2
2 番目に高い最適化レベルを使用するようにコンパイラに指示します。 「D3DXSHADER_OPTIMIZATION_LEVEL2」を参照してください
D3DCOMPILE_OPTIMIZATION_LEVEL3
/O3
最高の最適化レベルを使用するようにコンパイラに指示します。 この定数を設定すると、コンパイラは可能な限り最適なコードを生成しますが、これを行うには大幅に時間がかかる場合があります。 パフォーマンスが最も重要な要素である場合は、アプリケーションの最終的なビルドに対してこの定数を設定します。 「D3DXSHADER_OPTIMIZATION_LEVEL3」を参照してください
D3DCOMPILE_WARNINGS_ARE_ERRORS
/WX
シェーダー コードをコンパイルするときに、すべての警告をエラーとして扱うようにコンパイラに指示します。 すべての警告を解決し、見つけにくいコードの欠陥の数を減らすことができるように、新しいシェーダー コードにはこの定数を使用することをお勧めします。
D3DCOMPILE_RESOURCES_MAY_ALIAS
/res_may_alias
順序指定されていないアクセス ビュー (UAV) とシェーダー リソース ビュー (SRV) がcs_5_0のエイリアスになる可能性があるとコンパイラに指示します。 DirectX 12/シェーダー モデル 5.1 にのみ適用されます
D3DCOMPILE_ENABLE_UNBOUNDED_DESCRIPTOR_TABLES
/enable_unbounded_descriptor_tables
バインドされていない記述子テーブルを有効にするようにコンパイラに指示します。 DirectX 12/シェーダー モデル 5.1 にのみ適用されます
D3DCOMPILE_ALL_RESOURCES_BOUND
/all_resources_bound
すべてのリソースがバインドされていることを確認するようにコンパイラに指示します。 DirectX 12/シェーダー モデル 5.1 にのみ適用されます
D3DCOMPILE_DEBUG_NAME_FOR_SOURCE
/Zss
デバッグ PDB を生成すると、ソース ファイルとバイナリがハッシュに使用されます。
D3DCOMPILE_DEBUG_NAME_FOR_BINARY
/Zsb
デバッグ PDB を生成する場合、これはハッシュに対してのみバイナリ ファイル名を使用します。

Note

D3DCOMPILE_RESOURCES_MAY_ALIASD3DCOMPILE_ENABLE_UNBOUNDED_DESCRIPTOR_TABLES、および D3DCOMPILE_ALL_RESOURCES_BOUND コンパイラ定数は、Windows 8.1 SDK 以降に付属するD3dcompiler_47.dllから始まる新しい定数です。

Note

D3DCOMPILE_DEBUG_NAME_FOR_SOURCEコンパイラ定数と D3DCOMPILE_DEBUG_NAME_FOR_BINARY コンパイラ定数は、Windows 10 Fall Creator の Update SDK (バージョン 16299) 以降に付属するD3dcompiler_47.dllから始まります。 この ブログ投稿を参照してください。

Note

DirectX 12、シェーダー モデル 5.1、D3DCompile API、FXC はすべて非推奨です。 代わりに、DXIL 経由でシェーダー モデル 6 を使用してください。 GitHub を参照してください。

要件

要件
ヘッダー
D3DCompiler.h

こちらもご覧ください

D3DCompiler 定数