D3DHAL_DP2RESPONSEQUERY 結構 (d3dhal.h)

僅限 DirectX 9.0 和更新版本。

運行時間呼叫 D3dDrawPrimitives2 回呼之後,運行時間會從回應緩衝區剖析一或多個D3DHAL_DP2RESPONSEQUERY結構。 驅動程式會將 D3DHAL_DP2RESPONSE 結構的 bCommand 成員設定為 D3DDP2OP_RESPONSEQUERY,以指出回應緩衝區中可以使用先前發出的查詢回應。

語法

typedef struct _D3DHAL_DP2RESPONSEQUERY {
  DWORD dwQueryID;
  DWORD dwSize;
} D3DHAL_DP2RESPONSEQUERY;

成員

dwQueryID

識別可用的回應數據查詢。

dwSize

指定驅動程式傳回運行時間之查詢資訊的大小,以位元組為單位。

備註

運行時間會使用 D3DDP2OP_ISSUEQUERY 命令來要求驅動程式進程查詢。 驅動程式的 D3dDrawPrimitives2 回呼應該從命令緩衝區處理 wPrimitiveCount D3DHAL_DP2ISSUEQUERY 查詢結構。 wPrimitiveCount 的值是在 D3DHAL_DP2COMMAND 結構中指定。 驅動程式會剖析這些查詢結構,並將其轉譯為其硬體特定命令。

如果先前使用完成的D3DDP2OP_ISSUEQUERY作業提交查詢,驅動程式會在 D3DHAL_DRAWPRIMITIVES2DATA 結構的 dwErrorOffset 成員中設定回應緩衝區的大小,並將 D3DHAL_DRAWPRIMITIVES2DATA 的 ddrval 成員設定為D3D_OK,以成功完成。 驅動程式也會使用傳出回應緩衝區覆寫傳入命令緩衝區。 回應緩衝區中的每個D3DHAL_DP2RESPONSEQUERY後面接著下列與查詢相關的數據:

  • 適用於 D3DQUERYTYPE_EVENT的 BOOL。 在回應事件D3DDP2OP_RESPONSEQUERY之前,驅動程式必須確定圖形處理單位 (GPU) 已完成與事件相關的所有 D3DHAL_DP2OPERATION 作業。 也就是說,驅動程式只會在事件發生ISSUE_END狀態之後回應。 回應時,驅動程式必須一律將事件的 BOOL 值設定為 TRUE
  • DWORD for D3DQUERYTYPE_OCCLUSION。 驅動程式會將這個 DWORD 設定為查詢開頭和結尾之間針對所有基本類型通過 z 測試的像素數。 如果深度緩衝區是多重取樣,則驅動程式會決定樣本數目中的像素數目。 不過,如果顯示裝置能夠每個多重取樣 z 測試精確度,則通常應該四捨五入轉換成像素數目。 然後,應用程式可以檢查 0 的遮蔽結果,以有效地表示「完全遮蔽」。 將多重取樣數量轉換為像素數量的驅動程序應該偵測轉譯目標多重取樣變更,並繼續適當地計算查詢結果。
  • D3DQUERYTYPE_VCACHE 的 D3DDEVINFO_VCACHE 結構。

運行時間會剖析傳回的回應緩衝區,並更新其內部數據結構。

規格需求

需求
標頭 d3dhal.h (包含 D3dhal.h)

另請參閱

D3DDEVINFO_VCACHE

D3DDP2OP_ISSUEQUERY

D3DDP2OP_RESPONSEQUERY

D3DHAL_DP2COMMAND

D3DHAL_DP2ISSUEQUERY

D3DHAL_DP2RESPONSE

D3DHAL_DRAWPRIMITIVES2DATA

D3dDrawPrimitives2