ID3D10Asynchronous::GetData メソッド (d3d10.h)
GPU から非同期的にデータを取得します。
構文
HRESULT GetData(
[out] void *pData,
[in] UINT DataSize,
[in] UINT GetDataFlags
);
パラメーター
[out] pData
型: void*
データを受信するメモリのアドレス。 NULL の場合、GetData は状態をチェックするためにのみ使用されます。 データ出力の種類は、非同期インターフェイスの種類によって異なります。 「解説」を参照してください。
[in] DataSize
型: UINT
取得するデータのサイズまたは 0。 この値は 、ID3D10Asynchronous::GetDataSize で取得できます。 pData が NULL の場合は 0 にする必要があります。
[in] GetDataFlags
型: UINT
オプションのフラグ。 0 または D3D10_ASYNC_GETDATA_FLAG によって列挙されるフラグの任意の組み合わせを指定できます。
戻り値
種類: HRESULT
この関数が成功すると、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 インターフェイスである場合は、次の表が適用されます。
クエリの型 | 出力データ型 | Begin メソッドをサポート |
---|---|---|
D3D10_QUERY_EVENT | BOOL | NO |
D3D10_QUERY_OCCLUSION | UINT64 | YES |
D3D10_QUERY_TIMESTAMP | UINT64 | NO |
D3D10_QUERY_TIMESTAMP_DISJOINT | D3D10_QUERY_DATA_TIMESTAMP_DISJOINT | YES |
D3D10_QUERY_PIPELINE_STATISTICS | D3D10_QUERY_DATA_PIPELINE_STATISTICS | YES |
D3D10_QUERY_OCCLUSION_PREDICATE | BOOL | YES |
D3D10_QUERY_SO_STATISTICS | D3D10_QUERY_DATA_SO_STATISTICS | YES |
D3D10_QUERY_SO_OVERFLOW_PREDICATE | BOOL | YES |
この API を呼び出す非同期インターフェイスが ID3D10Counter インターフェイスである場合、次のことが適用されます。
カウンターの種類 | 出力データ型 | ユニット |
---|---|---|
D3D10_COUNTER_GPU_IDLE | FLOAT32 | 時間の割合 |
D3D10_COUNTER_VERTEX_PROCESSING | FLOAT32 | 時間の割合 |
D3D10_COUNTER_GEOMETRY_PROCESSING | FLOAT32 | 時間の割合 |
D3D10_COUNTER_PIXEL_PROCESSING | FLOAT32 | 時間の割合 |
D3D10_COUNTER_OTHER_GPU_PROCESSING | FLOAT32 | 時間の割合 |
D3D10_COUNTER_HOST_ADAPTER_BANDWIDTH_UTILIZATION | FLOAT32 | 理論上の最大値の分数 |
D3D10_COUNTER_LOCAL_VIDMEM_BANDWIDTH_UTILIZATION | FLOAT32 | 理論上の最大値の分数 |
D3D10_COUNTER_VERTEX_THROUGHPUT_UTILIZATION | FLOAT32 | 理論上の最大値の分数 |
D3D10_COUNTER_TRIANGLE_SETUP_THROUGHPUT_UTILIZATION | FLOAT32 | 理論上の最大値の分数 |
D3D10_COUNTER_FILLRATE_THROUGHPUT_UTILIZATION | FLOAT32 | 理論上の最大値の分数 |
D3D10_COUNTER_VS_MEMORY_LIMITED | FLOAT32 | 時間の割合 |
D3D10_COUNTER_VS_COMPUTATION_LIMITED | FLOAT32 | 時間の割合 |
D3D10_COUNTER_GS_MEMORY_LIMITED | FLOAT32 | 時間の分数 |
D3D10_COUNTER_GS_COMPUTATION_LIMITED | FLOAT32 | 時間の分数 |
D3D10_COUNTER_PS_MEMORY_LIMITED | FLOAT32 | 時間の分数 |
D3D10_COUNTER_PS_COMPUTATION_LIMITED | FLOAT32 | 時間の分数 |
D3D10_COUNTER_POST_TRANSFORM_CACHE_HIT_RATE | FLOAT32 | fraction |
D3D10_COUNTER_TEXTURE_CACHE_HIT_RATE | FLOAT32 | fraction |
D3D10_COUNTER_GPU_IDLE、D3D10_COUNTER_VERTEX_PROCESSING、D3D10_COUNTER_GEOMETRY_PROCESSING、D3D10_COUNTER_PIXEL_PROCESSING、またはD3D10_COUNTER_OTHER_GPU_PROCESSING カウンターによって返される値は、ビデオ カードに存在する並列カウンターの数によって異なる場合があり、これらの値は次の式で解釈できます。
ビデオ カードに含まれる並列カウンターの数は、D3D10_COUNTER_INFOの NumDetectableParallelUnits から取得でき、ID3D10Device::CheckCounterInfo を呼び出すことで取得できます。
要件
要件 | 値 |
---|---|
対象プラットフォーム | Windows |
ヘッダー | d3d10.h |
Library | D3D10.lib |