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 介面) 。

如果 DataSize0,GetData 只會用來檢查S_OK傳回值指出數據可供應用程式使用的狀態,而傳回值 S_FALSE 表示數據尚無法使用。

在以旗標建立的述詞上叫用此函式D3D10_QUERY_MISCFLAG_PREDICATEHINT無效。

如果呼叫此函式的異步介面是 ID3D10Query介面,則會套用下表。

查詢類型 輸出數據類型 支援Begin方法
D3D10_QUERY_EVENT BOOL
D3D10_QUERY_OCCLUSION UINT64 YES
D3D10_QUERY_TIMESTAMP UINT64
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 分數
D3D10_COUNTER_TEXTURE_CACHE_HIT_RATE FLOAT32 分數
 

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
程式庫 D3D10.lib

另請參閱

ID3D10Asynchronous 介面