次の方法で共有


PIX で使用するアプリケーションのビルド

Direct3D アプリケーションはすべて、PIX による実行、キャプチャー、および分析が可能です。PIX で使用する実行可能ファイルには、特殊なデバッグ オプションやライブラリが必要ありません。PIX のほとんどの機能は、コンシューマー リリース用に構築される実行可能ファイル (PIX プロファイリングを禁止する D3DPERF_SetOptions がアプリケーションで呼び出されていない場合) で利用できます。

ただし、PIX の使い勝手を向上させることができるオプション フラグもいくつかあります。これらは、アプリケーション コンポーネントのコンパイル時に宣言します。

シェーダーのソースレベルのデバッグ

Direct3D バージョン 9、Direct3D バージョン 10 ではソースレベルのシェーダー デバッグがサポートされ、開発者はシェーダー デバッガー ビューで上位レベル シェーダー言語 (HLSL) ソース コードを表示できます。

PIX でソースレベルのシェーダー デバッグを使用するには、適切なデバッグ フラグを使用してアプリケーションをコンパイルする必要があります。適切なフラグは、使用する Direct3D のバージョンによって異なります。

注意

デバッグ レイヤーによって生成されるすべてのエラーや警告を解決することが不可欠です。これを行わないと、PIX でアプリケーションを実行する際に不安定になったり、回復不能な状態に陥ることがあります。

Direct3D バージョン 9 のデバッグ

Direct3D 9 シェーダーのデバッグ時に HLSL のソース コードを表示するには、アプリケーションのコンパイル時に以下のフラグを宣言する必要があります。

  • D3DXSHADER_DEBUG
    このフラグを宣言すると、Direct3D 9 を使用したアプリケーションの HLSL のデバッグが可能になります。

  • D3DXSHADER_SKIPOPTIMIZATION
    Direct3D 9 のデバッグ フラグを指定する場合は、D3DXSHADER_SKIPOPTIMIZATION フラグも指定すると、コンパイル済みシェーダーの最適化を防止でき、非常に便利です。シェーダーが最適化されると、実行速度を高速化するために命令シーケンスの順序が変更される場合がありますが、このような場合は表示されるソース コードと一致しません。シェーダーが最適化されない場合は、シェーダー デバッガー ビューにコードが表示される元の順序で実行されます。

Direct3D バージョン 10 のデバッグ

Direct3D 10 シェーダーのデバッグ時に HLSL のソース コードを表示するには、アプリケーションのコンパイル時に以下のフラグを宣言する必要があります。

  • D3D10_SHADER_DEBUG
    このフラグを宣言すると、Direct3D 10 を使用したアプリケーションの HLSL のデバッグが可能になります。

  • D3D10_SHADER_SKIP_OPTIMIZATION
    Direct3D 10 のデバッグ フラグを指定する場合は、D3D10_SHADER_SKIP_OPTIMIZATION フラグも指定すると、コンパイル済みシェーダーの最適化を防止でき、非常に便利です。シェーダーが最適化されると、実行速度を高速化するために命令シーケンスの順序が変更される場合がありますが、このような場合は表示されるソース コードと一致しません。シェーダーが最適化されない場合は、シェーダー デバッガー ビューにコードが表示される元の順序で実行されます。

関連項目

ユーザー ガイド