次の方法で共有


PIXBeginEvent の概要

PIX のシステム タイミング キャプチャ機能に表示される CPU アクティビティのタイミング キャプチャに対するユーザー定義イベントを開始します。

構文

void PIXBeginEvent(  
         void* context,  
         UINT64 color,  
         PCWSTR formatString,
         ...  
)  

パラメーター

context   
型: void*

イベントのコンテキスト。ID3D12GraphicsCommandList\*ID3D12GraphicsCommandList\*ID3D12XboxDmaCommandList\* (Xbox のみ) を受け付けます。

color   
型: UINT64

システム タイミング チャートで使用するイベントの色。 PIX_COLOR を使用して色を指定するか、PIX_COLOR_INDEX を使用してカラー インデックスを指定するか、または形式が ARGB でアルファ チャンネルは 0xff であることを示す生の DWORD を渡します。

formatString _In_
型: PCWSTR

Unicode の NULL 終端文字列へのポインターとして、イベントを記述するために使用する名前。 文字列では、sprintf 形式と同様に、任意の数の省略可能な書式設定のプレースホルダーを指定することもあります。

型: ...

formatString でプレースホルダーを使用する場合は、対応する数のパラメーターが存在します。パラメーターの型はプレースホルダーによって決まります。 このメソッドは、最大 16 の書式パラメーターをサポートします。

戻り値

型: void

解説

PIXBeginEvent 関数は、実行時に文字列を書式設定するのではなく、書式文字列と書式パラメーターを保存します。 その後、PIX でキャプチャ ファイルを読み取るときに書式設定が行われます。 パフォーマンスを最適化するには、PIXBeginEvent で 16 バイトにアライメントされた文字列 (推奨) または 8 バイトにアライメントされた文字列を使用します。 %p 書式指定子を使用して char* または wchar_t* をポインターとして出力するには、PIXBeginEvent に渡すときに、ポインターを void* に、またはポインターを整数型または浮動小数点数型にキャストします。 最適なパフォーマンスを得るには、静的に割り当てられた文字列を使用します。

PIXBeginEvent の呼び出しでは、レコード データを保存するために 512 バイト以上の領域が保証されます。このサイズには、書式文字列およびすべての変数の全サイズおよびアライメントが含まれます。 一般に、PIX イベントは、ゲームの主要コンポーネント、システム、またはコンテンツにアライメントする短い高パフォーマンスのマーカー向けです。

このメソッドは、CPU イベントの時間の測定に使用します。 GPU イベントのタイミングの詳細は、「PIX3」の「PIX GPU キャプチャ API」セクションを参照してください。

PIXBeginEvent の各呼び出しに対して、PIXEndEvent の対応する呼び出しが必要です。 PIXBeginEventPIXEndEvent のペア呼び出しは、同じスレッドで行う必要があります。 タイミングの間隔は約 200 ナノ秒です。また、この機能を使用することによるオーバーヘッドは小さいので、PIXBeginEvent は 1 秒間に数十万回まで呼び出すことができます。

PIXBeginEventPIXEndEvent のペアは任意の深さまで入れ子にできます。

要件

ヘッダー: pix3.h

ライブラリ: pixevt.lib

サポートされているプラットフォーム: Xbox One ファミリ本体と Xbox Series 本体

関連項目

PIX (NDA トピック)認可が必須です
pix3
PIXEndEvent
PIXBeginEvent
PIXBeginEvent_2
PIXBeginEvent_3