0

私たちのプロジェクトは、DirectX 10 または 11 SDK アプリケーション内またはゲーム (BioShock、Far Cry など..) アプリケーションで使用されるさまざまな Vertex および Pixel、Geometry シェーダーをプロファイリングすることです。

ここで、シェーダー (VS、GS、PS) がいつ使用されているか、パイプライン内で実行されているかを技術的に理解する必要があります。Draw() DirectX API 呼び出し中に、シェーダーの設定がパイプライン内で実行されることがわかっています。

  1. SetShader() を使用してパイプラインに設定されているシェーダーを内部的に実行または利用できる、Draw() 呼び出し以外の API はありますか?

  2. デバイス API (Map、unmap、getResourcem、Copy リソースなど) はシェーダーを間接的に操作しますか?

DirectX Draw() API 呼び出し以外の DirectX ランタイムまたはグラフィックス ドライバー内のシェーダーの使用に関連するポインタは、特定して堅牢な実装を行うのに役立ちます。

4

1 に答える 1

1
  1. はい、Compute Shaders と特に Dispatch() メソッドを確認してください。
  2. いいえ、シェーダーは単なる状態情報であるため、ID3D11*Shader オブジェクトに読み込まれると、変更できなくなります。それらを逆コンパイルする場合は、Shader Reflection API を参照してください。
于 2012-01-09T20:52:58.823 に答える