プログラムによって制御できる PIX タイミング キャプチャを開始します。
構文
HRESULT PIXBeginCapture(
DWORD captureFlags,
const PPIXCaptureParameters captureParameters
)
パラメーター
captureFlags
型: DWORD
実行するキャプチャの種類を示すフラグです。 同時に PIXBeginCapture に渡すことができるキャプチャ フラグは 1 つだけです。
captureParameters _In_opt_
型: PPIXCaptureParameters
タイミング キャプチャの場合は、TimingCaptureParameters 構造体へのポインターを渡すか、TimingCaptureParameters 構造体を収めた PIXCaptureParameters 共用体へのポインターを渡します。
戻り値
型: HRESULT
キャプチャが正常に開始されたかどうかを示します。 成功した場合は S_FALSE が返されます。 同時に実行できるキャプチャは 1 つのみです。 別のキャプチャが実行されているときに PIXBeginCapture を呼び出した場合、E_PENDING が返され、呼び出しは無効になります。
フラグ
| フラグ | 値 | 説明 |
|---|---|---|
| PIX_CAPTURE_TIMING | (1 << 0) | システム タイミング。 |
| PIX_CAPTURE_GPU | (1 << 1) | GPU に送信されたすべてのコマンドとその入力をキャプチャして、再生および分析できるようにします。 |
| PIX_CAPTURE_FUNCTION_SUMMARY | (1 << 2) | 関数の要約キャプチャーが [Home] タブから開始されました。 |
| PIX_CAPTURE_FUNCTION_DETAILS | (1 << 3) | 追加の関数詳細の要求が、関数の要約キャプチャーまたは呼び出し関係図キャプチャーから [Capture Additional Calls] ボタンを使用して開始されました。 |
| PIX_CAPTURE_CALLGRAPH | (1 << 4) | 呼び出し関係図キャプチャーが、PIX から、または PIXBeginCapture を呼び出すことでプログラムによって開始されました。 |
| PIX_CAPTURE_INSTRUCTION_TRACE | (1 << 5) | CPU 命令トレース キャプチャが進行中です。 |
| PIX_CAPTURE_SYSTEM_MONITOR_COUNTERS | (1 << 6) | システム モニター カウンター。 |
| PIX_CAPTURE_VIDEO | (1 << 7) | ビデオ再生。 |
| PIX_CAPTURE_AUDIO | (1 << 8) | オーディオ再生。 |
| PIX_CAPTURE_GPU_TRACE | (1 << 9) | ほぼすべての GPU ブロックから GPU ストリーミング パフォーマンス モニター (SPM) カウンターとシェーダー キュー スレッド トレーシング (SQTT) データをキャプチャします。 |
| PIX_CAPTURE_RESERVED | (1 << 15) | 将来または特殊なキャプチャ シナリオで PIX によって内部的に使用されるプレースホルダー フラグ。 |
解説
この関数は、タイトル コードから PIX キャプチャを開始します。 現在のところ、PIXBeginCapture はタイミング キャプチャ (NDA トピック)認可が必須です を取得するためにのみ使用できます。
PIXBeginCapture は、キャプチャ データをコンソールのツール メモリに格納します。 キャプチャで使用できるツール メモリの量は、PIXCaptureParameters 構造体の MaximumToolingMemorySizeMb フィールドを設定して指定します。
プログラムによるタイミング キャプチャは、PIXCaptureParameters 構造体の PIXCaptureStorage 列挙型の値によって定義される 2 つのモードのいずれかで取得できます。
PIXCaptureStorage が [メモリ]PIXBeginCapture に設定されている場合、使用可能になったツール メモリがいっぱいになり、新しいデータが破棄されます。
PIXCaptureStorage が MemoryCircular に設定されている場合、PIXBeginCapture はツール メモリがリング バッファーとして使用されます。 キャプチャは、ツール メモリがいっぱいになるまで実行されますが、キャプチャを停止する代わりに、最も古いデータが期限切れになり、新しいデータの余地が生まれます。 キャプチャは引き続き実行されます。
MemoryCircular キャプチャは、本体で使用可能なツール メモリを使い果たさない一方で、長時間実行するように設計されています。
PIXBeginCapture を使用して取得したタイミング キャプチャを PIX で表示するには、それを PC にコピーして戻し、.xpix ファイルに変換する必要があります。 PIX でタイミング キャプチャを表示するために必要な手順の説明については、「プログラムによるタイミング キャプチャを開く (NDA トピック)認可が必須です」を参照してください。
タイトル コードから PIX キャプチャを停止するには、PIXEndCapture を使用します。
//
// timing capture
//
PIXCaptureParameters captureParams = {};
captureParams.TimingCaptureParameters.CaptureGpuTiming = TRUE;
captureParams.TimingCaptureParameters.CaptureCallstacks = TRUE;
captureParams.TimingCaptureParameters.CaptureCpuSamples = TRUE;
captureParams.TimingCaptureParameters.CpuSamplesPerSecond = 4000;
captureParams.TimingCaptureParameters.CaptureStorage = PIXCaptureParameters::Memory;
captureParams.TimingCaptureParameters.FileName = wstrFilename;
captureParams.TimingCaptureParameters.MaximumToolingMemorySizeMb = 4096;
XSF_ERROR_IF_FAILED(PIXBeginCapture(PIX_CAPTURE_TIMING, &captureParams));
要件
ヘッダー: pix3.h
ライブラリ: pixevt.lib
サポートされているプラットフォーム: Xbox One ファミリ本体と Xbox Series 本体
関連項目
PIXEndCapture
PIXCaptureParameters
PIX3
PIX (NDA トピック)認可が必須です