次の方法で共有


dcl_maxOutputVertexCount (sm4 - asm)

ジオメトリ シェーダーによって出力できる頂点の最大数を宣言します。

dcl_maxOutputVertexCount
項目 説明
カウント
[入力]1 から n までの 32 ビット符号なし整数 (両端を含む)。

ジオメトリ シェーダーは、最大 1024 の 32 ビット値を出力できます。 この最大値には、入力データのサイズと、シェーダーによって作成されたデータのサイズが含まれます。

いくつかの制限事項を次に示します。

  • ジオメトリ シェーダーの実行が完了する前に頂点の数に達すると、シェーダーは終了します。
  • ジオメトリ シェーダーは、頂点を出力する前に、プログラムの最後に到達できます。これは完全に合法です。
  • ジオメトリ シェーダーをデバッグする場合は、生成された出力命令の数をカウントすることで、生成された頂点の数を確認できます。

この命令は、次のシェーダー ステージに適用されます。

頂点シェーダー ジオメトリ シェーダー ピクセル シェーダー
x

この命令は、アセンブリ内のシェーダーのデバッグに役立つよう含まれています。シェーダー モデル 4 を使用してアセンブリ言語でシェーダーを作成することはできません。

次に例をいくつか示します。

位置 (.xyzw) と色 (.rgb) で構成される入力データを想定します。 各コンポーネントは 1 バイトを消費します。7 バイトの場合、シェーダーで生成できる頂点の最大数は 1024 / (4 + 3) = 146 になります。

dcl_maxOutputVertexCount 146

ジオメトリ シェーダーが 32 個の 4 コンポーネント ベクトルを作成するとします。 シェーダーで生成できる頂点の最大数は、1024 / (32 * 4) = 8 です。

dcl_maxOutputVertexCount 8

最小シェーダー モデル

この関数は、次のシェーダー モデルでサポートされています。

シェーダー モデル サポートされています
シェーダー モデル 5 はい
シェーダー モデル 4.1 はい
シェーダー モデル 4 はい
シェーダー モデル 3 (DirectX HLSL) no
シェーダー モデル 2 (DirectX HLSL) no
シェーダー モデル 1 (DirectX HLSL) no

シェーダー モデル 4 アセンブリ (DirectX HLSL)