ID3D10Asynchronous::GetData
GPU から非同期でデータを取得します。
HRESULT
GetData(
void *pData,
UINT DataSize,
UINT GetDataFlags
);
パラメータ
- pData
データを受信するメモリーのアドレスです。NULL の場合、GetData はステータスのチェックにのみ使用されます。データ出力の種類は、非同期インターフェイスの種類によって異なります。「解説」を参照してください。 - DataSize
取得するデータのサイズ、または 0 です。この値は ID3D10Asynchronous::GetDataSize を使用して取得できます。pData が NULL の場合は必ず 0 です。 - GetDataFlags
オプション フラグ。0 を指定できるほか、D3D10_ASYNC_GETDATA_FLAG で列挙されるフラグの任意の組み合わせとしてもかまいません。
戻り値
この関数が正常完了した場合は、S_OK が返されます。それ以外の場合に返される可能性がある戻り値は次のとおりです。
- S_FALSE
- DXGI_ERROR_DEVICE_REMOVED
- DXGI_ERROR_INVALID_CALL
解説
GetData は、ID3D10Asynchronous::Begin と ID3D10Asynchronous::End の呼び出しの間に収集されたデータを取得します。特定のクエリのみが ID3D10Asynchronous::End の呼び出しを必要とします。この場合、GetData から返されるデータは、最後の ID3D10Asynchronous::End の呼び出しまで正確です (「ID3D10Query インターフェイス」を参照してください)。
DataSize が 0 の場合、GetData は、ステータスのチェックにのみ使用され、戻り値 S_OK はそのデータがアプリケーションに使用可能であることを示します。戻り値 S_FALSE は使用不可であることを示します。
この関数をフラグ D3D10_QUERY_MISCFLAG_PREDICATEHINT を使用して作成されたプレディケーションで呼び出すことは無効です。
この関数を呼び出す非同期インターフェイスが ID3D10Query インターフェイスの場合は、次の表が適用されます。
クエリの種類 | 出力データ型 | 開始メソッドのサポート |
---|---|---|
EVENT? | BOOL | なし |
OCCLUSION? | UINT64 | あり |
TIMESTAMP? | UINT64 | なし |
TIMESTAMP_DISJOINT | QUERYDATA_TIMESTAMP_DISJOINT | あり |
PIPELINE_STATISTICS | QUERYDATA_PIPELINE_STATISTICS | あり |
OCCLUSION_PREDICATE | BOOL | あり |
SO_STATISTICS | QUERYDATA_SO_STATISTICS | あり |
SO_OVERFLOW_PREDICATE | BOOL | あり |
この API を呼び出す非同期インターフェイスが ID3D10Counter インターフェイスの場合は、次の表が適用されます。
カウンター タイプ | 出力データ型 | [ユニット](Units) |
---|---|---|
GPU_IDLE | FLOAT32 | 時間 |
VERTEX_PROCESSING | FLOAT32 | 時間 |
GEOMETRY_PROCESSING | FLOAT32 | 時間 |
PIXEL_PROCESSING | FLOAT32 | 時間 |
OTHER_GPU_PROCESSING | FLOAT32 | 時間 |
HOST_ADAPTER_BANDWIDTH_UTILIZATION | FLOAT32 | 理論上の最大値に対する割合 |
LOCAL_VIDMEM_BANDWIDTH_UTILIZATION | FLOAT32 | 理論上の最大値に対する割合 |
VERTEX_THROUGHPUT_UTILIZATION | FLOAT32 | 理論上の最大値に対する割合 |
TRISETUP_THROUGHPUT_UTILIZATION | FLOAT32 | 理論上の最大値に対する割合 |
FILLRATE_THROUGHPUT_UTILIZATION | FLOAT32 | 理論上の最大値に対する割合 |
VERTEXSHADER_MEMORY_LIMITED | FLOAT32 | 時間 |
VERTEXSHADER_COMPUTATION_LIMITED | FLOAT32 | 時間 |
GEOMETRYSHADER_MEMORY_LIMITED | FLOAT32 | 時間 |
GEOMETRYSHADER_COMPUTATION_LIMITED | FLOAT32 | 時間 |
PIXELSHADER_MEMORY_LIMITED | FLOAT32 | 時間 |
PIXELSHADER_COMPUTATION_LIMITED | FLOAT32 | 時間 |
POST_TRANSFORM_CACHE_HIT_RATE | FLOAT32 | 割合? |
TEXTURE_CACHE_HIT_RATE | FLOAT32 | 割合? |
GPU_IDLE、VERTEX_PROCESSING、GEOMETRY_PROCESSING、PIXEL_PROCESSING、および OTHER_GPU_PROCESSING のカウンターから返される値は、ビデオ カード上に存在する並列カウンターの数によって異なる場合があり、この値は以下の式を使用して解釈できます。
ビデオ カードの並列カウンター数は、D3D10_COUNTER_INFO の NumDetectableParallelUnits から入手可能で、これは ID3D10Device::CheckCounterInfo を呼び出すことによって取得できます。
要件
ヘッダー: D3D10.h 宣言
ライブラリ: D3D10.lib 内容