次の方法で共有


BasicCompute11 サンプル

パス

ソース SDK ルート\Samples\C++\Direct3D11\BasicCompute11
実行可能ファイル SDK ルート\Samples\C++\Direct3D11\Bin\x86 または x64\BasicCompute11.exe

サンプルの概要

このサンプルでは、array A + array B を実装することによって、DirectX11 コンピュート シェーダーの基本的な使用方法を示します。

サンプルが動作するしくみ

コンピュート シェーダー (CS) のセットアップは、次の手順で行います。

  1. D3D11 デバイスおよびコンテキストを作成します。作成したデバイスの機能レベルをチェックしてください。システムにインストールされているグラフィック カードに応じて、次の可能性があります。

    1. FL11 デバイスが作成された場合、コンピュート シェーダー 5.0 のすべての機能を利用できます。
    2. 一方、FL10 または FL10.1 デバイスが作成された場合、コンピュート シェーダー 4.0/4.1 を利用できる可能性があります。これは、CS4.0/4.1 がほとんどの DirectX 10 カードで利用できるとはいえ、そうでない場合もあるためです。CheckFeatureSupport を呼び出すと、CS4.0/4.1 が利用可能かどうかを確認できます。その実行方法については、サンプル コードを参照してください。
    3. FL9.x デバイスが作成された場合、コンピュート シェーダーは利用できません。
  2. コンピュート シェーダーをコンパイルして作成します。

  3. コンピュート シェーダーの入力リソースを作成し、データを書き込みます。array A + array B を実行するので、入力リソースとして 2 つのバッファーを作成します。

  4. 両方の入力バッファー リソースに対して SRV (シェーダー リソース ビュー) を作成します。シェーダー リソース ビューは、入力リソースをシェーダーにバインドするために使用します。

  5. コンピュート シェーダーの出力リソースを作成します。

  6. 出力リソースに対して UAV (順序なしアクセス ビュー) を作成します。順序なしアクセス ビューは、出力リソースをコンピュート シェーダーにバインドするために使用します。CS4.0/4.1 では、コンピュート シェーダーに 1 度に 1 つの出力リソースしかバインドできません。CS5.0 では、この制限はありません。

  7. Dispatch を呼び出して、コンピュート シェーダーを実行します。