D3D12_SHADER_DESC 構造体 (d3d12shader.h)

シェーダーについて説明します。

構文

typedef struct _D3D12_SHADER_DESC {
  UINT                             Version;
  LPCSTR                           Creator;
  UINT                             Flags;
  UINT                             ConstantBuffers;
  UINT                             BoundResources;
  UINT                             InputParameters;
  UINT                             OutputParameters;
  UINT                             InstructionCount;
  UINT                             TempRegisterCount;
  UINT                             TempArrayCount;
  UINT                             DefCount;
  UINT                             DclCount;
  UINT                             TextureNormalInstructions;
  UINT                             TextureLoadInstructions;
  UINT                             TextureCompInstructions;
  UINT                             TextureBiasInstructions;
  UINT                             TextureGradientInstructions;
  UINT                             FloatInstructionCount;
  UINT                             IntInstructionCount;
  UINT                             UintInstructionCount;
  UINT                             StaticFlowControlCount;
  UINT                             DynamicFlowControlCount;
  UINT                             MacroInstructionCount;
  UINT                             ArrayInstructionCount;
  UINT                             CutInstructionCount;
  UINT                             EmitInstructionCount;
  D3D_PRIMITIVE_TOPOLOGY           GSOutputTopology;
  UINT                             GSMaxOutputVertexCount;
  D3D_PRIMITIVE                    InputPrimitive;
  UINT                             PatchConstantParameters;
  UINT                             cGSInstanceCount;
  UINT                             cControlPoints;
  D3D_TESSELLATOR_OUTPUT_PRIMITIVE HSOutputPrimitive;
  D3D_TESSELLATOR_PARTITIONING     HSPartitioning;
  D3D_TESSELLATOR_DOMAIN           TessellatorDomain;
  UINT                             cBarrierInstructions;
  UINT                             cInterlockedInstructions;
  UINT                             cTextureStoreInstructions;
} D3D12_SHADER_DESC;

メンバー

Version

"ps_5_0" などのシェーダー モデルに対応するエンコードされた UINT としてのシェーダー バージョン。 Version には、プログラムの種類、メジャー バージョン番号、マイナー バージョン番号が記述されています。 プログラムの種類は、 D3D12_SHADER_VERSION_TYPE 列挙定数です。 バージョン は次のようにデコードされます。

  • プログラムの種類 = (バージョン & 0xFFFF0000) >> 16
  • メジャー バージョン = (バージョン & 0x000000F0) >> 4
  • マイナー バージョン = (バージョン & 0x0000000F)

Creator

シェーダーの発信元の名前。

Flags

シェーダーコンパイル/解析フラグ。

ConstantBuffers

シェーダー定数バッファーの数。

BoundResources

シェーダーにバインドされているリソース (テクスチャとバッファー) の数。

InputParameters

入力シグネチャ内のパラメーターの数。

OutputParameters

出力シグネチャ内のパラメーターの数。

InstructionCount

コンパイルされたシェーダー内の中間言語命令の数。

TempRegisterCount

コンパイルされたシェーダー内の一時レジスタの数。

TempArrayCount

使用される一時配列の数。

DefCount

定数定義の数。

DclCount

宣言の数 (入力 + 出力)。

TextureNormalInstructions

分類されていないテクスチャ命令の数。

TextureLoadInstructions

テクスチャ読み込み命令の数

TextureCompInstructions

テクスチャ比較命令の数

TextureBiasInstructions

テクスチャ バイアス命令の数

TextureGradientInstructions

テクスチャグラデーション命令の数。

FloatInstructionCount

使用される浮動小数点演算命令の数。

IntInstructionCount

使用される符号付き整数算術命令の数。

UintInstructionCount

使用される符号なし整数算術命令の数。

StaticFlowControlCount

使用される静的フロー制御命令の数。

DynamicFlowControlCount

使用される動的フロー制御命令の数。

MacroInstructionCount

使用されるマクロ命令の数。

ArrayInstructionCount

使用された配列命令の数。

CutInstructionCount

使用された切り取り命令の数。

EmitInstructionCount

使用された出力命令の数。

GSOutputTopology

ジオメトリ シェーダー出力トポロジを表す D3D_PRIMITIVE_TOPOLOGY型指定された値。

GSMaxOutputVertexCount

ジオメトリ シェーダーの最大出力頂点数。

InputPrimitive

ジオメトリ シェーダーまたはハル シェーダーの入力プリミティブを表す D3D_PRIMITIVE型指定された値。

PatchConstantParameters

パッチ定数シグネチャ内のパラメーターの数。

cGSInstanceCount

ジオメトリ シェーダー インスタンスの数。

cControlPoints

ハル シェーダーとドメイン シェーダー内のコントロール ポイントの数。

HSOutputPrimitive

テセレータの出力プリミティブ型を表す D3D_TESSELLATOR_OUTPUT_PRIMITIVE型の値。

HSPartitioning

テセレータパーティション分割モードを表す D3D_TESSELLATOR_PARTITIONING型指定された値。

TessellatorDomain

テセレータ ドメインを表す D3D_TESSELLATOR_DOMAIN型指定された値。

cBarrierInstructions

コンピューティング シェーダー内のバリア命令の数。

cInterlockedInstructions

コンピューティング シェーダー内のインターロックされた命令の数。

cTextureStoreInstructions

コンピューティング シェーダーでのテクスチャ書き込みの数。

注釈

シェーダーは HLSL で記述され、HLSL コンパイラによって中間言語にコンパイルされます。 シェーダーの説明は、コンパイルされたシェーダーに関する情報を返します。 シェーダーの説明を取得するには、 ID3D12ShaderReflection::GetDesc を呼び出します。

要件

要件
Header d3d12shader.h

こちらもご覧ください

シェーダー構造体