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 的數據大小。 當 pData 為 NULL 時,必須為 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::Begin 和 ID3D11DeviceContext::End 之間收集的數據。 某些查詢只需要呼叫 ID3D11DeviceContext::End ,在此情況下 ,GetData 所傳回的數據最多是 ID3D11DeviceContext::End 的最後一次呼叫。 如需只需要呼叫 ID3D11DeviceContext::End 以及 GetData 針對每個查詢擷取之數據類型的查詢相關信息,請參閱 D3D11_QUERY。
如果 DataSize 為 0,GetData 只會用來檢查狀態。
應用程式會呼叫 ID3D11DeviceContext::Begin來收集計數器數據,發出一些圖形命令、呼叫 ID3D11DeviceContext::End,然後呼叫 ID3D11DeviceContext::GetData ,以取得 Begin 和 End 呼叫之間發生之狀況的相關數據。 如需性能計數器類型的相關信息,請參閱 D3D11_COUNTER。
規格需求
需求 | 值 |
---|---|
目標平台 | Windows |
標頭 | d3d11.h |
程式庫 | D3D11.lib |