次の方法で共有


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

ThreadGroupCountX * ThreadGroupCountY * ThreadGroupCountZ

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

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

必要条件

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

関連項目

D3D11DDI_DEVICEFUNCS

pfnSetErrorCb