私は最近、ハードウェア企業のGPUプロファイラー(Qualcomm、PowerVR、Intel)を研究しています。これらのツールは、過去に使用したGPUプロファイラー(XCodeのOpenGL ESフレームキャプチャとapitrace)よりも低レベルの詳細を提供しているようです。これらは、行われたOpenGL呼び出しと現在の状態のみをリストします。リソースです。
サンプラーキャッシュミスやシェーダーアセンブラーコードなどを表示する低レベルのツールを作成する場合、どうすれば開始できますか?
私は最近、ハードウェア企業のGPUプロファイラー(Qualcomm、PowerVR、Intel)を研究しています。これらのツールは、過去に使用したGPUプロファイラー(XCodeのOpenGL ESフレームキャプチャとapitrace)よりも低レベルの詳細を提供しているようです。これらは、行われたOpenGL呼び出しと現在の状態のみをリストします。リソースです。
サンプラーキャッシュミスやシェーダーアセンブラーコードなどを表示する低レベルのツールを作成する場合、どうすれば開始できますか?
回答:
基本的なGPUタイミングデータについては、D3Dタイムスタンプクエリまたは同等のOpenGLタイマークエリを使用できます。
キャッシュミスなどの低レベルのハードウェアデータは、非常にベンダー固有のものになります。各GPUベンダーには、独自のカスタムAPIまたは拡張機能があり、ハードウェア上の低レベルのパフォーマンスデータにアクセスできます。APIは動作方法が異なり、必ずしもすべてが同じ詳細を公開するわけではありません。利用可能なデータは、同じベンダー内の異なるチップモデル間でも異なる可能性があるため、ハードウェアがどのように機能するかを理解しておく必要があるでしょう。
主なGPUベンダーのほとんどに関連するAPIへのリンクを次に示します。