D3D10_QUERY
クエリの種類です。
typedef enum D3D10_QUERY
{
D3D10_QUERY_EVENT = 0,
D3D10_QUERY_OCCLUSION = ( D3D10_QUERY_EVENT + 1 ),
D3D10_QUERY_TIMESTAMP = ( D3D10_QUERY_OCCLUSION + 1 ),
D3D10_QUERY_TIMESTAMP_DISJOINT = ( D3D10_QUERY_TIMESTAMP + 1 ),
D3D10_QUERY_PIPELINE_STATISTICS = ( D3D10_QUERY_TIMESTAMP_DISJOINT + 1 ),
D3D10_QUERY_OCCLUSION_PREDICATE = ( D3D10_QUERY_PIPELINE_STATISTICS + 1 ),
D3D10_QUERY_SO_STATISTICS = ( D3D10_QUERY_OCCLUSION_PREDICATE + 1 ),
D3D10_QUERY_SO_OVERFLOW_PREDICATE = ( D3D10_QUERY_SO_STATISTICS + 1 ),
} D3D10_QUERY;
定数
- D3D10_QUERY_EVENT
GPU がコマンドの処理を終了したかどうかを判別します。GPU がコマンドの処理を終了すると、ID3D10Asynchronous::GetData は S_OK を返し、pData は TRUE の値をもつ BOOL を指し示します。この種類のクエリを使用する場合、ID3D10Asynchronous::Begin は無効になります。 - D3D10_QUERY_OCCLUSION
ID3D10Asynchronous::Begin および ID3D10Asynchronous::End の間で深度テストおよびステンシル テストに合格したサンプル数を取得します。ID3D10Asynchronous::GetData は UINT64 を返します。深度テストまたはステンシル テストが無効になっている場合、これらのテストはいずれも合格としてカウントされます。 - D3D10_QUERY_TIMESTAMP
タイムスタンプ値を取得します。これは、ID3D10Asynchronous::GetData が返す UINT64 の値です。この種類のクエリは、2 つのタイムスタンプ クエリが D3D10_QUERY_TIMESTAMP_DISJOINT クエリの途中で実行される場合のみ効果的です。2 つのタイムスタンプの差を利用して、経過したティック数を決定できます。また、その差が信頼できる値かどうか、およびティック数を秒数に変換する方法を示す値が設定されているかどうかが、D3D10_QUERY_TIMESTAMP_DISJOINT クエリによって判別されます。「D3D10_QUERY_DATA_TIMESTAMP_DISJOINT」を参照してください。この種類のクエリを使用する場合、ID3D10Asynchronous::Begin は無効になります。 - D3D10_QUERY_TIMESTAMP_DISJOINT
D3D10_QUERY_TIMESTAMP が信頼できる値を返しているかどうかを判別します。また、経過したティック数を秒数に変換できるようにプロセッサの周波数が返されます。ID3D10Asynchronous::GetData は D3D10_QUERY_DATA_TIMESTAMP_DISJOINT を返します。この種類のクエリの呼び出しは、フレームごとに 1 回以内としてください。 - D3D10_QUERY_PIPELINE_STATISTICS
ID3D10Asynchronous::Begin と ID3D10Asynchronous::End の間でのピクセル シェーダーの呼び出し回数などのパイプライン統計情報を取得します。ID3D10Asynchronous::GetData は D3D10_QUERY_DATA_PIPELINE_STATISTICS を返します。 - D3D10_QUERY_OCCLUSION_PREDICATE
D3D10_QUERY_OCCLUSION と似ていますが、サンプルが深度テストおよびステンシル テストに合格したかどうかを示す BOOL が ID3D10Asynchronous::GetData によって返される点が異なります。TRUE は少なくとも 1 つのサンプルが合格したことを示し、FALSE は合格したサンプルがないことを示します。 - D3D10_QUERY_SO_STATISTICS
ID3D10Asynchronous::Begin と ID3D10Asynchronous::End の間でストリーム出力されたプリミティブ数などのストリーム出力統計情報を取得します。ID3D10Asynchronous::GetData は D3D10_QUERY_DATA_SO_STATISTICS 構造体を返します。 - D3D10_QUERY_SO_OVERFLOW_PREDICATE
ID3D10Asynchronous::Begin と ID3D10Asynchronous::End の間でオーバーフローしたストリーム出力バッファーがあるかどうかを判別します。ID3D10Asynchronous::GetData は BOOL を返します。TRUE はオーバーフローが発生したことを示し、FALSE はオーバーフローがないことを示します。ストリーム出力によって複数のバッファーに書き込まれ、バッファーの 1 つがオーバーフローした場合、すべての出力バッファーへの書き込みが停止します。Direct3D でオーバーフローが検出されると、それ以上の動作が阻止され、メモリーは破壊されません。このプレディケーションを SO_STATISTICS クエリと併用して、オーバーフローが発生したときに、オーバーフローを防ぐために必要なメモリー容量を SO_STATISTICS クエリからアプリケーションに通知されるようにすることができます。
要件
ヘッダー: D3D10.h 宣言