次の方法で共有


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::BeginID3D10Asynchronous::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 のカウンターから返される値は、ビデオ カード上に存在する並列カウンターの数によって異なる場合があり、この値は以下の式を使用して解釈できます。

Ee418670.parallelUnits(ja-jp,VS.85).jpg

ビデオ カードの並列カウンター数は、D3D10_COUNTER_INFONumDetectableParallelUnits から入手可能で、これは ID3D10Device::CheckCounterInfo を呼び出すことによって取得できます。

要件

ヘッダー: D3D10.h 宣言

ライブラリ: D3D10.lib 内容

関連項目

ID3D10Asynchronous インターフェイス