ID3D11DeviceContext::GetData 方法 (d3d11.h)

從圖形處理單位取得數據, (GPU) 異步。

語法

HRESULT GetData(
  [in]            ID3D11Asynchronous *pAsync,
  [out, optional] void               *pData,
  [in]            UINT               DataSize,
  [in]            UINT               GetDataFlags
);

參數

[in] pAsync

類型: ID3D11Asynchronous*

GetData 擷取數據之物件的ID3D11Asynchronous介面指標。

[out, optional] pData

類型: void*

將接收數據的記憶體位址。 如果 為 NULL則 GetData 只會用來檢查狀態。 數據輸出的類型取決於異步介面的類型。

[in] DataSize

類型: UINT

要擷取或 0 的數據大小。 當 pDataNULL 時,必須為 0。

[in] GetDataFlags

類型: UINT

選擇性旗標。 可以是 0 或 由 D3D11_ASYNC_GETDATA_FLAG 列舉之旗標的任何組合。

傳回值

類型: HRESULT

這個方法會傳回其中一個 Direct3D 11 傳回碼。 傳回值S_OK表示 pData 的數據可供呼叫的應用程式存取。 傳回值S_FALSE表示數據尚未提供。 如果數據尚無法使用,應用程式必須呼叫 GetData, 直到數據可用為止。

備註

延遲內容中的查詢僅限於述詞繪圖。 也就是說,您無法在延後的內容上呼叫 ID3D11DeviceContext::GetData ,以取得查詢的相關數據;您只能在即時內容上呼叫 GetData ,以取得查詢的相關數據。 針對述詞繪圖,GPU 會使用述詞類型查詢的結果,而不會傳回給應用程式。 如需預先分割和述詞繪圖的詳細資訊,請參閱 D3D11DeviceContext::SetPredication

GetData 會擷取運行時間在呼叫 ID3D11DeviceContext::BeginID3D11DeviceContext::End 之間收集的數據。 某些查詢只需要呼叫 ID3D11DeviceContext::End ,在此情況下 ,GetData 所傳回的數據最多是 ID3D11DeviceContext::End 的最後一次呼叫。 如需只需要呼叫 ID3D11DeviceContext::End 以及 GetData 針對每個查詢擷取之數據類型的查詢相關信息,請參閱 D3D11_QUERY

如果 DataSize0,GetData 只會用來檢查狀態。

應用程式會呼叫 ID3D11DeviceContext::Begin來收集計數器數據,發出一些圖形命令、呼叫 ID3D11DeviceContext::End,然後呼叫 ID3D11DeviceContext::GetData ,以取得 BeginEnd 呼叫之間發生之狀況的相關數據。 如需性能計數器類型的相關信息,請參閱 D3D11_COUNTER

規格需求

需求
目標平台 Windows
標頭 d3d11.h
程式庫 D3D11.lib

另請參閱

ID3D11DeviceContext