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 で取得できます。 pDataNULL の場合は 0 にする必要があります。

[in] GetDataFlags

型: UINT

オプションのフラグ。 0 または D3D10_ASYNC_GETDATA_FLAG によって列挙されるフラグの任意の組み合わせを指定できます。

戻り値

種類: HRESULT

この関数が成功すると、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 インターフェイスである場合は、次の表が適用されます。

クエリの型 出力データ型 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_INFONumDetectableParallelUnits から取得でき、ID3D10Device::CheckCounterInfo を呼び出すことで取得できます。

要件

要件
対象プラットフォーム Windows
ヘッダー d3d10.h
Library D3D10.lib

こちらもご覧ください

ID3D10Asynchronous インターフェイス