PFND3D11DDI_DISPATCH コールバック関数 (d3d10umddi.h)

Dispatch 関数は、コンピューティング シェーダーを実行します。

構文

PFND3D11DDI_DISPATCH Pfnd3d11ddiDispatch;

void Pfnd3d11ddiDispatch(
  D3D10DDI_HDEVICE unnamedParam1,
  UINT unnamedParam2,
  UINT unnamedParam3,
  UINT unnamedParam4
)
{...}

パラメーター

unnamedParam1

hDevice [in]

ディスプレイ デバイスへのハンドル (グラフィックス コンテキスト)。

unnamedParam2

ThreadGroupCountX [in]

スレッド グループ グリッドの x 次元のサイズ (スレッド グループ単位)。 最大サイズは 65535 です。

unnamedParam3

ThreadGroupCountY [in]

スレッド グループ グリッドの y 次元のサイズ (スレッド グループ単位)。 最大サイズは 65535 です。

unnamedParam4

ThreadGroupCountZ [in]

スレッド グループ グリッドの z 次元のサイズ (スレッド グループ単位)。 最大サイズは 65535 です。

戻り値

なし

解説

ドライバーは、 pfnSetErrorCb コールバック関数を使用してエラー コードを設定できます。

Direct3D ランタイムは、ディスプレイ デバイスでドライバーの Dispatch 関数を呼び出して、コンピューティング シェーダーを実行します。 コンパイルされたコンピューティング シェーダーは、スレッドごとに実行する命令のセットと、グループごとに実行するスレッドの数を定義します。 スレッド グループ パラメーター (ThreadGroupCountXThreadGroupCountYおよび ThreadGroupCountZ) は、実行するスレッド グループの数を示します。 各スレッド グループには、コンパイルされたコンピューティング シェーダーで定義されているのと同じ数のスレッドが含まれています。 スレッド グループは、3 次元グリッドに編成されます。 コンパイル済みコンピューティング シェーダーが実行するスレッド グループの合計数は、次の計算によって決まります。

ThreadGroupCountX * ThreadGroupCountY * ThreadGroupCountZ

特に、スレッド グループ パラメーターのいずれかの値が 0 の場合、 Dispatch 関数は何も行いません。

ドライバーは、D3DDDIERR_DEVICEREMOVEDを除き、エラーが発生しないようにする必要があります。 したがって、ドライバーが pfnSetErrorCb 関数の呼び出しで、D3DDDIERR_DEVICEREMOVEDを除くエラーを渡した場合、Direct3D ランタイムはエラーが重大であると判断します。 デバイスが削除された場合でも、ドライバーはD3DDDIERR_DEVICEREMOVEDを返す必要はありません。ただし、デバイスの削除が ディスパッチ の操作に干渉する場合 (通常は発生しないようにする必要があります)、ドライバーはD3DDDIERR_DEVICEREMOVEDを返すことができます。

要件

要件
サポートされている最小のクライアント ディスパッチは、Windows 7 オペレーティング システム以降でサポートされています。
対象プラットフォーム デスクトップ
Header d3d10umddi.h (D3d10umddi.h を含む)

こちらもご覧ください

D3D11DDI_DEVICEFUNCS

pfnSetErrorCb